tpm: Re-enable TPM chip boostrapping non-tpm_tis TPM drivers
authorJarkko Sakkinen <jarkko@kernel.org>
Wed, 26 Apr 2023 18:49:37 +0000 (21:49 +0300)
committerJarkko Sakkinen <jarkko@kernel.org>
Fri, 28 Apr 2023 13:06:36 +0000 (13:06 +0000)
commit0c8862de05c1a087795ee0a87bf61a6394306cc0
tree4995cd10c975c5a07c87c328f09f0a85f83229e6
parent6e98b09da931a00bf4e0477d0fa52748bf28fcce
tpm: Re-enable TPM chip boostrapping non-tpm_tis TPM drivers

TPM chip bootstrapping was removed from tpm_chip_register(), and it
was relocated to tpm_tis_core. This breaks all drivers which are not
based on tpm_tis because the chip will not get properly initialized.

Take the corrective steps:
1. Rename tpm_chip_startup() as tpm_chip_bootstrap() and make it one-shot.
2. Call tpm_chip_bootstrap() in tpm_chip_register(), which reverts the
   things  as tehy used to be.

Cc: Lino Sanfilippo <l.sanfilippo@kunbus.com>
Fixes: 548eb516ec0f ("tpm, tpm_tis: startup chip before testing for interrupts")
Reported-by: Pengfei Xu <pengfei.xu@intel.com>
Link: https://lore.kernel.org/all/ZEjqhwHWBnxcaRV5@xpf.sh.intel.com/
Tested-by: Pengfei Xu <pengfei.xu@intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
drivers/char/tpm/tpm-chip.c
drivers/char/tpm/tpm.h
drivers/char/tpm/tpm_tis_core.c
include/linux/tpm.h