提交 e891db1a 编写于 作者: J Jarkko Sakkinen 提交者: James Morris

tpm: turn on TPM on suspend for TPM 1.x

tpm_chip_start/stop() should be also called for TPM 1.x devices on
suspend. Add that functionality back. Do not lock the chip because
it is unnecessary as there are no multiple threads using it when
doing the suspend.

Fixes: a3fbfae8 ("tpm: take TPM chip power gating out of tpm_transmit()")
Reported-by: NPaul Zimmerman <pauldzim@gmail.com>
Signed-off-by: NJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: NDomenico Andreoli <domenico.andreoli@linux.com>
Signed-off-by: NJames Morris <james.morris@microsoft.com>
上级 fd008d1a
...@@ -402,15 +402,13 @@ int tpm_pm_suspend(struct device *dev) ...@@ -402,15 +402,13 @@ int tpm_pm_suspend(struct device *dev)
if (chip->flags & TPM_CHIP_FLAG_ALWAYS_POWERED) if (chip->flags & TPM_CHIP_FLAG_ALWAYS_POWERED)
return 0; return 0;
if (chip->flags & TPM_CHIP_FLAG_TPM2) { if (!tpm_chip_start(chip)) {
mutex_lock(&chip->tpm_mutex); if (chip->flags & TPM_CHIP_FLAG_TPM2)
if (!tpm_chip_start(chip)) {
tpm2_shutdown(chip, TPM2_SU_STATE); tpm2_shutdown(chip, TPM2_SU_STATE);
tpm_chip_stop(chip); else
} rc = tpm1_pm_suspend(chip, tpm_suspend_pcr);
mutex_unlock(&chip->tpm_mutex);
} else { tpm_chip_stop(chip);
rc = tpm1_pm_suspend(chip, tpm_suspend_pcr);
} }
return rc; return rc;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册