ARM: 6777/1: gic: Add hooks for architecture specific extensions
authorSantosh Shilimkar <santosh.shilimkar@ti.com>
Wed, 2 Mar 2011 07:03:22 +0000 (08:03 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 9 Mar 2011 00:18:47 +0000 (00:18 +0000)
commitd7ed36a4ea84e3a850f9932e2058ceef987d1acd
treeb4e8daf31024698e1b6be9ff6f8810be776f4c5c
parent4bdb157749a0da065e532f2f46040c178075b06f
ARM: 6777/1: gic: Add hooks for architecture specific extensions

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.

Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Colin Cross <ccross@android.com>
Tested-by: Colin Cross <ccross@android.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/common/gic.c
arch/arm/include/asm/hardware/gic.h