[PATCH 0/5] ARM: GIC: cleanup
Russell King - ARM Linux
linux at arm.linux.org.uk
Sun Dec 5 06:33:11 EST 2010
This patch series cleans up the GIC code, consolidating some of the
per-platform practices into the common GIC code.
One notable change is to the initialization methods - we used to
require platforms to pass in the address of the per-CPU interfaces
despite them always being identical between all cores. This was
nonsense, as even in the extremely unlikely event that they were
different, we aren't storing them in a per-CPU manner.
The GIC initialization methods are now simpler: one call to gic_init()
from the boot CPU, and a call to gic_secondary_init() as each
secondary CPU starts - and no need for platforms to keep track of
the address anymore.
One question remains on this: on platforms where there are more than
one GIC, do these have separate CPU interfaces as well?
We also consolidate gic_cpu_base_addr to save platforms using that -
but only for the first GIC, and therefore we can have a common
get_irqnr_preamble assembler macro for platforms which make use of
this.
Lastly, we move the GIC data to __read_mostly - and when we have
support for this feature, we benefit from avoiding potential cache
line ping-pongs between cores for data so marked.
arch/arm/common/gic.c | 59 +++++++++++++-------
arch/arm/include/asm/hardware/entry-macro-gic.S | 7 +++
arch/arm/include/asm/hardware/gic.h | 6 ++-
arch/arm/mach-cns3xxx/core.c | 7 +--
arch/arm/mach-cns3xxx/core.h | 1 -
arch/arm/mach-cns3xxx/include/mach/entry-macro.S | 5 --
arch/arm/mach-msm/board-msm8x60.c | 7 +--
arch/arm/mach-omap2/include/mach/entry-macro.S | 1 +
arch/arm/mach-omap2/include/mach/omap4-common.h | 1 -
arch/arm/mach-omap2/omap-smp.c | 2 +-
arch/arm/mach-omap2/omap4-common.c | 11 ++--
arch/arm/mach-realview/core.c | 3 -
arch/arm/mach-realview/core.h | 1 -
arch/arm/mach-realview/include/mach/entry-macro.S | 5 --
arch/arm/mach-realview/platsmp.c | 2 +-
arch/arm/mach-realview/realview_eb.c | 14 ++---
arch/arm/mach-realview/realview_pb1176.c | 11 ++--
arch/arm/mach-realview/realview_pb11mp.c | 10 ++--
arch/arm/mach-realview/realview_pba8.c | 6 +-
arch/arm/mach-realview/realview_pbx.c | 13 ++---
arch/arm/mach-s5pv310/cpu.c | 6 +--
arch/arm/mach-s5pv310/include/mach/smp.h | 2 -
arch/arm/mach-s5pv310/platsmp.c | 2 +-
arch/arm/mach-tegra/include/mach/entry-macro.S | 2 +-
arch/arm/mach-tegra/irq.c | 4 +-
arch/arm/mach-tegra/platsmp.c | 2 +-
arch/arm/mach-ux500/cpu.c | 4 +-
arch/arm/mach-ux500/include/mach/entry-macro.S | 1 +
arch/arm/mach-ux500/platsmp.c | 2 +-
arch/arm/mach-vexpress/core.h | 2 -
arch/arm/mach-vexpress/ct-ca9x4.c | 7 +--
arch/arm/mach-vexpress/include/mach/entry-macro.S | 5 --
arch/arm/mach-vexpress/platsmp.c | 2 +-
33 files changed, 100 insertions(+), 113 deletions(-)
More information about the linux-arm-kernel
mailing list