summaryrefslogtreecommitdiffstats
path: root/sys/i386/acpica
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2004-05-04 21:04:24 +0000
committerjhb <jhb@FreeBSD.org>2004-05-04 21:04:24 +0000
commita11e3152f3bc324212fd54cab137aa464b64951d (patch)
tree5c179cb695598710222f80599ad84d3ebe2ef029 /sys/i386/acpica
parent415131cd6db5461be3f495e59f9e00d283adb995 (diff)
downloadFreeBSD-src-a11e3152f3bc324212fd54cab137aa464b64951d.zip
FreeBSD-src-a11e3152f3bc324212fd54cab137aa464b64951d.tar.gz
Have ACPI use BUS_CONFIG_INTR() to force the SCI to level trigger and
active low polarity when using the PIC interrupt model. This should fix broken SCI interrupts on machines when not using the APIC where the BIOS doesn't program the ELCR to level trigger for the ACPI SCI. Requested by: njl
Diffstat (limited to 'sys/i386/acpica')
-rw-r--r--sys/i386/acpica/acpi_machdep.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/i386/acpica/acpi_machdep.c b/sys/i386/acpica/acpi_machdep.c
index b6517ba..9c59b3a 100644
--- a/sys/i386/acpica/acpi_machdep.c
+++ b/sys/i386/acpica/acpi_machdep.c
@@ -328,7 +328,10 @@ acpi_machdep_init(device_t dev)
acpi_install_wakeup_handler(sc);
- if (intr_model != ACPI_INTR_PIC)
+ if (intr_model == ACPI_INTR_PIC)
+ BUS_CONFIG_INTR(dev, AcpiGbl_FADT->SciInt, INTR_TRIGGER_LEVEL,
+ INTR_POLARITY_LOW);
+ else
acpi_SetIntrModel(intr_model);
SYSCTL_ADD_UINT(&sc->acpi_sysctl_ctx,
OpenPOWER on IntegriCloud