[PATCH v6 00/15] Per SoC descriptor
Marc Zyngier
marc.zyngier at arm.com
Tue Feb 7 19:30:44 EST 2012
This patch series introduces a per-soc descriptor which should, in the
end, contain most of the SoC specific operations.
This first patch series introduces the arm_soc_desc structure, adds
per-soc SMP and CPU hotplug operations, and converts all SMP platform
to this new scheme.
The last three patches consolidate some of the most commonly duplicated
hotplug code and move it to a common location.
Patches against v3.3-rc2. Tested on VExpress (A5 and A15), RealView EB-11MP,
OMAP4 (Panda) and Tegra2 (Harmony).
Changelog:
>From v5:
- Added support for highbank and imx6q
- Added support for new shmobile SMP platform
- Add dummy_cpu_kill, dummy_cpu_disable and cpu_lowpower
>From v4:
- Added an SMP registration interface and moved all SMP structures to
smp.c. The end result is much cleaner.
- Cleaned up patch 2 (left overse from a previous rework)
- NVIDIA/EXYNOS4 naming cleanup.
>From v3:
- Converted all SMP platforms
- Added some cleanup as a last patch
>From v2:
- Split the SMP ops between init and runtime operations in order to
have separate lifetimes for the different structures. This is not
perfect though, as it still allows an __init function to make it to
a runtime structure (all smp_*_ops structures are __initdata in
order to be able to discard them). Thanks to Nico for pointing this
out.
- Use macros to hide the #ifdef-ery in the SoC descriptor init,
courtesy of Arnd.
>From v1:
- Move the SMP ops out of the descriptor, which makes the structure
init a bit cleaner (thanks to Arnd).
- Mark all structures __initdata and keep a copy of the used ones.
- Keep a global pointer for the SMP ops.
Marc Zyngier (15):
ARM: SoC: Introduce per SoC descriptor
ARM: SoC: Add per SoC SMP and CPU hotplug operations
ARM: SoC: convert VExpress/RealView to SoC descriptor
ARM: SoC: convert OMAP4 to SoC descriptor
ARM: SoC: convert Tegra to SoC descriptor
ARM: SoC: convert Exynos4 to SoC descriptor
ARM: SoC: convert MSM SMP to SoC descriptor
ARM: SoC: convert ux500 to SoC descriptor
ARM: SoC: convert shmobile SMP to SoC descriptor
ARM: SoC: convert highbank to SoC descriptor
ARM: SoC: convert imx6q to SoC descriptor
ARM: smp: Make SoC descriptor mandatory for SMP platforms
ARM: hotplug: Introduce dummy_cpu_kill
ARM: hotplug: Introduce dummy_cpu_disable
ARM: hotplug: add cpu_lowpower as an alternative to cpu_die
arch/arm/include/asm/mach/arch.h | 2 +
arch/arm/include/asm/smp.h | 15 ----
arch/arm/include/asm/smp_plat.h | 4 +
arch/arm/include/asm/soc.h | 65 ++++++++++++++++
arch/arm/kernel/setup.c | 8 ++
arch/arm/kernel/smp.c | 99 +++++++++++++++++++++++-
arch/arm/mach-exynos/common.c | 6 ++
arch/arm/mach-exynos/common.h | 8 ++
arch/arm/mach-exynos/hotplug.c | 43 +---------
arch/arm/mach-exynos/mach-armlex4210.c | 1 +
arch/arm/mach-exynos/mach-nuri.c | 1 +
arch/arm/mach-exynos/mach-origen.c | 1 +
arch/arm/mach-exynos/mach-smdk4x12.c | 2 +
arch/arm/mach-exynos/mach-smdkv310.c | 2 +
arch/arm/mach-exynos/mach-universal_c210.c | 1 +
arch/arm/mach-exynos/platsmp.c | 25 +++++-
arch/arm/mach-highbank/core.h | 6 ++
arch/arm/mach-highbank/highbank.c | 7 ++
arch/arm/mach-highbank/hotplug.c | 16 +----
arch/arm/mach-highbank/platsmp.c | 24 +++++-
arch/arm/mach-imx/hotplug.c | 16 +----
arch/arm/mach-imx/mach-imx6q.c | 8 ++
arch/arm/mach-imx/platsmp.c | 25 +++++-
arch/arm/mach-msm/Makefile | 2 +-
arch/arm/mach-msm/board-msm8960.c | 3 +
arch/arm/mach-msm/board-msm8x60.c | 9 ++
arch/arm/mach-msm/core.c | 17 ++++
arch/arm/mach-msm/core.h | 7 ++
arch/arm/mach-msm/hotplug.c | 38 +--------
arch/arm/mach-msm/platsmp.c | 24 +++++-
arch/arm/mach-omap2/board-4430sdp.c | 1 +
arch/arm/mach-omap2/board-omap4panda.c | 1 +
arch/arm/mach-omap2/common.h | 11 +++
arch/arm/mach-omap2/omap-hotplug.c | 16 +----
arch/arm/mach-omap2/omap-smp.c | 25 +++++-
arch/arm/mach-omap2/omap4-common.c | 7 ++
arch/arm/mach-realview/core.c | 7 ++
arch/arm/mach-realview/core.h | 7 ++
arch/arm/mach-realview/hotplug.c | 41 +---------
arch/arm/mach-realview/platsmp.c | 25 +++++-
arch/arm/mach-realview/realview_eb.c | 1 +
arch/arm/mach-realview/realview_pb1176.c | 1 +
arch/arm/mach-realview/realview_pb11mp.c | 1 +
arch/arm/mach-realview/realview_pba8.c | 1 +
arch/arm/mach-realview/realview_pbx.c | 1 +
arch/arm/mach-shmobile/Makefile | 2 +-
arch/arm/mach-shmobile/board-ag5evm.c | 1 +
arch/arm/mach-shmobile/board-kota2.c | 1 +
arch/arm/mach-shmobile/board-marzen.c | 1 +
arch/arm/mach-shmobile/hotplug.c | 13 ++-
arch/arm/mach-shmobile/include/mach/common.h | 14 +---
arch/arm/mach-shmobile/include/mach/r8a7779.h | 6 ++
arch/arm/mach-shmobile/include/mach/sh73a0.h | 6 ++
arch/arm/mach-shmobile/platsmp.c | 97 -----------------------
arch/arm/mach-shmobile/setup-r8a7779.c | 6 ++
arch/arm/mach-shmobile/setup-sh73a0.c | 6 ++
arch/arm/mach-shmobile/smp-r8a7779.c | 40 +++++++++-
arch/arm/mach-shmobile/smp-sh73a0.c | 41 +++++++++-
arch/arm/mach-tegra/board-dt-tegra20.c | 2 +
arch/arm/mach-tegra/board-dt-tegra30.c | 1 +
arch/arm/mach-tegra/board-harmony.c | 2 +
arch/arm/mach-tegra/board-paz00.c | 2 +
arch/arm/mach-tegra/board-seaboard.c | 4 +
arch/arm/mach-tegra/board-trimslice.c | 2 +
arch/arm/mach-tegra/common.c | 8 ++
arch/arm/mach-tegra/common.h | 9 ++
arch/arm/mach-tegra/hotplug.c | 67 ++--------------
arch/arm/mach-tegra/platsmp.c | 27 ++++++-
arch/arm/mach-ux500/board-mop500.c | 3 +
arch/arm/mach-ux500/board-u5500.c | 1 +
arch/arm/mach-ux500/cpu.c | 7 ++-
arch/arm/mach-ux500/hotplug.c | 30 +------
arch/arm/mach-ux500/include/mach/setup.h | 7 ++
arch/arm/mach-ux500/platsmp.c | 23 +++++-
arch/arm/mach-vexpress/core.h | 8 ++
arch/arm/mach-vexpress/hotplug.c | 41 +---------
arch/arm/mach-vexpress/platsmp.c | 26 +++++-
arch/arm/mach-vexpress/v2m.c | 9 ++
arch/arm/plat-mxc/include/mach/common.h | 8 ++
arch/arm/plat-versatile/include/plat/platsmp.h | 14 ++++
arch/arm/plat-versatile/platsmp.c | 4 +-
81 files changed, 711 insertions(+), 459 deletions(-)
create mode 100644 arch/arm/include/asm/soc.h
create mode 100644 arch/arm/mach-msm/core.c
create mode 100644 arch/arm/mach-msm/core.h
delete mode 100644 arch/arm/mach-shmobile/platsmp.c
create mode 100644 arch/arm/mach-tegra/common.h
create mode 100644 arch/arm/plat-versatile/include/plat/platsmp.h
--
1.7.3.4
More information about the linux-arm-kernel
mailing list