On 15 November 2011 17:47, Marc Zyngier <marc.zyngier@xxxxxxx> wrote: > The GIC support code is heavily using the fact that hardware > implementations are exposing banked registers. Unfortunately, it > looks like at least one GIC implementation (EXYNOS) offers both > the distributor and the CPU interfaces at different addresses, > depending on the CPU. > > This problem is solved by allowing the distributor and CPU interface > addresses to be per-cpu variables for the platforms that require it. > The EXYNOS code is updated not to mess with the GIC internals while > handling interrupts, and struct gic_chip_data is back to being private. > The DT binding for the gic is updated to allow an optional "cpu-offset" > value, which is used to compute the various base addresses. > > Finally, a new config option (GIC_NON_BANKED) is used to control this > feature, so the overhead is only present on kernels compiled with > support for EXYNOS. > > Tested on Origen (EXYNOS4) and Panda (OMAP4). > > Cc: Kukjin Kim <kgene.kim@xxxxxxxxxxx> > Cc: Rob Herring <robherring2@xxxxxxxxx> > Cc: Will Deacon <will.deacon@xxxxxxx> > Cc: Thomas Abraham <thomas.abraham@xxxxxxxxxx> > Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> > --- > This is a minor update on the previous version, simply adding a > config option so that normal platforms don't have to pay the > price of the get_base() indirection. > > Any comment is welcome, specially on the DT binding update. > > Documentation/devicetree/bindings/arm/gic.txt | 4 + > arch/arm/common/Kconfig | 3 + > arch/arm/common/gic.c | 133 +++++++++++++++++++++---- > arch/arm/include/asm/hardware/gic.h | 24 ++--- > arch/arm/mach-exynos/cpu.c | 16 +--- > arch/arm/mach-exynos/platsmp.c | 28 +----- > arch/arm/plat-s5p/Kconfig | 1 + > 7 files changed, 132 insertions(+), 77 deletions(-) > Tested on Exynos4210 based Origen board with 'cpu-offset = <0x8000>' property in GIC device node and device tree enabled kernel. Thanks for this patch. Tested-by: Thomas Abraham <thomas.abraham@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html