2021-07-23 18:43:14

by Adrian Ratiu

[permalink] [raw]
Subject: [PATCH 1/2] char: tpm: Kconfig: remove bad i2c cr50 select

This fixes a minor bug which went unnoticed during the initial
driver upstreaming review: TCG_CR50 does not exist in mainline
kernels, so remove it.

Fixes: 3a253caaad11 ("char: tpm: add i2c driver for cr50")
Signed-off-by: Adrian Ratiu <[email protected]>
---
drivers/char/tpm/Kconfig | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/char/tpm/Kconfig b/drivers/char/tpm/Kconfig
index 4308f9ca7a43..d6ba644f6b00 100644
--- a/drivers/char/tpm/Kconfig
+++ b/drivers/char/tpm/Kconfig
@@ -89,7 +89,6 @@ config TCG_TIS_SYNQUACER
config TCG_TIS_I2C_CR50
tristate "TPM Interface Specification 2.0 Interface (I2C - CR50)"
depends on I2C
- select TCG_CR50
help
This is a driver for the Google cr50 I2C TPM interface which is a
custom microcontroller and requires a custom i2c protocol interface
--
2.32.0


2021-07-23 18:43:14

by Adrian Ratiu

[permalink] [raw]
Subject: [PATCH 2/2] char: tpm: cr50_i2c: convert to new probe interface

Way back when this driver was written the i2c framework
used to insist an ID table be defined even if the driver
did not use it in favor of ACPI/OF matching, so it was
added just to placate the hard i2c framework requirement.

This is no longer the case so we can drop the table and
also convert the driver to the new probe interface.

Signed-off-by: Adrian Ratiu <[email protected]>
---
drivers/char/tpm/tpm_tis_i2c_cr50.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/char/tpm/tpm_tis_i2c_cr50.c b/drivers/char/tpm/tpm_tis_i2c_cr50.c
index 44dde2fbe2fb..c89278103703 100644
--- a/drivers/char/tpm/tpm_tis_i2c_cr50.c
+++ b/drivers/char/tpm/tpm_tis_i2c_cr50.c
@@ -639,12 +639,6 @@ static const struct tpm_class_ops cr50_i2c = {
.req_canceled = &tpm_cr50_i2c_req_canceled,
};

-static const struct i2c_device_id cr50_i2c_table[] = {
- {"cr50_i2c", 0},
- {}
-};
-MODULE_DEVICE_TABLE(i2c, cr50_i2c_table);
-
#ifdef CONFIG_ACPI
static const struct acpi_device_id cr50_i2c_acpi_id[] = {
{ "GOOG0005", 0 },
@@ -670,8 +664,7 @@ MODULE_DEVICE_TABLE(of, of_cr50_i2c_match);
* - 0: Success.
* - -errno: A POSIX error code.
*/
-static int tpm_cr50_i2c_probe(struct i2c_client *client,
- const struct i2c_device_id *id)
+static int tpm_cr50_i2c_probe(struct i2c_client *client)
{
struct tpm_i2c_cr50_priv_data *priv;
struct device *dev = &client->dev;
@@ -774,8 +767,7 @@ static int tpm_cr50_i2c_remove(struct i2c_client *client)
static SIMPLE_DEV_PM_OPS(cr50_i2c_pm, tpm_pm_suspend, tpm_pm_resume);

static struct i2c_driver cr50_i2c_driver = {
- .id_table = cr50_i2c_table,
- .probe = tpm_cr50_i2c_probe,
+ .probe_new = tpm_cr50_i2c_probe,
.remove = tpm_cr50_i2c_remove,
.driver = {
.name = "cr50_i2c",
--
2.32.0

2021-07-27 03:11:04

by Jarkko Sakkinen

[permalink] [raw]
Subject: Re: [PATCH 1/2] char: tpm: Kconfig: remove bad i2c cr50 select

On Fri, Jul 23, 2021 at 09:41:49PM +0300, Adrian Ratiu wrote:
> This fixes a minor bug which went unnoticed during the initial
> driver upstreaming review: TCG_CR50 does not exist in mainline
> kernels, so remove it.
>
> Fixes: 3a253caaad11 ("char: tpm: add i2c driver for cr50")
> Signed-off-by: Adrian Ratiu <[email protected]>



Reviewed-by: Jarkko Sakkinen <[email protected]>

Also, for this I'd add:

Cc: [email protected]

?

/Jarkko

2021-07-27 03:12:09

by Jarkko Sakkinen

[permalink] [raw]
Subject: Re: [PATCH 2/2] char: tpm: cr50_i2c: convert to new probe interface

On Fri, Jul 23, 2021 at 09:41:50PM +0300, Adrian Ratiu wrote:
> Way back when this driver was written the i2c framework

Nit: I2C (not i2c)

> used to insist an ID table be defined even if the driver
> did not use it in favor of ACPI/OF matching, so it was
> added just to placate the hard i2c framework requirement.

Ditto.

> This is no longer the case so we can drop the table and
> also convert the driver to the new probe interface.
>
> Signed-off-by: Adrian Ratiu <[email protected]>
> ---
> drivers/char/tpm/tpm_tis_i2c_cr50.c | 12 ++----------
> 1 file changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/char/tpm/tpm_tis_i2c_cr50.c b/drivers/char/tpm/tpm_tis_i2c_cr50.c
> index 44dde2fbe2fb..c89278103703 100644
> --- a/drivers/char/tpm/tpm_tis_i2c_cr50.c
> +++ b/drivers/char/tpm/tpm_tis_i2c_cr50.c
> @@ -639,12 +639,6 @@ static const struct tpm_class_ops cr50_i2c = {
> .req_canceled = &tpm_cr50_i2c_req_canceled,
> };
>
> -static const struct i2c_device_id cr50_i2c_table[] = {
> - {"cr50_i2c", 0},
> - {}
> -};
> -MODULE_DEVICE_TABLE(i2c, cr50_i2c_table);
> -
> #ifdef CONFIG_ACPI
> static const struct acpi_device_id cr50_i2c_acpi_id[] = {
> { "GOOG0005", 0 },
> @@ -670,8 +664,7 @@ MODULE_DEVICE_TABLE(of, of_cr50_i2c_match);
> * - 0: Success.
> * - -errno: A POSIX error code.
> */
> -static int tpm_cr50_i2c_probe(struct i2c_client *client,
> - const struct i2c_device_id *id)
> +static int tpm_cr50_i2c_probe(struct i2c_client *client)
> {
> struct tpm_i2c_cr50_priv_data *priv;
> struct device *dev = &client->dev;
> @@ -774,8 +767,7 @@ static int tpm_cr50_i2c_remove(struct i2c_client *client)
> static SIMPLE_DEV_PM_OPS(cr50_i2c_pm, tpm_pm_suspend, tpm_pm_resume);
>
> static struct i2c_driver cr50_i2c_driver = {
> - .id_table = cr50_i2c_table,
> - .probe = tpm_cr50_i2c_probe,
> + .probe_new = tpm_cr50_i2c_probe,
> .remove = tpm_cr50_i2c_remove,
> .driver = {
> .name = "cr50_i2c",
> --
> 2.32.0
>
>

Otherwise, LGTM

/Jarkko