[PATCH 03/14] at91: factorize at91 interrupts init to soc

Andrew Victor avictor.za at gmail.com
Tue Apr 26 18:04:53 EDT 2011


hi,

>> All the board files call at91_init_interrupts with a NULL priority.  Why not just
>> remove the parameter entirely, make MACHINE_START.init_irq = at91_init_interrupts,
>> and then remove all the {board}_init_irq functions.

> keep it is important as the irq priority can be board specific as we have
> nearly no fifo on at91
> agreed to too have a a generic function

As of this patch:
  http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=commit;h=e58aa3d2d0cc01ad8d6f7f640a0670433f794922
interrupt priority / nesting were disabled in the core IRQ code.
So even though we configure the AT91's AIC controller for priority
levels, it won't as make much difference as before.  Only if you have
multiple pending interrupts, will the one with the highest priority be
serviced first.

Also, you might want to look into changing the AIC's handler from
handle_level_irq() to the handle_fasteoi_irq().
Then the irq_finish() can be removed from the low-level ARM
asm_do_IRQ() handler.


Regards,
  Andrew Victor



More information about the linux-arm-kernel mailing list