From d57ead8b2dacd4d159d1dc43d5b800abba32b0f2 Mon Sep 17 00:00:00 2001 From: jhb Date: Sat, 3 Dec 2005 21:17:17 +0000 Subject: 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 --- sys/dev/acpica/acpi_pcib.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'sys/dev/acpica/acpi_pcib.c') 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; } -- cgit v1.1