aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorDave Martin <dave.martin@linaro.org>2011-12-07 10:38:04 -0500
committerDave Martin <dave.martin@linaro.org>2011-12-19 08:47:39 -0500
commit3b55658aefbf82646a246f3c8a14b9b8a24198a9 (patch)
tree9d878552336a55c8eff7745e43cc6e5108cf6dce /arch/arm
parentce5ea9f3767e8589521319cae2eb6e05c52bd056 (diff)
ARM: SMP: Refactor Kconfig to be more maintainable
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)
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/Kconfig18
-rw-r--r--arch/arm/mach-exynos/Kconfig1
-rw-r--r--arch/arm/mach-imx/Kconfig1
-rw-r--r--arch/arm/mach-msm/Kconfig1
-rw-r--r--arch/arm/mach-omap2/Kconfig1
-rw-r--r--arch/arm/mach-realview/Kconfig4
-rw-r--r--arch/arm/mach-vexpress/Kconfig1
7 files changed, 23 insertions, 4 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 16a4b9e689b..eca82f9a717 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -344,6 +344,7 @@ config ARCH_HIGHBANK
344 select CPU_V7 344 select CPU_V7
345 select GENERIC_CLOCKEVENTS 345 select GENERIC_CLOCKEVENTS
346 select HAVE_ARM_SCU 346 select HAVE_ARM_SCU
347 select HAVE_SMP
347 select MIGHT_HAVE_CACHE_L2X0 348 select MIGHT_HAVE_CACHE_L2X0
348 select USE_OF 349 select USE_OF
349 help 350 help
@@ -636,6 +637,7 @@ config ARCH_TEGRA
636 select GENERIC_GPIO 637 select GENERIC_GPIO
637 select HAVE_CLK 638 select HAVE_CLK
638 select HAVE_SCHED_CLOCK 639 select HAVE_SCHED_CLOCK
640 select HAVE_SMP
639 select MIGHT_HAVE_CACHE_L2X0 641 select MIGHT_HAVE_CACHE_L2X0
640 select ARCH_HAS_CPUFREQ 642 select ARCH_HAS_CPUFREQ
641 help 643 help
@@ -706,6 +708,7 @@ config ARCH_SHMOBILE
706 select HAVE_CLK 708 select HAVE_CLK
707 select CLKDEV_LOOKUP 709 select CLKDEV_LOOKUP
708 select HAVE_MACH_CLKDEV 710 select HAVE_MACH_CLKDEV
711 select HAVE_SMP
709 select GENERIC_CLOCKEVENTS 712 select GENERIC_CLOCKEVENTS
710 select MIGHT_HAVE_CACHE_L2X0 713 select MIGHT_HAVE_CACHE_L2X0
711 select NO_IOPORT 714 select NO_IOPORT
@@ -909,6 +912,7 @@ config ARCH_U8500
909 select CLKDEV_LOOKUP 912 select CLKDEV_LOOKUP
910 select ARCH_REQUIRE_GPIOLIB 913 select ARCH_REQUIRE_GPIOLIB
911 select ARCH_HAS_CPUFREQ 914 select ARCH_HAS_CPUFREQ
915 select HAVE_SMP
912 select MIGHT_HAVE_CACHE_L2X0 916 select MIGHT_HAVE_CACHE_L2X0
913 help 917 help
914 Support for ST-Ericsson's Ux500 architecture 918 Support for ST-Ericsson's Ux500 architecture
@@ -1430,14 +1434,20 @@ menu "Kernel Features"
1430 1434
1431source "kernel/time/Kconfig" 1435source "kernel/time/Kconfig"
1432 1436
1437config HAVE_SMP
1438 bool
1439 help
1440 This option should be selected by machines which have an SMP-
1441 capable CPU.
1442
1443 The only effect of this option is to make the SMP-related
1444 options available to the user for configuration.
1445
1433config SMP 1446config SMP
1434 bool "Symmetric Multi-Processing" 1447 bool "Symmetric Multi-Processing"
1435 depends on CPU_V6K || CPU_V7 1448 depends on CPU_V6K || CPU_V7
1436 depends on GENERIC_CLOCKEVENTS 1449 depends on GENERIC_CLOCKEVENTS
1437 depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \ 1450 depends on HAVE_SMP
1438 MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \
1439 ARCH_EXYNOS4 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || \
1440 ARCH_MSM_SCORPIONMP || ARCH_SHMOBILE || ARCH_HIGHBANK || SOC_IMX6Q
1441 depends on MMU 1451 depends on MMU
1442 select USE_GENERIC_SMP_HELPERS 1452 select USE_GENERIC_SMP_HELPERS
1443 select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP 1453 select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 7f2347bd6cc..e1efbca2a53 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -17,6 +17,7 @@ choice
17 17
18config ARCH_EXYNOS4 18config ARCH_EXYNOS4
19 bool "SAMSUNG EXYNOS4" 19 bool "SAMSUNG EXYNOS4"
20 select HAVE_SMP
20 select MIGHT_HAVE_CACHE_L2X0 21 select MIGHT_HAVE_CACHE_L2X0
21 help 22 help
22 Samsung EXYNOS4 SoCs based systems 23 Samsung EXYNOS4 SoCs based systems
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 5f7f9c2a34a..29a3d616779 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -615,6 +615,7 @@ config SOC_IMX6Q
615 select HAVE_IMX_GPC 615 select HAVE_IMX_GPC
616 select HAVE_IMX_MMDC 616 select HAVE_IMX_MMDC
617 select HAVE_IMX_SRC 617 select HAVE_IMX_SRC
618 select HAVE_SMP
618 select USE_OF 619 select USE_OF
619 620
620 help 621 help
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index ebde97f5d5f..e6beaff7621 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -67,6 +67,7 @@ config MSM_SOC_REV_A
67 bool 67 bool
68config ARCH_MSM_SCORPIONMP 68config ARCH_MSM_SCORPIONMP
69 bool 69 bool
70 select HAVE_SMP
70 71
71config ARCH_MSM_ARM11 72config ARCH_MSM_ARM11
72 bool 73 bool
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index c8415784e60..bb1b670ab7b 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -43,6 +43,7 @@ config ARCH_OMAP4
43 depends on ARCH_OMAP2PLUS 43 depends on ARCH_OMAP2PLUS
44 select CPU_V7 44 select CPU_V7
45 select ARM_GIC 45 select ARM_GIC
46 select HAVE_SMP
46 select LOCAL_TIMERS if SMP 47 select LOCAL_TIMERS if SMP
47 select MIGHT_HAVE_CACHE_L2X0 48 select MIGHT_HAVE_CACHE_L2X0
48 select PL310_ERRATA_588369 49 select PL310_ERRATA_588369
diff --git a/arch/arm/mach-realview/Kconfig b/arch/arm/mach-realview/Kconfig
index 3dd620f8dd9..c593be428b8 100644
--- a/arch/arm/mach-realview/Kconfig
+++ b/arch/arm/mach-realview/Kconfig
@@ -12,6 +12,7 @@ config REALVIEW_EB_A9MP
12 bool "Support Multicore Cortex-A9 Tile" 12 bool "Support Multicore Cortex-A9 Tile"
13 depends on MACH_REALVIEW_EB 13 depends on MACH_REALVIEW_EB
14 select CPU_V7 14 select CPU_V7
15 select HAVE_SMP
15 select MIGHT_HAVE_CACHE_L2X0 16 select MIGHT_HAVE_CACHE_L2X0
16 help 17 help
17 Enable support for the Cortex-A9MPCore tile fitted to the 18 Enable support for the Cortex-A9MPCore tile fitted to the
@@ -22,6 +23,7 @@ config REALVIEW_EB_ARM11MP
22 depends on MACH_REALVIEW_EB 23 depends on MACH_REALVIEW_EB
23 select CPU_V6K 24 select CPU_V6K
24 select ARCH_HAS_BARRIERS if SMP 25 select ARCH_HAS_BARRIERS if SMP
26 select HAVE_SMP
25 select MIGHT_HAVE_CACHE_L2X0 27 select MIGHT_HAVE_CACHE_L2X0
26 help 28 help
27 Enable support for the ARM11MPCore tile fitted to the Realview(R) 29 Enable support for the ARM11MPCore tile fitted to the Realview(R)
@@ -41,6 +43,7 @@ config MACH_REALVIEW_PB11MP
41 select CPU_V6K 43 select CPU_V6K
42 select ARM_GIC 44 select ARM_GIC
43 select HAVE_PATA_PLATFORM 45 select HAVE_PATA_PLATFORM
46 select HAVE_SMP
44 select MIGHT_HAVE_CACHE_L2X0 47 select MIGHT_HAVE_CACHE_L2X0
45 select ARCH_HAS_BARRIERS if SMP 48 select ARCH_HAS_BARRIERS if SMP
46 help 49 help
@@ -82,6 +85,7 @@ config MACH_REALVIEW_PBX
82 bool "Support RealView(R) Platform Baseboard Explore" 85 bool "Support RealView(R) Platform Baseboard Explore"
83 select ARM_GIC 86 select ARM_GIC
84 select HAVE_PATA_PLATFORM 87 select HAVE_PATA_PLATFORM
88 select HAVE_SMP
85 select MIGHT_HAVE_CACHE_L2X0 89 select MIGHT_HAVE_CACHE_L2X0
86 select ARCH_SPARSEMEM_ENABLE if CPU_V7 && !REALVIEW_HIGH_PHYS_OFFSET 90 select ARCH_SPARSEMEM_ENABLE if CPU_V7 && !REALVIEW_HIGH_PHYS_OFFSET
87 select ZONE_DMA if SPARSEMEM 91 select ZONE_DMA if SPARSEMEM
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index a8aefc8a6f2..9b3d0fbaee7 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -8,6 +8,7 @@ config ARCH_VEXPRESS_CA9X4
8 select ARM_ERRATA_720789 8 select ARM_ERRATA_720789
9 select ARM_ERRATA_751472 9 select ARM_ERRATA_751472
10 select ARM_ERRATA_753970 10 select ARM_ERRATA_753970
11 select HAVE_SMP
11 select MIGHT_HAVE_CACHE_L2X0 12 select MIGHT_HAVE_CACHE_L2X0
12 13
13endmenu 14endmenu