summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica
diff options
context:
space:
mode:
authornjl <njl@FreeBSD.org>2004-09-25 06:15:56 +0000
committernjl <njl@FreeBSD.org>2004-09-25 06:15:56 +0000
commit005025984ebefb339291c471dccaef807ec5cf3c (patch)
treeddb9d9dc48bf57beaba8a2d412e9d1bb378772c8 /sys/dev/acpica
parentdcc5dc757afc9482fb5da664722efb3684011f81 (diff)
downloadFreeBSD-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
Diffstat (limited to 'sys/dev/acpica')
-rw-r--r--sys/dev/acpica/acpi_pci_link.c10
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);
OpenPOWER on IntegriCloud