1. 15 2月, 2015 1 次提交
    • J
      tpm: fix suspend/resume paths for TPM 2.0 · 74d6b3ce
      Jarkko Sakkinen 提交于
      Fixed suspend/resume paths for TPM 2.0 and consolidated all the
      associated code to the tpm_pm_suspend() and tpm_pm_resume()
      functions. Resume path should be handled by the firmware, i.e.
      Startup(CLEAR) for hibernate and Startup(STATE) for suspend.
      
      There might be some non-PC embedded devices in the future where
      Startup() is not the handled by the FW but fixing the code for
      those IMHO should be postponed until there is hardware available
      to test the fixes although extra Startup in the driver code is
      essentially a NOP.
      
      Added Shutdown(CLEAR) to the remove paths of TIS and CRB drivers.
      Changed tpm2_shutdown() to a void function because there isn't
      much you can do except print an error message if this fails with
      a system error.
      
      Fixes: aec04cbd ("tpm: TPM 2.0 FIFO Interface")
      Fixes: 30fc8d13 ("tpm: TPM 2.0 CRB Interface")
      [phuewe: both did send TPM_Shutdown on resume which 'disables' the TPM
      and did not send TPM2_Shutdown on teardown which leads some TPM2.0 to
      believe there was an attack (no TPM2_Shutdown = no orderly shutdown =
      attack)]
      Reported-by: NPeter Hüwe <PeterHuewe@gmx.de>
      Signed-off-by: NJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
      Tested-by: NScot Doyle <lkml14@scotdoyle.com>
      Reviewed-by: NPeter Huewe <peterhuewe@gmx.de>
      Signed-off-by: NPeter Huewe <peterhuewe@gmx.de>
      74d6b3ce
  2. 17 1月, 2015 1 次提交