Changeset 8d2760f in mainline for kernel/arch/sparc64/src/trap


Ignore:
Timestamp:
2008-11-29T20:24:47Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
57e76cb
Parents:
dfd77382
Message:

Add additional members to the irq_t structure so that an interrupt-driven driver
does not need to know how to clear the level interrupt. The z8530 was modified
in this way and is much more generic. The ns16550 driver has also been modified,
but awaits testing. The sparc64 interrupt mapping and dispatch code is now using
the new info and calls the clear-interrupt-routine itself.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/trap/interrupt.c

    rdfd77382 r8d2760f  
    8080                 */
    8181                irq->handler(irq, irq->arg);
     82                /*
     83                 * See if there is a clear-interrupt-routine and call it.
     84                 */
     85                if (irq->cir) {
     86                        irq->cir(irq->cir_arg, irq->inr);
     87                }
    8288                spinlock_unlock(&irq->lock);
    8389        } else if (data0 > config.base) {
     
    99105#ifdef CONFIG_DEBUG
    100106                printf("cpu%u: spurious interrupt (intrcv=%#" PRIx64
    101                         ", data0=%#" PRIx64 ")\n", CPU->id, intrcv, data0);
     107                    ", data0=%#" PRIx64 ")\n", CPU->id, intrcv, data0);
    102108#endif
    103109        }
Note: See TracChangeset for help on using the changeset viewer.