x86/platform, acpi: Statically assign IRQ numbers in ACPI, hardware reduced mode
PATCH 1/1 x86/platform, acpi: Statically assign IRQ numbers in ACPI, hardware reduced mode
We have to be conservative to dynamically assign IRQ number on the platform in ACPI Hardware-reduced mode. On the Bay Trail-T(ASUS-T100) platform, there is a RTC device still using the legacy hardcoded IRQ8, which could cause the following error if RTC is configured:
7486341a98f: genirq: Flags mismatch irq 8. 00000080 (mmc0) vs. 00000000 (rtc0)
So we want to statically assign IRQ numbers in ACPI hardware reduced mode to fix this error, this also matches with the original IRQ assignment policy.
Signed-off-by Li Aubrey <[email protected]>
Cc Alan Cox <[email protected]>
Cc Len Brown <[email protected]>
Cc Rafael J. Wysocki <[email protected]>
Cc Arjan van de Ven <[email protected]>
--- arch/x86/kernel/acpi/boot.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
arch/x86/kernel/acpi/boot.c +6 -2
@@ -460,8 +460,12 @@ acpi_parse_ioapic(struct acpi_subtable_header * header, const unsigned long end)acpi_table_print_madt_entry (header); -/* Statically assign IRQ numbers for IOAPICs hosting legacy IRQs */ -if (ioapic->global_irq_base <nr_legacy_irqs ()) +/* +* Statically assign IRQ numbers for IOAPICs hosting legacy IRQs, +* Or for the platform in Hardware-reduced ACPI model +*/ +if (ioapic->global_irq_base <nr_legacy_irqs () || + acpi_gbl_reduced_hardware) cfg.type =IOAPIC_DOMAIN_LEGACY ; mp_register_ioapic(ioapic->id, ioapic->address, ioapic->global_irq_base,
Signature · 1 line
1.9.1