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@chromium.org> Reviewed-on: https://review.coreboot.org/16861 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
This commit is contained in:
parent
77ba882c67
commit
48f708d199
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue