diff options
author | jhb <jhb@FreeBSD.org> | 2005-12-03 21:17:17 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2005-12-03 21:17:17 +0000 |
commit | d57ead8b2dacd4d159d1dc43d5b800abba32b0f2 (patch) | |
tree | 1aaea5adf388a6498a96ee444ff6c580db8f3919 /sys/dev/acpica | |
parent | abad3468e54877fd55bb0060a5b1ab2feb1b4146 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/dev/acpica/acpi_pcib.c | 6 |
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; } |