Patchwork [PATCHv2] ARM: Push selects for TWD/SCU into machine entries

login
register
mail settings
Submitter Stephen Boyd
Date Feb. 27, 2013, 11:28 p.m.
Message ID <1362007694-3419-1-git-send-email-sboyd@codeaurora.org>
Download mbox | patch
Permalink /patch/223742/
State New
Headers show

Comments

Stephen Boyd - Feb. 27, 2013, 11:28 p.m.
The TWD and SCU configs are selected by default as long as
MSM_SCORPIONMP is false and/or MCT is false. Implementing the
logic this way certainly saves lines in the Kconfig but it
precludes those machines which select MSM_SCORPIONMP or MCT from
participating in the single zImage effort because when those
machines are combined with other SMP capable machines the TWD and
SCU are no longer selected by default.

Push the select out to the machine entries so that we can compile
these machines together and still select the appropriate configs.

Cc: Barry Song <baohua.song@csr.com>
Acked-by: David Brown <davidb@codeaurora.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Pawel Moll <pawel.moll@arm.com>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Shiraz Hashim <shiraz.hashim@st.com>
Acked-by: Simon Horman <horms@verge.net.au>
Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Tony Lindgren <tony@atomide.com>
Acked-by: Viresh Kumar <viresh.linux@gmail.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---

Resending to collect some more acks.

 arch/arm/Kconfig               | 8 ++++++--
 arch/arm/mach-exynos/Kconfig   | 2 ++
 arch/arm/mach-highbank/Kconfig | 1 +
 arch/arm/mach-imx/Kconfig      | 3 ++-
 arch/arm/mach-msm/Kconfig      | 7 ++-----
 arch/arm/mach-omap2/Kconfig    | 2 ++
 arch/arm/mach-prima2/Kconfig   | 1 +
 arch/arm/mach-realview/Kconfig | 8 ++++++++
 arch/arm/mach-vexpress/Kconfig | 2 ++
 arch/arm/plat-spear/Kconfig    | 2 ++
 10 files changed, 28 insertions(+), 8 deletions(-)
Stephen Warren - Feb. 27, 2013, 11:43 p.m.
On 02/27/2013 04:28 PM, Stephen Boyd wrote:
> The TWD and SCU configs are selected by default as long as
> MSM_SCORPIONMP is false and/or MCT is false. Implementing the
> logic this way certainly saves lines in the Kconfig but it
> precludes those machines which select MSM_SCORPIONMP or MCT from
> participating in the single zImage effort because when those
> machines are combined with other SMP capable machines the TWD and
> SCU are no longer selected by default.
> 
> Push the select out to the machine entries so that we can compile
> these machines together and still select the appropriate configs.

> Resending to collect some more acks.

Seems simple enough it doesn't really need many, but for Tegra,
Acked-by: Stephen Warren <swarren@nvidia.com>

Which kernel is this going into? It's possible Tegra will get converted
to multi-platform in 3.10, which might move that main ARCH_TEGRA block
from arch/arm/Kconfig into arch/arm/mach-tegra/Kconfig, although I
suppose it doesn't /have/ to move it. I think some/all(?) other
multi-platform conversions have moved their main Kconfig option like
that though.
Stephen Boyd - March 5, 2013, 1:45 a.m.
On 02/27/13 15:43, Stephen Warren wrote:
>
> Seems simple enough it doesn't really need many, but for Tegra,
> Acked-by: Stephen Warren <swarren@nvidia.com>
>
> Which kernel is this going into? It's possible Tegra will get converted
> to multi-platform in 3.10, which might move that main ARCH_TEGRA block
> from arch/arm/Kconfig into arch/arm/mach-tegra/Kconfig, although I
> suppose it doesn't /have/ to move it. I think some/all(?) other
> multi-platform conversions have moved their main Kconfig option like
> that though.

Thanks. I'm hoping that Arnd/Olof can pick this up. I'm not sure which
version it will go into.
Arnd Bergmann - March 5, 2013, 10:34 p.m.
On Tuesday 05 March 2013, Stephen Boyd wrote:
> On 02/27/13 15:43, Stephen Warren wrote:
> >
> > Seems simple enough it doesn't really need many, but for Tegra,
> > Acked-by: Stephen Warren <swarren@nvidia.com>
> >
> > Which kernel is this going into? It's possible Tegra will get converted
> > to multi-platform in 3.10, which might move that main ARCH_TEGRA block
> > from arch/arm/Kconfig into arch/arm/mach-tegra/Kconfig, although I
> > suppose it doesn't have to move it. I think some/all(?) other
> > multi-platform conversions have moved their main Kconfig option like
> > that though.
> 
> Thanks. I'm hoping that Arnd/Olof can pick this up. I'm not sure which
> version it will go into.
> 

Hmm, it certainly looks useful to me. I think it should go into the next
cleanup branch as a base, so others can build on top of it. We will
also need it for the Exynos multiplatform patches that I hope can land
in 3.10 as well.

Sneaking it in through the fixes branch would make life easier for us,
but it doesn't feel right.

	Arnd
Stephen Boyd - March 16, 2013, 7:32 p.m.
On 3/5/2013 2:34 PM, Arnd Bergmann wrote:
> On Tuesday 05 March 2013, Stephen Boyd wrote:
>> On 02/27/13 15:43, Stephen Warren wrote:
>>> Seems simple enough it doesn't really need many, but for Tegra,
>>> Acked-by: Stephen Warren <swarren@nvidia.com>
>>>
>>> Which kernel is this going into? It's possible Tegra will get converted
>>> to multi-platform in 3.10, which might move that main ARCH_TEGRA block
>>> from arch/arm/Kconfig into arch/arm/mach-tegra/Kconfig, although I
>>> suppose it doesn't have to move it. I think some/all(?) other
>>> multi-platform conversions have moved their main Kconfig option like
>>> that though.
>> Thanks. I'm hoping that Arnd/Olof can pick this up. I'm not sure which
>> version it will go into.
>>
> Hmm, it certainly looks useful to me. I think it should go into the next
> cleanup branch as a base, so others can build on top of it. We will
> also need it for the Exynos multiplatform patches that I hope can land
> in 3.10 as well.
>
> Sneaking it in through the fixes branch would make life easier for us,
> but it doesn't feel right.

Arnd, can you pick this up into the arm-soc tree now? It would be good
to get this into next so that conflicts are avoided later on.
Stephen Boyd - March 26, 2013, 5:34 p.m.
On 03/16/13 12:32, Stephen Boyd wrote:
> On 3/5/2013 2:34 PM, Arnd Bergmann wrote:
>> On Tuesday 05 March 2013, Stephen Boyd wrote:
>>> On 02/27/13 15:43, Stephen Warren wrote:
>>>> Seems simple enough it doesn't really need many, but for Tegra,
>>>> Acked-by: Stephen Warren <swarren@nvidia.com>
>>>>
>>>> Which kernel is this going into? It's possible Tegra will get converted
>>>> to multi-platform in 3.10, which might move that main ARCH_TEGRA block
>>>> from arch/arm/Kconfig into arch/arm/mach-tegra/Kconfig, although I
>>>> suppose it doesn't have to move it. I think some/all(?) other
>>>> multi-platform conversions have moved their main Kconfig option like
>>>> that though.
>>> Thanks. I'm hoping that Arnd/Olof can pick this up. I'm not sure which
>>> version it will go into.
>>>
>> Hmm, it certainly looks useful to me. I think it should go into the next
>> cleanup branch as a base, so others can build on top of it. We will
>> also need it for the Exynos multiplatform patches that I hope can land
>> in 3.10 as well.
>>
>> Sneaking it in through the fixes branch would make life easier for us,
>> but it doesn't feel right.
> Arnd, can you pick this up into the arm-soc tree now? It would be good
> to get this into next so that conflicts are avoided later on.
>

Arnd?
Stephen Boyd - April 9, 2013, 4:47 p.m.
On 03/26/13 10:34, Stephen Boyd wrote:
> On 03/16/13 12:32, Stephen Boyd wrote:
>> On 3/5/2013 2:34 PM, Arnd Bergmann wrote:
>>> On Tuesday 05 March 2013, Stephen Boyd wrote:
>>>> On 02/27/13 15:43, Stephen Warren wrote:
>>>>> Seems simple enough it doesn't really need many, but for Tegra,
>>>>> Acked-by: Stephen Warren <swarren@nvidia.com>
>>>>>
>>>>> Which kernel is this going into? It's possible Tegra will get converted
>>>>> to multi-platform in 3.10, which might move that main ARCH_TEGRA block
>>>>> from arch/arm/Kconfig into arch/arm/mach-tegra/Kconfig, although I
>>>>> suppose it doesn't have to move it. I think some/all(?) other
>>>>> multi-platform conversions have moved their main Kconfig option like
>>>>> that though.
>>>> Thanks. I'm hoping that Arnd/Olof can pick this up. I'm not sure which
>>>> version it will go into.
>>>>
>>> Hmm, it certainly looks useful to me. I think it should go into the next
>>> cleanup branch as a base, so others can build on top of it. We will
>>> also need it for the Exynos multiplatform patches that I hope can land
>>> in 3.10 as well.
>>>
>>> Sneaking it in through the fixes branch would make life easier for us,
>>> but it doesn't feel right.
>> Arnd, can you pick this up into the arm-soc tree now? It would be good
>> to get this into next so that conflicts are avoided later on.
>>
> Arnd?
>

Ping?
Arnd Bergmann - April 9, 2013, 6:32 p.m.
On Tuesday 09 April 2013, Stephen Boyd wrote:
> >>>
> >>> Sneaking it in through the fixes branch would make life easier for us,
> >>> but it doesn't feel right.
> >> Arnd, can you pick this up into the arm-soc tree now? It would be good
> >> to get this into next so that conflicts are avoided later on.
> >>
> > Arnd?
> >
> 
> Ping?


Sorry for the long delay, you scrolled down from my unread emails twice.

Three tips for you to make it more likely to get a fast reaction time:

* Send the original patch to Olof and me, not just the reply to the
  on-list patch.
* Use the arm@kernel.org alias to reach us, since that will make the
  email go into the right folder
* Use the [GIT PULL] keyword in the subject line, ideally sending a
  pull request as well, instead of a separate email. While we do apply
  emails, It's often batch processing to apply everything and then
  we scan for emails that have PULL in the subject, while others
  can get lost.

I've applied it to the next/soc branch now.

	Arnd
Arnd Bergmann - April 9, 2013, 7:35 p.m.
On Tuesday 09 April 2013, Arnd Bergmann wrote:
> I've applied it to the next/soc branch now.
> 

I just made up my mind again after I got a few merge conflicts. I have
added it to the next/multiplatform branch now instead of next/soc, since
a few of the Kconfig entries changed in this patch are moved to other
files in that branch.

I've also added an entry for mach-zynq, which has gained SMP support
in the meantime. I assume it uses TWD/SCU as it is otherwise rather close
to the ARM reference platforms.

	Arnd

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index dedf02b..8f5707b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -672,6 +672,8 @@  config ARCH_TEGRA
 	select CLKSRC_OF
 	select COMMON_CLK
 	select GENERIC_CLOCKEVENTS
+	select HAVE_ARM_SCU if SMP
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_CLK
 	select HAVE_SMP
 	select MIGHT_HAVE_CACHE_L2X0
@@ -718,6 +720,8 @@  config ARCH_SHMOBILE
 	bool "Renesas SH-Mobile / R-Mobile"
 	select CLKDEV_LOOKUP
 	select GENERIC_CLOCKEVENTS
+	select HAVE_ARM_SCU if SMP
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_CLK
 	select HAVE_MACH_CLKDEV
 	select HAVE_SMP
@@ -910,6 +914,8 @@  config ARCH_U8500
 	select CLKDEV_LOOKUP
 	select CPU_V7
 	select GENERIC_CLOCKEVENTS
+	select HAVE_ARM_SCU if SMP
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_SMP
 	select MIGHT_HAVE_CACHE_L2X0
 	select SPARSE_IRQ
@@ -1526,7 +1532,6 @@  config SMP
 	depends on GENERIC_CLOCKEVENTS
 	depends on HAVE_SMP
 	depends on MMU
-	select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP
 	select USE_GENERIC_SMP_HELPERS
 	help
 	  This enables support for systems with more than one CPU. If you have
@@ -1650,7 +1655,6 @@  config LOCAL_TIMERS
 	bool "Use local timer interrupts"
 	depends on SMP
 	default y
-	select HAVE_ARM_TWD if (!ARCH_MSM_SCORPIONMP && !EXYNOS4_MCT)
 	help
 	  Enable support for local timers on SMP platforms, rather then the
 	  legacy IPI broadcast method.  Local timers allows the system
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 70f94c8..54cf73e 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -14,6 +14,7 @@  menu "SAMSUNG EXYNOS SoCs Support"
 config ARCH_EXYNOS4
 	bool "SAMSUNG EXYNOS4"
 	default y
+	select HAVE_ARM_SCU if SMP
 	select HAVE_SMP
 	select MIGHT_HAVE_CACHE_L2X0
 	help
@@ -21,6 +22,7 @@  config ARCH_EXYNOS4
 
 config ARCH_EXYNOS5
 	bool "SAMSUNG EXYNOS5"
+	select HAVE_ARM_SCU if SMP
 	select HAVE_SMP
 	help
 	  Samsung EXYNOS5 (Cortex-A15) SoC based systems
diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig
index 44b12f9..cd9fcb1 100644
--- a/arch/arm/mach-highbank/Kconfig
+++ b/arch/arm/mach-highbank/Kconfig
@@ -12,6 +12,7 @@  config ARCH_HIGHBANK
 	select CPU_V7
 	select GENERIC_CLOCKEVENTS
 	select HAVE_ARM_SCU
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_SMP
 	select MAILBOX
 	select PL320_MBOX
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 4c9c6f9..2cc0dbd 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -811,7 +811,8 @@  config SOC_IMX6Q
 	select ARM_GIC
 	select COMMON_CLK
 	select CPU_V7
-	select HAVE_ARM_SCU
+	select HAVE_ARM_SCU if SMP
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_CAN_FLEXCAN if CAN
 	select HAVE_IMX_GPC
 	select HAVE_IMX_MMDC
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index b619085..fceb093 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -44,10 +44,10 @@  endchoice
 
 config ARCH_MSM8X60
 	bool "MSM8X60"
-	select ARCH_MSM_SCORPIONMP
 	select ARM_GIC
 	select CPU_V7
 	select GPIO_MSM_V2
+	select HAVE_SMP
 	select MSM_GPIOMUX
 	select MSM_SCM if SMP
 	select MSM_V2_TLMM
@@ -55,9 +55,9 @@  config ARCH_MSM8X60
 
 config ARCH_MSM8960
 	bool "MSM8960"
-	select ARCH_MSM_SCORPIONMP
 	select ARM_GIC
 	select CPU_V7
+	select HAVE_SMP
 	select MSM_GPIOMUX
 	select MSM_SCM if SMP
 	select MSM_V2_TLMM
@@ -68,9 +68,6 @@  config MSM_HAS_DEBUG_UART_HS
 
 config MSM_SOC_REV_A
 	bool
-config  ARCH_MSM_SCORPIONMP
-	bool
-	select HAVE_SMP
 
 config  ARCH_MSM_ARM11
 	bool
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 49ac3df..a003110 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -87,6 +87,8 @@  config ARCH_OMAP4
 	select ARM_GIC
 	select CACHE_L2X0
 	select CPU_V7
+	select HAVE_ARM_SCU if SMP
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_SMP
 	select LOCAL_TIMERS if SMP
 	select OMAP_INTERCONNECT
diff --git a/arch/arm/mach-prima2/Kconfig b/arch/arm/mach-prima2/Kconfig
index 4f7379f..48dfd89 100644
--- a/arch/arm/mach-prima2/Kconfig
+++ b/arch/arm/mach-prima2/Kconfig
@@ -16,6 +16,7 @@  config ARCH_MARCO
 	default y
 	select ARM_GIC
 	select CPU_V7
+	select HAVE_ARM_SCU if SMP
 	select HAVE_SMP
 	select SMP_ON_UP
 	help
diff --git a/arch/arm/mach-realview/Kconfig b/arch/arm/mach-realview/Kconfig
index 14c1d47..d210c0f9 100644
--- a/arch/arm/mach-realview/Kconfig
+++ b/arch/arm/mach-realview/Kconfig
@@ -12,6 +12,8 @@  config REALVIEW_EB_A9MP
 	bool "Support Multicore Cortex-A9 Tile"
 	depends on MACH_REALVIEW_EB
 	select CPU_V7
+	select HAVE_ARM_SCU if SMP
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_SMP
 	select MIGHT_HAVE_CACHE_L2X0
 	help
@@ -23,6 +25,8 @@  config REALVIEW_EB_ARM11MP
 	depends on MACH_REALVIEW_EB
 	select ARCH_HAS_BARRIERS if SMP
 	select CPU_V6K
+	select HAVE_ARM_SCU if SMP
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_SMP
 	select MIGHT_HAVE_CACHE_L2X0
 	help
@@ -43,6 +47,8 @@  config MACH_REALVIEW_PB11MP
 	select ARCH_HAS_BARRIERS if SMP
 	select ARM_GIC
 	select CPU_V6K
+	select HAVE_ARM_SCU if SMP
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_PATA_PLATFORM
 	select HAVE_SMP
 	select MIGHT_HAVE_CACHE_L2X0
@@ -85,6 +91,8 @@  config MACH_REALVIEW_PBX
 	bool "Support RealView(R) Platform Baseboard Explore"
 	select ARCH_SPARSEMEM_ENABLE if CPU_V7 && !REALVIEW_HIGH_PHYS_OFFSET
 	select ARM_GIC
+	select HAVE_ARM_SCU if SMP
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_PATA_PLATFORM
 	select HAVE_SMP
 	select MIGHT_HAVE_CACHE_L2X0
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index 52d315b..5e3a2d3 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -9,6 +9,8 @@  config ARCH_VEXPRESS
 	select COMMON_CLK_VERSATILE
 	select CPU_V7
 	select GENERIC_CLOCKEVENTS
+	select HAVE_ARM_SCU if SMP
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_CLK
 	select HAVE_PATA_PLATFORM
 	select HAVE_SMP
diff --git a/arch/arm/plat-spear/Kconfig b/arch/arm/plat-spear/Kconfig
index 739d016..439eead 100644
--- a/arch/arm/plat-spear/Kconfig
+++ b/arch/arm/plat-spear/Kconfig
@@ -14,6 +14,8 @@  config ARCH_SPEAR13XX
 	select ARM_GIC
 	select CPU_V7
 	select GPIO_SPEAR_SPICS
+	select HAVE_ARM_SCU if SMP
+	select HAVE_ARM_TWD if LOCAL_TIMERS
 	select HAVE_SMP
 	select MIGHT_HAVE_CACHE_L2X0
 	select PINCTRL