diff options
author | njl <njl@FreeBSD.org> | 2004-09-25 06:15:56 +0000 |
---|---|---|
committer | njl <njl@FreeBSD.org> | 2004-09-25 06:15:56 +0000 |
commit | 005025984ebefb339291c471dccaef807ec5cf3c (patch) | |
tree | ddb9d9dc48bf57beaba8a2d412e9d1bb378772c8 | |
parent | dcc5dc757afc9482fb5da664722efb3684011f81 (diff) | |
download | FreeBSD-src-005025984ebefb339291c471dccaef807ec5cf3c.zip FreeBSD-src-005025984ebefb339291c471dccaef807ec5cf3c.tar.gz |
Allow routing to the SCI even if it's not in the list of valid IRQs.
MFC if: no problems
-rw-r--r-- | sys/dev/acpica/acpi_pci_link.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/acpica/acpi_pci_link.c b/sys/dev/acpica/acpi_pci_link.c index cc8ec7b..5558946 100644 --- a/sys/dev/acpica/acpi_pci_link.c +++ b/sys/dev/acpica/acpi_pci_link.c @@ -563,6 +563,16 @@ acpi_pci_link_is_valid_irq(struct acpi_pci_link_entry *link, UINT8 irq) if (irq == 0) return (FALSE); + /* + * Some systems have the initial irq set to the SCI but don't list + * it in the valid IRQs. Add a special case to allow routing to the + * SCI if the system really wants to. This is similar to how + * Windows often stacks all PCI IRQs on the SCI (and this is vital + * on some systems.) + */ + if (irq == AcpiGbl_FADT->SciInt) + return (TRUE); + for (i = 0; i < link->number_of_interrupts; i++) { if (link->interrupts[i] == irq) return (TRUE); |