Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/x86/acpi yet more fixes for PR 47648 / PR 47016:
details: https://anonhg.NetBSD.org/src/rev/00b7908e6b09
branches: trunk
changeset: 785829:00b7908e6b09
user: chs <chs%NetBSD.org@localhost>
date: Sun Mar 31 19:34:24 2013 +0000
description:
yet more fixes for PR 47648 / PR 47016:
when using a temporary mp_intr_map, initialize the "flags" field
as well as "redir" since apic_set_redir() uses both. fix how
the flags field is change when applying an override, the trigger
and polarity sub-fields aren't just one bit like they are in redir.
diffstat:
sys/arch/x86/acpi/acpi_machdep.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diffs (41 lines):
diff -r fc9e2c7dfdd0 -r 00b7908e6b09 sys/arch/x86/acpi/acpi_machdep.c
--- a/sys/arch/x86/acpi/acpi_machdep.c Sun Mar 31 16:47:16 2013 +0000
+++ b/sys/arch/x86/acpi/acpi_machdep.c Sun Mar 31 19:34:24 2013 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_machdep.c,v 1.5 2013/03/25 01:30:37 chs Exp $ */
+/* $NetBSD: acpi_machdep.c,v 1.6 2013/03/31 19:34:24 chs Exp $ */
/*
* Copyright 2001 Wasabi Systems, Inc.
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_machdep.c,v 1.5 2013/03/25 01:30:37 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_machdep.c,v 1.6 2013/03/31 19:34:24 chs Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -163,12 +163,14 @@
if (polarity == ACPI_MADT_POLARITY_ACTIVE_HIGH ||
(!sci && polarity == ACPI_MADT_POLARITY_CONFORMS)) {
mpflags &= ~MPS_INTPO_ACTLO;
+ mpflags |= MPS_INTPO_ACTHI;
redir &= ~IOAPIC_REDLO_ACTLO;
}
if (trigger == ACPI_MADT_TRIGGER_EDGE ||
(!sci && trigger == ACPI_MADT_TRIGGER_CONFORMS)) {
type = IST_EDGE;
mpflags &= ~(MPS_INTTR_LEVEL << 2);
+ mpflags |= (MPS_INTTR_EDGE << 2);
redir &= ~IOAPIC_REDLO_LEVEL;
}
}
@@ -200,6 +202,7 @@
mipp = &sc->sc_pins[pin].ip_map;
*mipp = &tmpmap;
tmpmap.redir = redir;
+ tmpmap.flags = mpflags;
}
} else
#endif
Home |
Main Index |
Thread Index |
Old Index