linux/drivers/char/tpm
Maciej S. Szmigiero 1b7f385e04 tpm_tis: use default timeout value if chip reports it as zero
commit 1d70fe9d9c upstream.

Since commit 1107d065fd ("tpm_tis: Introduce intermediate layer for
TPM access") Atmel 3203 TPM on ThinkPad X61S (TPM firmware version 13.9)
no longer works.  The initialization proceeds fine until we get and
start using chip-reported timeouts - and the chip reports C and D
timeouts of zero.

It turns out that until commit 8e54caf407 ("tpm: Provide a generic
means to override the chip returned timeouts") we had actually let
default timeout values remain in this case, so let's bring back this
behavior to make chips like Atmel 3203 work again.

Use a common code that was introduced by that commit so a warning is
printed in this case and /sys/class/tpm/tpm*/timeouts correctly says the
timeouts aren't chip-original.


This is a backport for 4.9 kernel version of the original commit, with
renaming of "TPM_TIS_ITPM_POSSIBLE" flag removed since it was only a
cosmetic change and not a part of the real bug fix.

Fixes: 1107d065fd ("tpm_tis: Introduce intermediate layer for TPM access")
Cc: stable@vger.kernel.org
Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-05-08 07:47:55 +02:00
..
st33zp24 tpm/st33zp24: Remove useless tpm_gen_interrupt 2016-09-15 16:04:21 +03:00
Kconfig tpm/tpm_tis_spi: Add support for spi phy 2016-06-25 17:28:57 +03:00
Makefile tpm/tpm_tis_spi: Add support for spi phy 2016-06-25 17:28:57 +03:00
tpm-chip.c tpm: Factor out common startup code 2016-07-19 17:43:38 +03:00
tpm-dev.c tpm: fix a race condition in tpm2_unseal_trusted() 2016-09-15 16:04:21 +03:00
tpm-interface.c tpm_tis: use default timeout value if chip reports it as zero 2017-05-08 07:47:55 +02:00
tpm-sysfs.c tpm: constify TPM 1.x header structures 2016-09-15 16:04:21 +03:00
tpm.h tpm: replace tpm_gen_interrupt() with tpm_tis_gen_interrupt() 2016-09-15 16:04:21 +03:00
tpm2-cmd.c tpm: use tpm_transmit_cmd() in tpm2_probe() 2016-09-15 16:04:21 +03:00
tpm_acpi.c ACPI: Clean up acpi_os_map/unmap_memory() to eliminate __iomem. 2014-05-27 18:13:08 +02:00
tpm_atmel.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_atmel.h tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_crb.c Revert "tpm/tpm_crb: implement tpm crb idle state" 2016-09-27 12:02:13 +03:00
tpm_eventlog.c tpm: Get rid of devname 2016-06-25 17:26:35 +03:00
tpm_eventlog.h tpm: fix tpm_bios_log_setup stub prototype 2016-06-25 17:26:35 +03:00
tpm_i2c_atmel.c tpm: Factor out common startup code 2016-07-19 17:43:38 +03:00
tpm_i2c_infineon.c tpm: Factor out common startup code 2016-07-19 17:43:38 +03:00
tpm_i2c_nuvoton.c tpm: Add TPM 2.0 support to the Nuvoton i2c driver (NPCT6xx family) 2016-07-19 17:43:38 +03:00
tpm_ibmvtpm.c tpm: fix for typo in tpm/tpm_ibmvtpm.c 2016-06-25 17:26:35 +03:00
tpm_ibmvtpm.h tpm_ibmvtpm: properly handle interrupted packet receptions 2015-12-20 15:27:12 +02:00
tpm_infineon.c tpm: Get rid of chip->pdev 2016-06-25 17:26:35 +03:00
tpm_nsc.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_of.c TPM: Avoid reference to potentially freed memory 2015-11-09 17:52:55 +02:00
tpm_ppi.c tpm: move the PPI attributes to character device directory. 2015-10-19 01:01:20 +02:00
tpm_tis.c tpm_tis: fix the error handling of init_tis() 2017-03-12 06:41:43 +01:00
tpm_tis_core.c tpm_tis: Check return values from get_burstcount. 2017-01-12 11:39:38 +01:00
tpm_tis_core.h tpm/tpm_tis: Split tpm_tis driver into a core and TCG TIS compliant phy 2016-06-25 17:28:57 +03:00
tpm_tis_spi.c tpm/tpm_tis_spi: Add support for spi phy 2016-06-25 17:28:57 +03:00
tpm_vtpm_proxy.c tpm: Factor out common startup code 2016-07-19 17:43:38 +03:00
xen-tpmfront.c tpm xen: Remove bogus tpm_chip_unregister 2017-01-06 10:40:17 +01:00