linux_dsm_epyc7002/drivers/char/tpm
Peter Huewe 5cc0101d1f tpm_tis_spi: Add small delay after last transfer
Testing the implementation with a Raspberry Pi 2 showed that under some
circumstances its SPI master erroneously releases the CS line before the
transfer is complete, i.e. before the end of the last clock. In this case
the TPM ignores the transfer and misses for example the GO command. The
driver is unable to detect this communication problem and will wait for a
command response that is never going to arrive, timing out eventually.

As a workaround, the small delay ensures that the CS line is held long
enough, even with a faulty SPI master. Other SPI masters are not affected,
except for a negligible performance penalty.

Cc: <stable@vger.kernel.org>
Fixes: 0edbfea537 ("tpm/tpm_tis_spi: Add support for spi phy")
Signed-off-by: Alexander Steffen <Alexander.Steffen@infineon.com>
Signed-off-by: Peter Huewe <peter.huewe@infineon.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Benoit Houyere <benoit.houyere@st.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
2017-04-03 22:46:01 +03:00
..
st33zp24 tpm/st33zp24: Remove unneeded linux/miscdevice.h include 2017-01-23 18:28:18 +02:00
Kconfig tpm: select CONFIG_CRYPTO 2017-04-03 22:46:00 +03:00
Makefile tpm: add securityfs support for TPM 2.0 firmware event log 2017-02-03 22:03:14 +02:00
tpm1_eventlog.c tpm: add securityfs support for TPM 2.0 firmware event log 2017-02-03 22:03:14 +02:00
tpm2_eventlog.c tpm: add securityfs support for TPM 2.0 firmware event log 2017-02-03 22:03:14 +02:00
tpm2-cmd.c tpm: declare tpm2_get_pcr_allocation() as static 2017-02-20 13:23:18 +02:00
tpm_acpi.c tpm: add securityfs support for TPM 2.0 firmware event log 2017-02-03 22:03:14 +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 tpm_read_index and tpm_write_index from tpm.h 2017-02-03 22:03:14 +02:00
tpm_crb.c tpm/tpm_crb: enter the low power state upon device suspend 2017-04-03 22:46:00 +03:00
tpm_eventlog.h tpm: add securityfs support for TPM 2.0 firmware event log 2017-02-03 22:03:14 +02: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: msleep() delays - replace with usleep_range() in i2c nuvoton driver 2017-04-03 22:46:00 +03:00
tpm_ibmvtpm.c tpm/vtpm: fix kdoc warnings 2017-01-23 18:28:18 +02: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 tpm_read_index and tpm_write_index from tpm.h 2017-02-03 22:03:14 +02:00
tpm_of.c tpm: enhance read_log_of() to support Physical TPM event log 2017-02-03 22:03:14 +02:00
tpm_ppi.c tpm: move the PPI attributes to character device directory. 2015-10-19 01:01:20 +02:00
tpm_tis_core.c tpm_tis_core: Choose appropriate timeout for reading burstcount 2017-04-03 22:46:00 +03:00
tpm_tis_core.h tpm_tis: use default timeout value if chip reports it as zero 2017-01-23 18:28:18 +02:00
tpm_tis_spi.c tpm_tis_spi: Add small delay after last transfer 2017-04-03 22:46:01 +03:00
tpm_tis.c tpm_tis: fix the error handling of init_tis() 2017-02-14 19:24:33 +02:00
tpm_vtpm_proxy.c tpm/vtpm: fix kdoc warnings 2017-01-23 18:28:18 +02:00
tpm-chip.c tmp: use pdev for parent device in tpm_chip_alloc 2017-01-23 18:28:18 +02:00
tpm-dev.c tpm: Begin the process to deprecate user_read_timer 2017-02-03 22:03:14 +02:00
tpm-interface.c tpm: Fix expected number of response bytes of TPM1.2 PCR Extend 2017-02-15 20:09:52 +02:00
tpm-sysfs.c tpm: Check size of response before accessing data 2017-01-23 18:28:18 +02:00
tpm.h tpm: declare tpm2_get_pcr_allocation() as static 2017-02-20 13:23:18 +02:00
xen-tpmfront.c tpm xen: drop unneeded chip variable 2017-02-14 19:24:33 +02:00