PERFORCE change 145340 for review
Oleksandr Tymoshenko
gonzo at FreeBSD.org
Wed Jul 16 19:01:49 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=145340
Change 145340 by gonzo at gonzo_jeeves on 2008/07/16 19:01:41
- pass one more argument to intr_event_create
- use intr_event_handle to handle interrupts instead of custom
implementation.
Affected files ...
.. //depot/projects/mips2/src/sys/mips/adm5120/obio.c#3 edit
Differences ...
==== //depot/projects/mips2/src/sys/mips/adm5120/obio.c#3 (text+ko) ====
@@ -320,7 +320,7 @@
event = sc->sc_eventstab[irq];
if (event == NULL) {
- error = intr_event_create(&event, (void *)irq, 0,
+ error = intr_event_create(&event, (void *)irq, 0, irq,
(mask_fn)mips_mask_irq, (mask_fn)mips_unmask_irq,
NULL, NULL, "obio intr%d:", irq);
@@ -379,9 +379,8 @@
{
struct obio_softc *sc = arg;
struct intr_event *event;
- struct intr_handler *ih;
uint32_t irqstat;
- int irq, thread = 0;
+ int irq;
irqstat = REG_READ(ICU_FIQ_STATUS_REG);
irqstat |= REG_READ(ICU_STATUS_REG);
@@ -390,20 +389,12 @@
while (irqstat != 0) {
if ((irqstat & 1) == 1) {
event = sc->sc_eventstab[irq];
- if (event && !TAILQ_EMPTY(&event->ie_handlers)) {
- /* Execute fast handlers. */
- TAILQ_FOREACH(ih, &event->ie_handlers,
- ih_next) {
- if (ih->ih_filter == NULL)
- thread = 1;
- else
- ih->ih_filter(ih->ih_argument);
- }
- }
+ if (!event || TAILQ_EMPTY(&event->ie_handlers))
+ continue;
- /* Schedule thread if needed. */
- if (thread)
- intr_event_schedule_thread(event);
+ /* TODO: pass frame as an argument*/
+ /* TODO: log stray interrupt */
+ intr_event_handle(event, NULL);
}
irq++;
More information about the p4-projects
mailing list