linux/drivers/char/tpm
Jarkko Sakkinen 4b675ad444 tpm, tpm_tis: fix tpm_tis ACPI detection issue with TPM 2.0
commit 399235dc6e upstream.

Both for FIFO and CRB interface TCG has decided to use the same HID
MSFT0101. They can be differentiated by looking at the start method from
TPM2 ACPI table. This patches makes necessary fixes to tpm_tis and
tpm_crb modules in order to correctly detect, which module should be
used.

For MSFT0101 we must use struct acpi_driver because struct pnp_driver
has a 7 character limitation.

It turned out that the root cause in b371616b8 was not correct for
https://bugzilla.kernel.org/show_bug.cgi?id=98181.

v2:

* One fixup was missing from v1: is_tpm2_fifo -> is_fifo

v3:

* Use pnp_driver for existing HIDs and acpi_driver only for MSFT0101 in
  order ensure backwards compatibility.

v4:

* Check for FIFO before doing *anything* in crb_acpi_add().
* There was return immediately after acpi_bus_unregister_driver() in
  cleanup_tis(). This caused pnp_unregister_driver() not to be called.

Reported-by: Michael Saunders <mick.saunders@gmail.com>
Reported-by: Michael Marley <michael@michaelmarley.com>
Reported-by: Jethro Beekman <kernel@jbeekman.nl>
Reported-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Michael Marley <michael@michaelmarley.com>
Tested-by: Mimi Zohar <zohar@linux.vnet.ibm.com> (on TPM 1.2)
Reviewed-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2016-01-22 20:54:09 -08:00
..
st33zp24 tpm/st33zp24/spi: Add missing device table for spi phy. 2015-03-27 02:50:43 +01:00
Kconfig tpm: Update KConfig text to include TPM2.0 FIFO chips 2015-03-18 22:43:07 +01:00
Makefile tpm/tpm_i2c_stm_st33: Split tpm_i2c_tpm_st33 in 2 layers (core + phy) 2015-03-18 22:43:06 +01:00
tpm-chip.c tpm: Fix initialization of the cdev 2015-08-03 09:29:11 -07:00
tpm-dev.c tpm: device class for tpm 2015-01-17 14:00:10 +01:00
tpm-interface.c tpm: fix suspend/resume paths for TPM 2.0 2015-02-15 16:56:49 +01:00
tpm-sysfs.c tpm: rename chip->dev to chip->pdev 2015-01-17 14:00:09 +01:00
tpm.h tpm, tpm_tis: fix tpm_tis ACPI detection issue with TPM 2.0 2016-01-22 20:54:09 -08:00
tpm2-cmd.c tpm, tpm_tis: fix TPM 2.0 probing 2015-02-15 16:59:15 +01: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: rename chip->dev to chip->pdev 2015-01-17 14:00:09 +01:00
tpm_atmel.h tpmdd maintainers 2007-08-22 19:52:44 -07:00
tpm_crb.c tpm, tpm_tis: fix tpm_tis ACPI detection issue with TPM 2.0 2016-01-22 20:54:09 -08:00
tpm_eventlog.c tpm: simplify code by using %*phN specifier 2014-07-29 23:10:56 +02:00
tpm_eventlog.h drivers/char/tpm: Add securityfs support for event log 2012-08-22 16:22:47 -05:00
tpm_i2c_atmel.c tpm: rename chip->dev to chip->pdev 2015-01-17 14:00:09 +01:00
tpm_i2c_infineon.c tpm: rename chip->dev to chip->pdev 2015-01-17 14:00:09 +01:00
tpm_i2c_nuvoton.c tpm: device class for tpm 2015-01-17 14:00:10 +01:00
tpm_ibmvtpm.c vTPM: set virtual device before passing to ibmvtpm_reset_crq 2015-08-03 09:29:11 -07:00
tpm_ibmvtpm.h tpm/ibmvtpm: Additional LE support for tpm_ibmvtpm_send 2015-03-06 22:35:48 +01:00
tpm_infineon.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2015-04-15 11:08:27 -07:00
tpm_nsc.c tpm: rename chip->dev to chip->pdev 2015-01-17 14:00:09 +01:00
tpm_of.c tpm_ibmvtpm: Update email address in maintainers list and ibmvtpm driver 2015-01-17 14:00:09 +01:00
tpm_ppi.c tpm: rename chip->dev to chip->pdev 2015-01-17 14:00:09 +01:00
tpm_tis.c tpm, tpm_tis: fix tpm_tis ACPI detection issue with TPM 2.0 2016-01-22 20:54:09 -08:00
xen-tpmfront.c xenbus_client: Extend interface to support multi-page ring 2015-04-15 10:56:47 +01:00