Module Name:    src
Committed By:   chs
Date:           Wed Oct  3 17:04:25 UTC 2012

Modified Files:
        src/sys/arch/x86/x86: mpacpi.c

Log Message:
as a workaround for PR 47016, call ioapic_reenable() at the end of
ACPI interrupt routing to fix the settings for the SCI interrupt.
the problem is that after my recent changes, the SCI handler is
installed before the MADT info is parsed, so we don't know what
polarity it should have.  the real fix for this will be to rearrange
the ACPI initialization so that everything is done in a more sensible
order, but that will take some more time.


To generate a diff of this commit:
cvs rdiff -u -r1.95 -r1.96 src/sys/arch/x86/x86/mpacpi.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/x86/x86/mpacpi.c
diff -u src/sys/arch/x86/x86/mpacpi.c:1.95 src/sys/arch/x86/x86/mpacpi.c:1.96
--- src/sys/arch/x86/x86/mpacpi.c:1.95	Sun Sep 23 00:31:05 2012
+++ src/sys/arch/x86/x86/mpacpi.c	Wed Oct  3 17:04:25 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: mpacpi.c,v 1.95 2012/09/23 00:31:05 chs Exp $	*/
+/*	$NetBSD: mpacpi.c,v 1.96 2012/10/03 17:04:25 chs Exp $	*/
 
 /*
  * Copyright (c) 2003 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mpacpi.c,v 1.95 2012/09/23 00:31:05 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mpacpi.c,v 1.96 2012/10/03 17:04:25 chs Exp $");
 
 #include "acpica.h"
 #include "opt_acpi.h"
@@ -942,6 +942,13 @@ mpacpi_find_interrupts(void *self)
 		printf("mpacpi: %d PCI busses\n", mpacpi_npci);
 #endif
 	mpacpi_config_irouting(acpi);
+#if NIOAPIC > 0
+	/*
+	 * XXX fix up the SCI interrupt polarity.
+	 * it's installed before we have parsed the MADT.
+	 */
+	ioapic_reenable();
+#endif
 	if (mp_verbose)
 		for (i = 0; i < mp_nintr; i++)
 			mpacpi_print_intr(&mp_intrs[i]);

Reply via email to