On Wed, May 10, 2006 at 10:41:16AM +0800, Mark.Zhan wrote: > After looking into the changeset ac58afdfac792c0583af30dbd9eae53e24c78b, > I find what I want to do has been done by you:-) I don't have this changeset in my tree; I assume you're refering to the patch titled "[MIPS] Rewrite all the assembler interrupt handlers to C". > For those MIPS32 boards which only use IRQ_CPU, I think, we can provide > a default plat_irq_dispatch() implemention, maybe like this: > > asmlinkage plat_irq_dispatch(struct pt_regs *regs) > { > unsigned int pending = read_c0_status() & read_c0_cause(); > int irq; > > irq = ffs(pending >> 8) - 1; > return do_IRQ(irq, regs); > } > > I this it will clean up more codes...... There are only few such extremly simple platforms in the tree. The purpose of me rewriting all the handlers to assembler was that many of the handlers has bugs that would not exist in a high level language and much of the code was not scheduled very well - something which gcc does pretty well these days. Ralf