[coreboot-gerrit] New patch to review for coreboot: drivers/i2c/tpm/cr50: Initialize IRQ status handler before probe

Duncan Laurie (dlaurie@chromium.org) gerrit at coreboot.org
Mon Oct 3 21:44:27 CEST 2016


Duncan Laurie (dlaurie at chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16861

-gerrit

commit bd0e92d4ae6e10039a2f5f45cf6136cde221e0a8
Author: Duncan Laurie <dlaurie at chromium.org>
Date:   Mon Oct 3 12:43:14 2016 -0700

    drivers/i2c/tpm/cr50: Initialize IRQ status handler before probe
    
    Move the setup of the IRQ status handler so it will be set up properly
    before the early probe happens.
    
    BUG=chrome-os-partner:53336
    
    Change-Id: I4380af1233d2a252899459635a3cb69ca196088d
    Signed-off-by: Duncan Laurie <dlaurie at chromium.org>
---
 src/drivers/i2c/tpm/cr50.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/drivers/i2c/tpm/cr50.c b/src/drivers/i2c/tpm/cr50.c
index af7f2ae..f7e667b 100644
--- a/src/drivers/i2c/tpm/cr50.c
+++ b/src/drivers/i2c/tpm/cr50.c
@@ -416,6 +416,19 @@ static void cr50_vendor_init(struct tpm_chip *chip)
 	chip->vendor.send = &cr50_i2c_tis_send;
 	chip->vendor.cancel = &cr50_i2c_tis_ready;
 	chip->vendor.irq = CONFIG_DRIVER_TPM_I2C_IRQ;
+
+	/*
+	 * Interrupts are not supported this early in firmware,
+	 * use use an arch-specific method to query for interrupt status.
+	 */
+	if (chip->vendor.irq > 0) {
+#if IS_ENABLED(CONFIG_ARCH_X86)
+		/* Query GPE status for interrupt */
+		chip->vendor.irq_status = &acpi_get_gpe;
+#else
+		chip->vendor.irq = -1;
+#endif
+	}
 }
 
 int tpm_vendor_probe(unsigned bus, uint32_t addr)
@@ -470,19 +483,6 @@ int tpm_vendor_init(struct tpm_chip *chip, unsigned bus, uint32_t dev_addr)
 
 	cr50_vendor_init(chip);
 
-	/*
-	 * Interrupts are not supported this early in firmware,
-	 * use use an arch-specific method to query for interrupt status.
-	 */
-	if (chip->vendor.irq > 0) {
-#if IS_ENABLED(CONFIG_ARCH_X86)
-		/* Query GPE status for interrupt */
-		chip->vendor.irq_status = &acpi_get_gpe;
-#else
-		chip->vendor.irq = -1;
-#endif
-	}
-
 	if (request_locality(chip, 0) != 0)
 		return -1;
 



More information about the coreboot-gerrit mailing list