linux/drivers/char/tpm
Christophe Ricard 1107d065fd tpm_tis: Introduce intermediate layer for TPM access
This splits tpm_tis in a high-level protocol part and a low-level interface
for the actual TPM communication. The low-level interface can then be
implemented by additional drivers to provide access to TPMs using other
mechanisms, for example native I2C or SPI transfers, while still reusing
the same TIS protocol implementation.

Though the ioread/iowrite calls cannot fail, other implementations of this
interface might want to return error codes if their communication fails.

This follows the usual pattern of negative values representing errors and
zero representing success. Positive values are not used (yet).

Errors are passed back to the caller if possible. If the interface of a
function does not allow that, it tries to do the most sensible thing it
can, but this might also mean ignoring the error in this instance.

This commit is based on the initial work by Peter Huewe.

Signed-off-by: Alexander Steffen <Alexander.Steffen@infineon.com>
Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Reviewed-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
2016-06-25 17:26:35 +03:00
..
st33zp24 tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
Kconfig tpm: select ANON_INODES for proxy driver 2016-06-25 17:26:35 +03:00
Makefile tpm: Proxy driver for supporting multiple emulated TPMs 2016-06-25 17:26:35 +03:00
tpm-chip.c tpm: Introduce TPM_CHIP_FLAG_VIRTUAL 2016-06-25 17:26:35 +03:00
tpm-dev.c tpm: Provide strong locking for device removal 2016-06-25 17:26:35 +03:00
tpm-interface.c tpm: Fix suspend regression 2016-06-25 17:26:35 +03:00
tpm-sysfs.c tpm: Remove all uses of drvdata from the TPM Core 2016-06-25 17:26:35 +03:00
tpm.h tpm: Add include guards in tpm.h 2016-06-25 17:26:35 +03:00
tpm2-cmd.c tpm: Move tpm_vendor_specific data related with PTP specification to tpm_chip 2016-06-25 17:26:35 +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 tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +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: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00
tpm_i2c_infineon.c tpm: Move tpm_vendor_specific data related with PTP specification to tpm_chip 2016-06-25 17:26:35 +03:00
tpm_i2c_nuvoton.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +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: Introduce intermediate layer for TPM access 2016-06-25 17:26:35 +03:00
tpm_tis_core.h tpm_tis: Introduce intermediate layer for TPM access 2016-06-25 17:26:35 +03:00
tpm_vtpm_proxy.c tpm: Proxy driver for supporting multiple emulated TPMs 2016-06-25 17:26:35 +03:00
xen-tpmfront.c tpm: Remove useless priv field in struct tpm_vendor_specific 2016-06-25 17:26:35 +03:00