Skip to contentSkip to conversation

x86/platform, acpi: Statically assign IRQ numbers in ACPI, hardware reduced mode

PATCH New Li, Aubrey 1 participant 1 message Apr 1, 2015

Subsystems (2)
lore
Share & tools
lore

Li, Aubrey

author
#0 lore raw

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.

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
index 803b684..4cd0761 100644
@@ -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