[PATCH 0/1] tpm_tis_i2c: Fix -Wdeclaration-after-statement

Joel Stanley joel at jms.id.au
Fri Jul 29 10:21:31 AEST 2022

Hi Peter,

On Mon, 25 Jul 2022 at 22:51, Peter Delevoryas <peter at pjd.dev> wrote:
> Hey Joel,
> I've been trying to build fby35 from https://github.com/openbmc/openbmc, and I
> noticed that the TPM TIS I2C file seems to emit a warning that causes a
> compilation error:
> ../drivers/char/tpm/tpm_tis_i2c.c: In function ‘tpm_tis_i2c_write_bytes’:
> ../drivers/char/tpm/tpm_tis_i2c.c:114:17: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
>   114 |                 struct i2c_msg msgs[] = {
>       |                 ^~~~~~
> I'm sending this patch as a fix for the warning, to avoid the compilation error.

Thanks for trying to fix this.

> Normally I think I would send this to the upstream kernel mailing list, but
> this file doesn't actually seem to be in the upstream at any point:
>     drivers/char/tpm/tpm_tis_i2c.c
> It looks like it was added by Nuvoton and never upstreamed successfully? Perhaps
> we should get rid of it at this point? fby35 doesn't actually use the TPM TIS
> I2C interface, it uses the SPI one. Bletchley doesn't use the I2C one either.
> Only older FB platforms did.

The i2c driver was added for the IBM P10 platforms.

> Actually, doing a quick search on lore.kernel.org: It looks like maybe there's
> a new version submitted by Infineon in June:
>     https://lore.kernel.org/all/20220608173113.9232-1-Alexander.Steffen@infineon.com/
> If fby35 wants to avoid this error, should we fix the driver, remove it from the
> kernel, pull in the new driver from upstream, or maybe just disable it in the
> linux-aspeed tpm2 distro feature Kconfig?

The upstream maintainer has been reluctant to merge this code. Nuvoton
told me off-list they had abandoned plans to upstream it. Since then
Infineon have picked it up and made some submissions. It looks like
it's been queued for merging in v5.20.

I'd be happy moving to the latest version of the patch in the openbmc
tree. Either as a revert+new driver, or as a diff, whichever you think
makes sense. They inexplicably removed the compatible strings in the
latest submission, so we would need to add them back:

 static const struct of_device_id of_tis_i2c_match[] = {
-       { .compatible = "nuvoton,npct75x", },
-       { .compatible = "tcg,tpm-tis-i2c", },
+       { .compatible = "infineon,slb9673", },



More information about the openbmc mailing list