Refactor the two checks for whether the TPM supports idle into a single
inline function.

Signed-off-by: Stuart Yoder <[email protected]>
---
 drivers/char/tpm/tpm_crb.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c
index ea085b14ab7c..d696226906a2 100644
--- a/drivers/char/tpm/tpm_crb.c
+++ b/drivers/char/tpm/tpm_crb.c
@@ -115,6 +115,16 @@ struct tpm2_crb_pluton {
        u64 reply_addr;
 };
 
+static inline bool tpm_crb_has_idle(u32 start_method)
+{
+       if ((start_method == ACPI_TPM2_START_METHOD) ||
+           (start_method == ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD) ||
+           (start_method == ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC))
+               return false;
+       else
+               return true;
+}
+
 static bool crb_wait_for_reg_32(u32 __iomem *reg, u32 mask, u32 value,
                                unsigned long timeout)
 {
@@ -173,9 +183,7 @@ static int __crb_go_idle(struct device *dev, struct 
crb_priv *priv)
 {
        int rc;
 
-       if ((priv->sm == ACPI_TPM2_START_METHOD) ||
-           (priv->sm == ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD) ||
-           (priv->sm == ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC))
+       if (!tpm_crb_has_idle(priv->sm))
                return 0;
 
        iowrite32(CRB_CTRL_REQ_GO_IDLE, &priv->regs_t->ctrl_req);
@@ -222,9 +230,7 @@ static int __crb_cmd_ready(struct device *dev, struct 
crb_priv *priv)
 {
        int rc;
 
-       if ((priv->sm == ACPI_TPM2_START_METHOD) ||
-           (priv->sm == ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD) ||
-           (priv->sm == ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC))
+       if (!tpm_crb_has_idle(priv->sm))
                return 0;
 
        iowrite32(CRB_CTRL_REQ_CMD_READY, &priv->regs_t->ctrl_req);
-- 
2.34.1


Reply via email to