diff options
Diffstat (limited to 'src/drivers/i2c/tpm/cr50.c')
-rw-r--r-- | src/drivers/i2c/tpm/cr50.c | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/src/drivers/i2c/tpm/cr50.c b/src/drivers/i2c/tpm/cr50.c index 0130b93169..696533969c 100644 --- a/src/drivers/i2c/tpm/cr50.c +++ b/src/drivers/i2c/tpm/cr50.c @@ -34,7 +34,6 @@ #define CR50_TIMEOUT_LONG_MS 2000 /* Long timeout while waiting for TPM */ #define CR50_TIMEOUT_SHORT_MS 2 /* Short timeout during transactions */ #define CR50_TIMEOUT_NOIRQ_MS 20 /* Timeout for TPM ready without IRQ */ -#define CR50_TIMEOUT_IRQ_MS 100 /* Timeout for TPM ready with IRQ */ #define CR50_DID_VID 0x00281ae0L #define TI50_DID_VID 0x504a6666L @@ -60,21 +59,6 @@ __weak int tis_plat_irq_status(void) return 1; } -/* Wait for interrupt to indicate the TPM is ready */ -static int cr50_i2c_wait_tpm_ready(void) -{ - struct stopwatch sw; - - stopwatch_init_msecs_expire(&sw, CR50_TIMEOUT_IRQ_MS); - - while (!tis_plat_irq_status()) - if (stopwatch_expired(&sw)) { - printk(BIOS_ERR, "Cr50 i2c TPM IRQ timeout!\n"); - return -1; - } - return 0; -} - /* * cr50_i2c_read() - read from TPM register * @@ -103,7 +87,7 @@ static int cr50_i2c_read(uint8_t addr, uint8_t *buffer, size_t len) } /* Wait for TPM to be ready with response data */ - if (cr50_i2c_wait_tpm_ready() < 0) + if (cr50_wait_tpm_ready() != CB_SUCCESS) return -1; /* Read response data from the TPM */ @@ -149,7 +133,7 @@ static int cr50_i2c_write(uint8_t addr, const uint8_t *buffer, size_t len) } /* Wait for TPM to be ready */ - return cr50_i2c_wait_tpm_ready(); + return cr50_wait_tpm_ready() == CB_SUCCESS ? 0 : -1; } /* |