ARM: SMP: Refactor Kconfig to be more maintainable
authorDave Martin <dave.martin@linaro.org>
Wed, 7 Dec 2011 15:38:04 +0000 (15:38 +0000)
committerDave Martin <dave.martin@linaro.org>
Mon, 19 Dec 2011 13:47:39 +0000 (13:47 +0000)
Making SMP depend on (huge list of MACH_ and ARCH_ configs) is
bothersome to maintain and likely to lead to merge conflicts.

This patch moves the knowledge of which platforms are SMP-capable
to the individual machines.  To enable this, a new HAVE_SMP config
option is introduced to allow machines to indicate that they can
run in a SMP configuration.

Signed-off-by: Dave Martin <dave.martin@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
        (for nomadik, ux500)
Acked-by: Tony Lindgren <tony@atomide.com>
        (for omap)
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
        (for exynos)
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
        (for imx)
Acked-by: Olof Johansson <olof@lixom.net>
        (for tegra)

arch/arm/Kconfig
arch/arm/mach-exynos/Kconfig
arch/arm/mach-imx/Kconfig
arch/arm/mach-msm/Kconfig
arch/arm/mach-omap2/Kconfig
arch/arm/mach-realview/Kconfig
arch/arm/mach-vexpress/Kconfig

index 16a4b9e..eca82f9 100644 (file)
@@ -344,6 +344,7 @@ config ARCH_HIGHBANK
        select CPU_V7
        select GENERIC_CLOCKEVENTS
        select HAVE_ARM_SCU
+       select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
        select USE_OF
        help
@@ -636,6 +637,7 @@ config ARCH_TEGRA
        select GENERIC_GPIO
        select HAVE_CLK
        select HAVE_SCHED_CLOCK
+       select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
        select ARCH_HAS_CPUFREQ
        help
@@ -706,6 +708,7 @@ config ARCH_SHMOBILE
        select HAVE_CLK
        select CLKDEV_LOOKUP
        select HAVE_MACH_CLKDEV
+       select HAVE_SMP
        select GENERIC_CLOCKEVENTS
        select MIGHT_HAVE_CACHE_L2X0
        select NO_IOPORT
@@ -909,6 +912,7 @@ config ARCH_U8500
        select CLKDEV_LOOKUP
        select ARCH_REQUIRE_GPIOLIB
        select ARCH_HAS_CPUFREQ
+       select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
        help
          Support for ST-Ericsson's Ux500 architecture
@@ -1430,14 +1434,20 @@ menu "Kernel Features"
 
 source "kernel/time/Kconfig"
 
+config HAVE_SMP
+       bool
+       help
+         This option should be selected by machines which have an SMP-
+         capable CPU.
+
+         The only effect of this option is to make the SMP-related
+         options available to the user for configuration.
+
 config SMP
        bool "Symmetric Multi-Processing"
        depends on CPU_V6K || CPU_V7
        depends on GENERIC_CLOCKEVENTS
-       depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \
-                MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
-                ARCH_EXYNOS4 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || \
-                ARCH_MSM_SCORPIONMP || ARCH_SHMOBILE || ARCH_HIGHBANK || SOC_IMX6Q
+       depends on HAVE_SMP
        depends on MMU
        select USE_GENERIC_SMP_HELPERS
        select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
index 7f2347b..e1efbca 100644 (file)
@@ -17,6 +17,7 @@ choice
 
 config ARCH_EXYNOS4
        bool "SAMSUNG EXYNOS4"
+       select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
        help
          Samsung EXYNOS4 SoCs based systems
index 5f7f9c2..29a3d61 100644 (file)
@@ -615,6 +615,7 @@ config SOC_IMX6Q
        select HAVE_IMX_GPC
        select HAVE_IMX_MMDC
        select HAVE_IMX_SRC
+       select HAVE_SMP
        select USE_OF
 
        help
index ebde97f..e6beaff 100644 (file)
@@ -67,6 +67,7 @@ config MSM_SOC_REV_A
        bool
 config  ARCH_MSM_SCORPIONMP
        bool
+       select HAVE_SMP
 
 config  ARCH_MSM_ARM11
        bool
index c841578..bb1b670 100644 (file)
@@ -43,6 +43,7 @@ config ARCH_OMAP4
        depends on ARCH_OMAP2PLUS
        select CPU_V7
        select ARM_GIC
+       select HAVE_SMP
        select LOCAL_TIMERS if SMP
        select MIGHT_HAVE_CACHE_L2X0
        select PL310_ERRATA_588369
index 3dd620f..c593be4 100644 (file)
@@ -12,6 +12,7 @@ config REALVIEW_EB_A9MP
        bool "Support Multicore Cortex-A9 Tile"
        depends on MACH_REALVIEW_EB
        select CPU_V7
+       select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
        help
          Enable support for the Cortex-A9MPCore tile fitted to the
@@ -22,6 +23,7 @@ config REALVIEW_EB_ARM11MP
        depends on MACH_REALVIEW_EB
        select CPU_V6K
        select ARCH_HAS_BARRIERS if SMP
+       select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
        help
          Enable support for the ARM11MPCore tile fitted to the Realview(R)
@@ -41,6 +43,7 @@ config MACH_REALVIEW_PB11MP
        select CPU_V6K
        select ARM_GIC
        select HAVE_PATA_PLATFORM
+       select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
        select ARCH_HAS_BARRIERS if SMP
        help
@@ -82,6 +85,7 @@ config MACH_REALVIEW_PBX
        bool "Support RealView(R) Platform Baseboard Explore"
        select ARM_GIC
        select HAVE_PATA_PLATFORM
+       select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
        select ARCH_SPARSEMEM_ENABLE if CPU_V7 && !REALVIEW_HIGH_PHYS_OFFSET
        select ZONE_DMA if SPARSEMEM
index a8aefc8..9b3d0fb 100644 (file)
@@ -8,6 +8,7 @@ config ARCH_VEXPRESS_CA9X4
        select ARM_ERRATA_720789
        select ARM_ERRATA_751472
        select ARM_ERRATA_753970
+       select HAVE_SMP
        select MIGHT_HAVE_CACHE_L2X0
 
 endmenu