tpm/tpm_crb: implement tpm crb idle state
authorWinkler, Tomas <tomas.winkler@intel.com>
Thu, 15 Sep 2016 07:27:38 +0000 (10:27 +0300)
committerJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Fri, 16 Sep 2016 12:47:36 +0000 (15:47 +0300)
commite17acbbb69d30836a8c12e2c09bbefab8656693e
treeec99a60f272655fbeb33d08eb6fd81183d819ede
parentebfd7532e985818a327906e011f3e43c8ddfdd74
tpm/tpm_crb: implement tpm crb idle state

The register TPM_CRB_CTRL_REQ_x contains bits goIdle and cmdReady for
SW to indicate that the device can enter or should exit the idle state.

The legacy ACPI-start (SMI + DMA) based devices do not support these
bits and the idle state management is not exposed to the host SW.
Thus, this functionality only is enabled only for a CRB start (MMIO)
based devices.

Based on Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
original patch:
'tpm_crb: implement power tpm crb power management'

To keep the implementation local to the hw we don't use wait_for_tpm_stat
for polling the TPM_CRB_CTRL_REQ.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
drivers/char/tpm/tpm_crb.c