[PATCH 1/5] ARM: gic: Add hooks for architecture specific extensions

Colin Cross ccross at android.com
Mon Jan 24 22:03:42 EST 2011

On Mon, Jan 24, 2011 at 12:51 AM, Santosh Shilimkar
<santosh.shilimkar at ti.com> wrote:
> Few architectures combine the GIC with an external interrupt controller.
> On such systems it may be necessary to update both the GIC registers
> and the external controller's registers to control IRQ behavior.
> This can be addressed in couple of possible methods.
>  1.     Export common GIC routines along with 'struct irq_chip gic_chip'
>        and allow architectures to have custom function by override.
>  2.     Provide architecture specific function pointer hooks
>        within GIC library and leave platforms to add the necessary
>        code as part of these hooks.
> First one might be non-intrusive but have few shortcomings like arch needs
> to have there own custom gic library. Locks used should be common since it
> caters to same IRQs etc. Maintenance point of view also it leads to
> multiple file fixes.
> The second probably is cleaner and portable. It ensures that all the
> common GIC infrastructure is not touched and also provides archs to
> address their specific issue.

This method would work for most of Tegra's needs, although we would
need gic_set_type and gic_ack_irq to have arch extensions as well.
However, it does not allow for irq_retrigger, which can be implemented
on Tegra.

More information about the linux-arm-kernel mailing list