All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: Maxim Uvarov <maxim.uvarov@linaro.org>
Cc: linux-kernel@vger.kernel.org, tee-dev@lists.linaro.org,
	peterhuewe@gmx.de, jgg@ziepe.ca, gregkh@linuxfoundation.org,
	jens.wiklander@linaro.org, linux-integrity@vger.kernel.org,
	arnd@linaro.org, sumit.garg@linaro.org
Subject: Re: [PATCHv2 2/2] tpm_ftpm_tee: register driver on TEE bus
Date: Fri, 22 May 2020 20:14:51 +0300	[thread overview]
Message-ID: <20200522171451.GD10319@linux.intel.com> (raw)
In-Reply-To: <20200521064743.4769-4-maxim.uvarov@linaro.org>

On Thu, May 21, 2020 at 09:47:43AM +0300, Maxim Uvarov wrote:
> Register driver on TEE bus. module tee registers bus,

"on the TEE bus"

"The module tee"

> and module optee calls optee_enumerate_devices() to scan
> all devices on the bus. Trusted Application for this driver

Looking at drivers/tee, it shows that tee and optee are in fact the same
module as opposed to what your commit message says.

> can be Early TA's (can be compiled into optee-os). In that
> case it will be on OPTEE bus before linux booting. Also
> optee-suplicant application is needed to be loaded between
> OPTEE module and ftpm module to maintain functionality
> for fTPM driver.

Why is this needed and why things worked before having this?

> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
> Suggested-by: Sumit Garg <sumit.garg@linaro.org>
> Suggested-by: Arnd Bergmann <arnd@linaro.org>
> ---
>  drivers/char/tpm/tpm_ftpm_tee.c | 69 ++++++++++++++++++++++++++++-----
>  1 file changed, 59 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/char/tpm/tpm_ftpm_tee.c b/drivers/char/tpm/tpm_ftpm_tee.c
> index 22bf553ccf9d..7bb4ce281050 100644
> --- a/drivers/char/tpm/tpm_ftpm_tee.c
> +++ b/drivers/char/tpm/tpm_ftpm_tee.c
> @@ -214,11 +214,10 @@ static int ftpm_tee_match(struct tee_ioctl_version_data *ver, const void *data)
>   * Return:
>   *	On success, 0. On failure, -errno.
>   */
> -static int ftpm_tee_probe(struct platform_device *pdev)
> +static int ftpm_tee_probe(struct device *dev)
>  {
>  	int rc;
>  	struct tpm_chip *chip;
> -	struct device *dev = &pdev->dev;
>  	struct ftpm_tee_private *pvt_data = NULL;
>  	struct tee_ioctl_open_session_arg sess_arg;
>  
> @@ -297,6 +296,13 @@ static int ftpm_tee_probe(struct platform_device *pdev)
>  	return rc;
>  }
>  
> +static int ftpm_plat_tee_probe(struct platform_device *pdev)
> +{
> +	struct device *dev = &pdev->dev;
> +
> +	return ftpm_tee_probe(dev);
> +}
> +
>  /**
>   * ftpm_tee_remove() - remove the TPM device
>   * @pdev: the platform_device description.
> @@ -304,9 +310,9 @@ static int ftpm_tee_probe(struct platform_device *pdev)
>   * Return:
>   *	0 always.
>   */
> -static int ftpm_tee_remove(struct platform_device *pdev)
> +static int ftpm_tee_remove(struct device *dev)
>  {
> -	struct ftpm_tee_private *pvt_data = dev_get_drvdata(&pdev->dev);
> +	struct ftpm_tee_private *pvt_data = dev_get_drvdata(dev);
>  
>  	/* Release the chip */
>  	tpm_chip_unregister(pvt_data->chip);
> @@ -328,11 +334,18 @@ static int ftpm_tee_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> +static int ftpm_plat_tee_remove(struct platform_device *pdev)
> +{
> +	struct device *dev = &pdev->dev;
> +
> +	return ftpm_tee_remove(dev);
> +}
> +
>  /**
>   * ftpm_tee_shutdown() - shutdown the TPM device
>   * @pdev: the platform_device description.
>   */
> -static void ftpm_tee_shutdown(struct platform_device *pdev)
> +static void ftpm_plat_tee_shutdown(struct platform_device *pdev)
>  {
>  	struct ftpm_tee_private *pvt_data = dev_get_drvdata(&pdev->dev);
>  
> @@ -347,17 +360,53 @@ static const struct of_device_id of_ftpm_tee_ids[] = {
>  };
>  MODULE_DEVICE_TABLE(of, of_ftpm_tee_ids);
>  
> -static struct platform_driver ftpm_tee_driver = {
> +static struct platform_driver ftpm_tee_plat_driver = {
>  	.driver = {
>  		.name = "ftpm-tee",
>  		.of_match_table = of_match_ptr(of_ftpm_tee_ids),
>  	},
> -	.probe = ftpm_tee_probe,
> -	.remove = ftpm_tee_remove,
> -	.shutdown = ftpm_tee_shutdown,
> +	.shutdown = ftpm_plat_tee_shutdown,
> +	.probe = ftpm_plat_tee_probe,
> +	.remove = ftpm_plat_tee_remove,
> +};
> +
> +static const struct tee_client_device_id optee_ftpm_id_table[] = {
> +	{UUID_INIT(0xbc50d971, 0xd4c9, 0x42c4,
> +		   0x82, 0xcb, 0x34, 0x3f, 0xb7, 0xf3, 0x78, 0x96)},
> +	{}

Please put a comment describing what this is.

>  };
>  
> -module_platform_driver(ftpm_tee_driver);
> +MODULE_DEVICE_TABLE(tee, optee_ftpm_id_table);
> +
> +static struct tee_client_driver ftpm_tee_driver = {
> +	.id_table	= optee_ftpm_id_table,
> +	.driver		= {
> +		.name		= "optee-ftpm",
> +		.bus		= &tee_bus_type,
> +		.probe		= ftpm_tee_probe,
> +		.remove		= ftpm_tee_remove,
> +	},
> +};
> +
> +static int __init ftpm_mod_init(void)
> +{
> +	int rc;
> +
> +	rc = platform_driver_register(&ftpm_tee_plat_driver);
> +	if (rc)
> +		return rc;
> +
> +	return driver_register(&ftpm_tee_driver.driver);
> +}
> +
> +static void __exit ftpm_mod_exit(void)
> +{
> +	platform_driver_unregister(&ftpm_tee_plat_driver);
> +	driver_unregister(&ftpm_tee_driver.driver);
> +}
> +
> +module_init(ftpm_mod_init);
> +module_exit(ftpm_mod_exit);
>  
>  MODULE_AUTHOR("Thirupathaiah Annapureddy <thiruan@microsoft.com>");
>  MODULE_DESCRIPTION("TPM Driver for fTPM TA in TEE");
> -- 
> 2.17.1
> 

Wondering if MODULE_AUTHOR() is still equired given that the GIT log
has objectively better log of authorship.

/Jarkko

  reply	other threads:[~2020-05-22 17:15 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-21  6:47 [PATCHv2 0/2] optee: register drivers on optee bus Maxim Uvarov
2020-05-21  6:47 ` [PATCHv2 1/2] optee: do drivers initialization before and after tee-supplicant run Maxim Uvarov
2020-05-22 11:40   ` Sumit Garg
2020-05-22 12:23     ` Maxim Uvarov
2020-05-24  6:22   ` Jens Wiklander
2020-05-25  7:12     ` Maxim Uvarov
2020-05-21  6:47 ` [PATCH 2/2] tpm_ftpm_tee: register driver on tee bus Maxim Uvarov
2020-05-21  6:47 ` [PATCHv2 2/2] tpm_ftpm_tee: register driver on TEE bus Maxim Uvarov
2020-05-22 17:14   ` Jarkko Sakkinen [this message]
2020-05-22 19:29     ` Maxim Uvarov
2020-05-22 20:03       ` Jarkko Sakkinen
2020-05-25  6:50         ` Maxim Uvarov
2020-05-26  9:22           ` Sumit Garg
2020-05-27 19:42           ` Jarkko Sakkinen
2020-05-28  8:08             ` Maxim Uvarov
2020-05-28 10:11               ` Jens Wiklander
2020-05-29  5:28                 ` Sumit Garg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200522171451.GD10319@linux.intel.com \
    --to=jarkko.sakkinen@linux.intel.com \
    --cc=arnd@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jens.wiklander@linaro.org \
    --cc=jgg@ziepe.ca \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maxim.uvarov@linaro.org \
    --cc=peterhuewe@gmx.de \
    --cc=sumit.garg@linaro.org \
    --cc=tee-dev@lists.linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.