diff options
author | Damien Zammit <damien@zamaudio.com> | 2025-06-22 07:36:10 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2025-06-22 21:41:30 +0200 |
commit | f2eb25f27b7224cbf964ff59d68656ae9a5ff2d3 (patch) | |
tree | 160f7cb5dc38f7bd0424abc0984956761fa54a58 | |
parent | 1a6e2d721989a0059b8cfe91b604bc33637ec4c7 (diff) |
acpi: Ignore irq 9 requests because PIIX3 ACPI is wrongv0.9.git20250622
Fall back to bios defaults for requests for irq 9.
Ideally we could check the PIIX3 bridge device exists on
pci, but that would require pci access before pci-arbiter
exists. This is a convenient workaround for now.
Message-ID: <20250622073557.188295-1-damien@zamaudio.com>
-rw-r--r-- | acpi/acpi-ops.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/acpi/acpi-ops.c b/acpi/acpi-ops.c index 16d96e71..8fc6104f 100644 --- a/acpi/acpi-ops.c +++ b/acpi/acpi-ops.c @@ -30,6 +30,13 @@ #include <acpi/acpi_init.h> #include "acpifs.h" +/* PIIX3 chipset returns IRQ 9 for all ACPI irq requests + * but IDE is actually wired to legacy irqs 14 and 15. + * To avoid needing pci access in acpi, we can consider + * all mappings to 9 to be invalid irqs and use + * bios defaults for these requests instead. */ +#define WRONG_IRQ 9 + static error_t check_permissions (struct protid *master, int flags) { @@ -83,6 +90,8 @@ S_acpi_get_pci_irq (struct protid *master, return err; ret = acpi_get_irq_number(bus, dev, func); + if (ret == WRONG_IRQ) + return EOPNOTSUPP; if (ret < 0) return EIO; |