summaryrefslogtreecommitdiffstats
path: root/sys/amd64/isa
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2005-01-21 06:01:20 +0000
committerpeter <peter@FreeBSD.org>2005-01-21 06:01:20 +0000
commit8b5a41aeac62532507fcb39413b9f21bf9ba0166 (patch)
treefa0a4aa072559100211bd1335297a0fc44a50865 /sys/amd64/isa
parent63c4d6030676332d662005c8750ef471df3e8bfe (diff)
downloadFreeBSD-src-8b5a41aeac62532507fcb39413b9f21bf9ba0166.zip
FreeBSD-src-8b5a41aeac62532507fcb39413b9f21bf9ba0166.tar.gz
JumboMFi386: use bitmapped IPI handler. Update elcr and default mptable
config handler. Tidy up various local apic initialization.
Diffstat (limited to 'sys/amd64/isa')
-rw-r--r--sys/amd64/isa/atpic.c8
-rw-r--r--sys/amd64/isa/elcr.c6
2 files changed, 4 insertions, 10 deletions
diff --git a/sys/amd64/isa/atpic.c b/sys/amd64/isa/atpic.c
index 032a803..f6d3fb1 100644
--- a/sys/amd64/isa/atpic.c
+++ b/sys/amd64/isa/atpic.c
@@ -95,7 +95,6 @@ __FBSDID("$FreeBSD$");
static void atpic_init(void *dummy);
unsigned int imen; /* XXX */
-static int using_elcr;
inthand_t
IDTVEC(atpic_intr0), IDTVEC(atpic_intr1), IDTVEC(atpic_intr2),
@@ -293,7 +292,7 @@ atpic_resume(struct intsrc *isrc)
if (ai->at_irq == 0) {
i8259_init(ap, ap == &atpics[SLAVE]);
- if (ap == &atpics[SLAVE] && using_elcr)
+ if (ap == &atpics[SLAVE] && elcr_found)
elcr_resume();
}
}
@@ -337,7 +336,7 @@ atpic_config_intr(struct intsrc *isrc, enum intr_trigger trig,
vector);
return (EINVAL);
}
- if (!using_elcr) {
+ if (!elcr_found) {
if (bootverbose)
printf("atpic: No ELCR to configure IRQ%u as %s\n",
vector, trig == INTR_TRIGGER_EDGE ? "edge/high" :
@@ -428,8 +427,7 @@ atpic_startup(void)
* assume level trigger for any interrupt that we aren't sure is
* edge triggered.
*/
- if (elcr_probe() == 0) {
- using_elcr = 1;
+ if (elcr_found) {
for (i = 0, ai = atintrs; i < NUM_ISA_IRQS; i++, ai++)
ai->at_trigger = elcr_read_trigger(i);
} else {
diff --git a/sys/amd64/isa/elcr.c b/sys/amd64/isa/elcr.c
index 2cfcfa4..266d783 100644
--- a/sys/amd64/isa/elcr.c
+++ b/sys/amd64/isa/elcr.c
@@ -57,9 +57,7 @@ __FBSDID("$FreeBSD$");
#define ELCR_MASK(irq) (1 << (irq))
static int elcr_status;
-#ifdef INVARIANTS
-static int elcr_found;
-#endif
+int elcr_found;
/*
* Check to see if we have what looks like a valid ELCR. We do this by
@@ -88,9 +86,7 @@ elcr_probe(void)
}
if (resource_disabled("elcr", 0))
return (ENXIO);
-#ifdef INVARIANTS
elcr_found = 1;
-#endif
return (0);
}
OpenPOWER on IntegriCloud