summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica/acpi_pcib.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2005-12-03 21:17:17 +0000
committerjhb <jhb@FreeBSD.org>2005-12-03 21:17:17 +0000
commitd57ead8b2dacd4d159d1dc43d5b800abba32b0f2 (patch)
tree1aaea5adf388a6498a96ee444ff6c580db8f3919 /sys/dev/acpica/acpi_pcib.c
parentabad3468e54877fd55bb0060a5b1ab2feb1b4146 (diff)
downloadFreeBSD-src-d57ead8b2dacd4d159d1dc43d5b800abba32b0f2.zip
FreeBSD-src-d57ead8b2dacd4d159d1dc43d5b800abba32b0f2.tar.gz
Force any hardwire-routed interrupts to level trigger and active low
polarity. Some machines route PCI IRQs to an ISA IRQ but fail to include an interrupt override entry to set the polarity and trigger of the given ISA IRQ in their MADT table. PR: usb/74989 Reported by: Julien Gabel jpeg at thilelli dot net MFC after: 1 week
Diffstat (limited to 'sys/dev/acpica/acpi_pcib.c')
-rw-r--r--sys/dev/acpica/acpi_pcib.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/acpica/acpi_pcib.c b/sys/dev/acpica/acpi_pcib.c
index 8d673a1..c5b4bcb 100644
--- a/sys/dev/acpica/acpi_pcib.c
+++ b/sys/dev/acpica/acpi_pcib.c
@@ -252,9 +252,11 @@ acpi_pcib_route_interrupt(device_t pcib, device_t dev, int pin,
if (bootverbose)
device_printf(pcib, "slot %d INT%c hardwired to IRQ %d\n",
pci_get_slot(dev), 'A' + pin, prt->SourceIndex);
- if (prt->SourceIndex)
+ if (prt->SourceIndex) {
interrupt = prt->SourceIndex;
- else
+ BUS_CONFIG_INTR(dev, interrupt, INTR_TRIGGER_LEVEL,
+ INTR_POLARITY_LOW);
+ } else
device_printf(pcib, "error: invalid hard-wired IRQ of 0\n");
goto out;
}
OpenPOWER on IntegriCloud