NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/38939: acpi/apic code ignores interrupt active high/low



>Number:         38939
>Category:       kern
>Synopsis:       acpi/apic code ignores interrupt active high/low
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jun 10 22:10:00 +0000 2008
>Originator:     Andrew Doran
>Release:        4.99.64
>Organization:
The NetBSD Project
>Environment:
x86 Shuttle SN45 v1, nforce2 chipset 
>Description:
As description. Interrupts routed using ACPI don't seem to be marked
active low, even if the ACPI table says they are. On this particular 
board ACPI says pin 18 is active low. Forcing it so in acpi_set_redir() 
makes the corresponding device usable.

--- ioapic.c    11 May 2008 15:59:51 -0000      1.36
+++ ioapic.c    10 Jun 2008 22:03:42 -0000
@@ -441,6 +441,8 @@ apic_set_redir(struct ioapic_softc *sc,
                                redlo &= ~IOAPIC_REDLO_ACTLO;
                }
        }
+       if (pin == 18)
+               redlo |= IOAPIC_REDLO_ACTLO;
        ioapic_write(sc, IOAPIC_REDHI(pin), redhi);
        ioapic_write(sc, IOAPIC_REDLO(pin), redlo);
        if (mp_verbose)

>How-To-Repeat:
Try to use this particular system.
>Fix:
Change the code to pay attention to what the ACPI says in this instance.




Home | Main Index | Thread Index | Old Index