All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/14] arm-soc fixes for 3.16 review
@ 2014-06-13 16:01 ` Arnd Bergmann
  0 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: arm, Arnd Bergmann, andrew, ben-linux, dan.carpenter,
	daniel.lezcano, gregory.clement, jason, khilman, kgene.kim,
	linus.walleij, lorenzo.pieralisi, ohad, olof, pawel.moll, robh,
	rtivy, linux, sachin.kamat, santosh.shilimkar,
	sebastian.hesselbarth, shawn.guo, sboyd, t.figa, tony,
	tushar.behera, viresh.kumar, linux-omap, linux-samsung-soc

Hi Everyone,

here are the fixes I've picked up so far as the last pull request
for the merge window. I'm sure there will be a lot more in the
future, but let us know if I missed something or if any of the
patches (in particular mine, some of which I have not posted
before) are not ok.

Arnd Bergmann (6):
  ARM: mvebu: fix randconfig builds for pmsu driver
  ARM: omap2: fix am43xx dependency on l2x0 cache
  ARM: keystone requires ARM_PATCH_PHYS_VIRT
  bus/arm-cci: add dependency on OF && CPU_V7
  remoteproc: da8xx: don't select CMA on no-MMU
  ARM: samsung: make SAMSUNG_DMADEV optional

Dan Carpenter (1):
  misc: vexpress: fix error handling vexpress_syscfg_regmap_init()

Jason Cooper (1):
  ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size

Linus Walleij (1):
  ARM: integrator: fix section mismatch problem

Olof Johansson (1):
  ARM: exynos: move sysram info to exynos.c

Rob Herring (2):
  ARM: exynos: cleanup kconfig option display
  ARM: use menuconfig for sub-arch menus

Sachin Kamat (1):
  ARM: EXYNOS: Fix compilation warning

Stephen Boyd (1):
  ARM: Remove ARCH_HAS_CPUFREQ config option

 arch/arm/Kconfig                                 | 20 +--------------
 arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts |  2 +-
 arch/arm/configs/omap2plus_defconfig             |  1 +
 arch/arm/mach-bcm/Kconfig                        |  7 +++---
 arch/arm/mach-berlin/Kconfig                     |  6 +----
 arch/arm/mach-cns3xxx/Kconfig                    |  7 +++---
 arch/arm/mach-davinci/Kconfig                    |  1 -
 arch/arm/mach-exynos/Kconfig                     |  7 +-----
 arch/arm/mach-exynos/common.h                    |  1 +
 arch/arm/mach-exynos/exynos.c                    | 31 +++++++++++++++++++++++-
 arch/arm/mach-exynos/platsmp.c                   | 26 ++------------------
 arch/arm/mach-highbank/Kconfig                   |  1 -
 arch/arm/mach-imx/Kconfig                        | 10 +++-----
 arch/arm/mach-integrator/Kconfig                 |  2 +-
 arch/arm/mach-integrator/impd1.c                 | 12 ++++++++-
 arch/arm/mach-keystone/Kconfig                   |  1 +
 arch/arm/mach-moxart/Kconfig                     |  2 +-
 arch/arm/mach-mvebu/Kconfig                      |  8 ++----
 arch/arm/mach-mvebu/pmsu.c                       |  9 ++++++-
 arch/arm/mach-nomadik/Kconfig                    |  4 +--
 arch/arm/mach-omap2/Kconfig                      | 11 +++++----
 arch/arm/mach-omap2/common.h                     |  7 ++++++
 arch/arm/mach-prima2/Kconfig                     |  6 ++---
 arch/arm/mach-qcom/Kconfig                       |  6 +----
 arch/arm/mach-s3c24xx/Kconfig                    |  2 +-
 arch/arm/mach-s3c64xx/Kconfig                    |  4 +--
 arch/arm/mach-s5p64x0/Kconfig                    |  6 +++--
 arch/arm/mach-s5pc100/Kconfig                    |  3 ++-
 arch/arm/mach-s5pv210/Kconfig                    |  3 ++-
 arch/arm/mach-shmobile/Kconfig                   |  6 ++---
 arch/arm/mach-spear/Kconfig                      |  1 -
 arch/arm/mach-tegra/Kconfig                      |  8 +++---
 arch/arm/mach-u300/Kconfig                       |  6 +----
 arch/arm/mach-ux500/Kconfig                      |  7 +-----
 arch/arm/mach-vexpress/Kconfig                   |  8 +++---
 arch/arm/mach-vt8500/Kconfig                     |  1 -
 arch/arm/mach-zynq/Kconfig                       |  1 -
 arch/arm/plat-samsung/Kconfig                    | 28 ++++++---------------
 drivers/bus/Kconfig                              |  2 +-
 drivers/misc/vexpress-syscfg.c                   | 12 ++++++---
 drivers/remoteproc/Kconfig                       |  2 +-
 41 files changed, 127 insertions(+), 161 deletions(-)

-- 
1.8.3.2

Cc: andrew@lunn.ch
Cc: arnd@arndb.de
Cc: ben-linux@fluff.org
Cc: dan.carpenter@oracle.com
Cc: daniel.lezcano@linaro.org
Cc: gregory.clement@free-electrons.com
Cc: jason@lakedaemon.net
Cc: khilman@linaro.org
Cc: kgene.kim@samsung.com
Cc: linus.walleij@linaro.org
Cc: lorenzo.pieralisi@arm.com
Cc: ohad@wizery.com
Cc: olof@lixom.net
Cc: pawel.moll@arm.com
Cc: robh@kernel.org
Cc: rtivy@ti.com
Cc: linux@arm.linux.org.uk
Cc: sachin.kamat@linaro.org
Cc: santosh.shilimkar@ti.com
Cc: sebastian.hesselbarth@gmail.com
Cc: shawn.guo@linaro.org
Cc: sboyd@codeaurora.org
Cc: t.figa@samsung.com
Cc: tony@atomide.com
Cc: tushar.behera@linaro.org
Cc: viresh.kumar@linaro.org
Cc:  linux-omap@vger.kernel.org
Cc:  linux-samsung-soc@vger.kernel.org

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 00/14] arm-soc fixes for 3.16 review
@ 2014-06-13 16:01 ` Arnd Bergmann
  0 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Everyone,

here are the fixes I've picked up so far as the last pull request
for the merge window. I'm sure there will be a lot more in the
future, but let us know if I missed something or if any of the
patches (in particular mine, some of which I have not posted
before) are not ok.

Arnd Bergmann (6):
  ARM: mvebu: fix randconfig builds for pmsu driver
  ARM: omap2: fix am43xx dependency on l2x0 cache
  ARM: keystone requires ARM_PATCH_PHYS_VIRT
  bus/arm-cci: add dependency on OF && CPU_V7
  remoteproc: da8xx: don't select CMA on no-MMU
  ARM: samsung: make SAMSUNG_DMADEV optional

Dan Carpenter (1):
  misc: vexpress: fix error handling vexpress_syscfg_regmap_init()

Jason Cooper (1):
  ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size

Linus Walleij (1):
  ARM: integrator: fix section mismatch problem

Olof Johansson (1):
  ARM: exynos: move sysram info to exynos.c

Rob Herring (2):
  ARM: exynos: cleanup kconfig option display
  ARM: use menuconfig for sub-arch menus

Sachin Kamat (1):
  ARM: EXYNOS: Fix compilation warning

Stephen Boyd (1):
  ARM: Remove ARCH_HAS_CPUFREQ config option

 arch/arm/Kconfig                                 | 20 +--------------
 arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts |  2 +-
 arch/arm/configs/omap2plus_defconfig             |  1 +
 arch/arm/mach-bcm/Kconfig                        |  7 +++---
 arch/arm/mach-berlin/Kconfig                     |  6 +----
 arch/arm/mach-cns3xxx/Kconfig                    |  7 +++---
 arch/arm/mach-davinci/Kconfig                    |  1 -
 arch/arm/mach-exynos/Kconfig                     |  7 +-----
 arch/arm/mach-exynos/common.h                    |  1 +
 arch/arm/mach-exynos/exynos.c                    | 31 +++++++++++++++++++++++-
 arch/arm/mach-exynos/platsmp.c                   | 26 ++------------------
 arch/arm/mach-highbank/Kconfig                   |  1 -
 arch/arm/mach-imx/Kconfig                        | 10 +++-----
 arch/arm/mach-integrator/Kconfig                 |  2 +-
 arch/arm/mach-integrator/impd1.c                 | 12 ++++++++-
 arch/arm/mach-keystone/Kconfig                   |  1 +
 arch/arm/mach-moxart/Kconfig                     |  2 +-
 arch/arm/mach-mvebu/Kconfig                      |  8 ++----
 arch/arm/mach-mvebu/pmsu.c                       |  9 ++++++-
 arch/arm/mach-nomadik/Kconfig                    |  4 +--
 arch/arm/mach-omap2/Kconfig                      | 11 +++++----
 arch/arm/mach-omap2/common.h                     |  7 ++++++
 arch/arm/mach-prima2/Kconfig                     |  6 ++---
 arch/arm/mach-qcom/Kconfig                       |  6 +----
 arch/arm/mach-s3c24xx/Kconfig                    |  2 +-
 arch/arm/mach-s3c64xx/Kconfig                    |  4 +--
 arch/arm/mach-s5p64x0/Kconfig                    |  6 +++--
 arch/arm/mach-s5pc100/Kconfig                    |  3 ++-
 arch/arm/mach-s5pv210/Kconfig                    |  3 ++-
 arch/arm/mach-shmobile/Kconfig                   |  6 ++---
 arch/arm/mach-spear/Kconfig                      |  1 -
 arch/arm/mach-tegra/Kconfig                      |  8 +++---
 arch/arm/mach-u300/Kconfig                       |  6 +----
 arch/arm/mach-ux500/Kconfig                      |  7 +-----
 arch/arm/mach-vexpress/Kconfig                   |  8 +++---
 arch/arm/mach-vt8500/Kconfig                     |  1 -
 arch/arm/mach-zynq/Kconfig                       |  1 -
 arch/arm/plat-samsung/Kconfig                    | 28 ++++++---------------
 drivers/bus/Kconfig                              |  2 +-
 drivers/misc/vexpress-syscfg.c                   | 12 ++++++---
 drivers/remoteproc/Kconfig                       |  2 +-
 41 files changed, 127 insertions(+), 161 deletions(-)

-- 
1.8.3.2

Cc: andrew at lunn.ch
Cc: arnd at arndb.de
Cc: ben-linux at fluff.org
Cc: dan.carpenter at oracle.com
Cc: daniel.lezcano at linaro.org
Cc: gregory.clement at free-electrons.com
Cc: jason at lakedaemon.net
Cc: khilman at linaro.org
Cc: kgene.kim at samsung.com
Cc: linus.walleij at linaro.org
Cc: lorenzo.pieralisi at arm.com
Cc: ohad at wizery.com
Cc: olof at lixom.net
Cc: pawel.moll at arm.com
Cc: robh at kernel.org
Cc: rtivy at ti.com
Cc: linux at arm.linux.org.uk
Cc: sachin.kamat at linaro.org
Cc: santosh.shilimkar at ti.com
Cc: sebastian.hesselbarth at gmail.com
Cc: shawn.guo at linaro.org
Cc: sboyd at codeaurora.org
Cc: t.figa at samsung.com
Cc: tony at atomide.com
Cc: tushar.behera at linaro.org
Cc: viresh.kumar at linaro.org
Cc:  linux-omap at vger.kernel.org
Cc:  linux-samsung-soc at vger.kernel.org

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 01/14] ARM: mvebu: fix randconfig builds for pmsu driver
  2014-06-13 16:01 ` Arnd Bergmann
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  2014-06-17 14:00   ` Thomas Petazzoni
  -1 siblings, 1 reply; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

local_flush_tlb_all() is not available for NOMMU NOSMP builds.
The isb() assembly instruction is not available when building
a combined ARMv6/v7 kernel, unlike the isb() inline that falls
back to the ARMv6 opcode.
If CPUIDLE support is disabled globally, we must not call
arm_cpu_suspend. If it is enabled, we should ensure that it
is available.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Gregory Clement <gregory.clement@free-electrons.com>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
 arch/arm/mach-mvebu/Kconfig | 1 +
 arch/arm/mach-mvebu/pmsu.c  | 9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 6090b9e..bcfe094 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -18,6 +18,7 @@ menu "Marvell EBU SoC variants"
 config MACH_MVEBU_V7
 	bool
 	select ARMADA_370_XP_TIMER
+	select ARM_CPU_SUSPEND if CPU_IDLE
 	select CACHE_L2X0
 
 config MACH_ARMADA_370
diff --git a/arch/arm/mach-mvebu/pmsu.c b/arch/arm/mach-mvebu/pmsu.c
index 53a55c8..14351bf 100644
--- a/arch/arm/mach-mvebu/pmsu.c
+++ b/arch/arm/mach-mvebu/pmsu.c
@@ -26,6 +26,7 @@
 #include <linux/platform_device.h>
 #include <linux/smp.h>
 #include <linux/resource.h>
+#include <asm/barrier.h>
 #include <asm/cacheflush.h>
 #include <asm/cp15.h>
 #include <asm/smp_plat.h>
@@ -200,7 +201,9 @@ static noinline int do_armada_370_xp_cpu_suspend(unsigned long deepidle)
 	/* If we are here, wfi failed. As processors run out of
 	 * coherency for some time, tlbs might be stale, so flush them
 	 */
+#ifdef CONFIG_MMU
 	local_flush_tlb_all();
+#endif
 
 	ll_enable_coherency();
 
@@ -210,9 +213,10 @@ static noinline int do_armada_370_xp_cpu_suspend(unsigned long deepidle)
 	"tst	%0, #(1 << 2) \n\t"
 	"orreq	%0, %0, #(1 << 2) \n\t"
 	"mcreq	p15, 0, %0, c1, c0, 0 \n\t"
-	"isb	"
 	: : "r" (0));
 
+	isb();
+
 	pr_warn("Failed to suspend the system\n");
 
 	return 0;
@@ -220,6 +224,9 @@ static noinline int do_armada_370_xp_cpu_suspend(unsigned long deepidle)
 
 static int armada_370_xp_cpu_suspend(unsigned long deepidle)
 {
+	if (!IS_ENABLED(CONFIG_CPU_IDLE))
+		return -ENODEV;
+
 	return cpu_suspend(deepidle, do_armada_370_xp_cpu_suspend);
 }
 
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 02/14] ARM: omap2: fix am43xx dependency on l2x0 cache
  2014-06-13 16:01 ` Arnd Bergmann
@ 2014-06-13 16:01   ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: arm, Arnd Bergmann, linux-omap, Tony Lindgren

Commit d941f86fad41b ("ARM: l2c: AM43x: add L2 cache support") enabled
the L2 cache support for the am43xx SoC, but caused a build regression
when the driver for that cache controller is disabled:

arch/arm/mach-omap2/built-in.o: In function `am43xx_init_early':
:(.init.text+0xb20): undefined reference to `omap_l2_cache_init'

This did not happen for OMAP4, which has the same call, but enables
the l2x0 driver unconditionally. We could do the same thing for
am43xx, but it seems better to allow turning it off and make the
code work in either case.

This adds an inline wrapper for omap_l2_cache_init for the disabled
case, and removes the 'select' from OMAP4 so it becomes a user
visible option.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: linux-omap@vger.kernel.org
Cc: Tony Lindgren <tony@atomide.com>
---
 arch/arm/configs/omap2plus_defconfig | 1 +
 arch/arm/mach-omap2/Kconfig          | 1 -
 arch/arm/mach-omap2/common.h         | 7 +++++++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index 59066cf..536a137 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -32,6 +32,7 @@ CONFIG_SOC_OMAP5=y
 CONFIG_SOC_AM33XX=y
 CONFIG_SOC_AM43XX=y
 CONFIG_SOC_DRA7XX=y
+CONFIG_CACHE_L2X0=y
 CONFIG_ARM_THUMBEE=y
 CONFIG_ARM_ERRATA_411920=y
 CONFIG_SMP=y
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 0ba4826..2085b3d 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -28,7 +28,6 @@ config ARCH_OMAP4
 	select ARM_CPU_SUSPEND if PM
 	select ARM_ERRATA_720789
 	select ARM_GIC
-	select CACHE_L2X0
 	select HAVE_ARM_SCU if SMP
 	select HAVE_ARM_TWD if SMP
 	select OMAP_INTERCONNECT
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
index ff02973..a373d50 100644
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -91,7 +91,14 @@ extern void omap3_sync32k_timer_init(void);
 extern void omap3_secure_sync32k_timer_init(void);
 extern void omap3_gptimer_timer_init(void);
 extern void omap4_local_timer_init(void);
+#ifdef CONFIG_CACHE_L2X0
 int omap_l2_cache_init(void);
+#else
+static inline int omap_l2_cache_init(void)
+{
+	return 0;
+}
+#endif
 extern void omap5_realtime_timer_init(void);
 
 void omap2420_init_early(void);
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 02/14] ARM: omap2: fix am43xx dependency on l2x0 cache
@ 2014-06-13 16:01   ` Arnd Bergmann
  0 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

Commit d941f86fad41b ("ARM: l2c: AM43x: add L2 cache support") enabled
the L2 cache support for the am43xx SoC, but caused a build regression
when the driver for that cache controller is disabled:

arch/arm/mach-omap2/built-in.o: In function `am43xx_init_early':
:(.init.text+0xb20): undefined reference to `omap_l2_cache_init'

This did not happen for OMAP4, which has the same call, but enables
the l2x0 driver unconditionally. We could do the same thing for
am43xx, but it seems better to allow turning it off and make the
code work in either case.

This adds an inline wrapper for omap_l2_cache_init for the disabled
case, and removes the 'select' from OMAP4 so it becomes a user
visible option.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: linux-omap at vger.kernel.org
Cc: Tony Lindgren <tony@atomide.com>
---
 arch/arm/configs/omap2plus_defconfig | 1 +
 arch/arm/mach-omap2/Kconfig          | 1 -
 arch/arm/mach-omap2/common.h         | 7 +++++++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index 59066cf..536a137 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -32,6 +32,7 @@ CONFIG_SOC_OMAP5=y
 CONFIG_SOC_AM33XX=y
 CONFIG_SOC_AM43XX=y
 CONFIG_SOC_DRA7XX=y
+CONFIG_CACHE_L2X0=y
 CONFIG_ARM_THUMBEE=y
 CONFIG_ARM_ERRATA_411920=y
 CONFIG_SMP=y
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 0ba4826..2085b3d 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -28,7 +28,6 @@ config ARCH_OMAP4
 	select ARM_CPU_SUSPEND if PM
 	select ARM_ERRATA_720789
 	select ARM_GIC
-	select CACHE_L2X0
 	select HAVE_ARM_SCU if SMP
 	select HAVE_ARM_TWD if SMP
 	select OMAP_INTERCONNECT
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
index ff02973..a373d50 100644
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -91,7 +91,14 @@ extern void omap3_sync32k_timer_init(void);
 extern void omap3_secure_sync32k_timer_init(void);
 extern void omap3_gptimer_timer_init(void);
 extern void omap4_local_timer_init(void);
+#ifdef CONFIG_CACHE_L2X0
 int omap_l2_cache_init(void);
+#else
+static inline int omap_l2_cache_init(void)
+{
+	return 0;
+}
+#endif
 extern void omap5_realtime_timer_init(void);
 
 void omap2420_init_early(void);
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 03/14] ARM: keystone requires ARM_PATCH_PHYS_VIRT
  2014-06-13 16:01 ` Arnd Bergmann
                   ` (2 preceding siblings ...)
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  2014-06-13 16:23   ` Santosh Shilimkar
                     ` (2 more replies)
  -1 siblings, 3 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

The dynamic relocation that the keystone platform performs
only works if we can pick the phys offset at boot time. It's
possible that there is another solution for this, but this
is the easiest workaround. Kernels with ARM_PATCH_PHYS_VIRT
are not portable across platforms, and I see no reason why
anyone would run a kernel without ARM_PATCH_PHYS_VIRT on
keystone.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
---
 arch/arm/mach-keystone/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig
index f50bc93..98a156a 100644
--- a/arch/arm/mach-keystone/Kconfig
+++ b/arch/arm/mach-keystone/Kconfig
@@ -1,6 +1,7 @@
 config ARCH_KEYSTONE
 	bool "Texas Instruments Keystone Devices"
 	depends on ARCH_MULTI_V7
+	depends on ARM_PATCH_PHYS_VIRT
 	select ARM_GIC
 	select HAVE_ARM_ARCH_TIMER
 	select CLKSRC_MMIO
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 04/14] bus/arm-cci: add dependency on OF && CPU_V7
  2014-06-13 16:01 ` Arnd Bergmann
                   ` (3 preceding siblings ...)
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

The arm-cci code uses device tree helpers for initialization
that don't work on kernels built without CONFIG_OF. Further,
it contains an inline assembly in cci_enable_port_for_self()
that uses ARMv7 instructions and fails to build when targetting
other ARM instruction set versions.

This works around both issues by limiting the scope of the
Kconfig symbol to platforms that can actually build this driver
cleanly.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Shawn Guo <shawn.guo@linaro.org>
---
 drivers/bus/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bus/Kconfig b/drivers/bus/Kconfig
index a118ec1..1f37d98 100644
--- a/drivers/bus/Kconfig
+++ b/drivers/bus/Kconfig
@@ -45,7 +45,7 @@ config OMAP_INTERCONNECT
 
 config ARM_CCI
 	bool "ARM CCI driver support"
-	depends on ARM
+	depends on ARM && OF && CPU_V7
 	help
 	  Driver supporting the CCI cache coherent interconnect for ARM
 	  platforms.
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 05/14] remoteproc: da8xx: don't select CMA on no-MMU
  2014-06-13 16:01 ` Arnd Bergmann
                   ` (4 preceding siblings ...)
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

We can only use CMA on systems that have an MMU, because of
the requirement to use memory migration. NOMMU systems are
rather constrained to start with, but it seems reasonable
to assume that DMA allocations can still succeed in the
constrained case for remoteproc on NOMMU, so this patch
changes the da8xx implementation to not rely on CMA when
the MMU is disabled.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Ohad Ben-Cohen <ohad@wizery.com>
Cc: Robert Tivy <rtivy@ti.com>
---
 drivers/remoteproc/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig
index ce1743d..5e343ba 100644
--- a/drivers/remoteproc/Kconfig
+++ b/drivers/remoteproc/Kconfig
@@ -44,7 +44,7 @@ config STE_MODEM_RPROC
 config DA8XX_REMOTEPROC
 	tristate "DA8xx/OMAP-L13x remoteproc support"
 	depends on ARCH_DAVINCI_DA8XX
-	select CMA
+	select CMA if MMU
 	select REMOTEPROC
 	select RPMSG
 	help
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 06/14] ARM: samsung: make SAMSUNG_DMADEV optional
  2014-06-13 16:01 ` Arnd Bergmann
                   ` (5 preceding siblings ...)
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

The only remaining driver using the samsung dmadev code is the broken
samsung-ac97 sound driver. However, as found by Russell's autobuilder,
the elaborate dependency chains around it cause problems with
circular dependencies.

This is an attempt to simplify those dependencies by making the
SAMSUNG_DMADEV option user-selectable. I also try to keep the
default settings for all related options unchanged, so we don't
introduce any regressions against earlier testing on linux-next.

In particular, all s3c64xx and s5p* platforms keep selecting the
pl330 and pl08x drivers they require, but the select statement
is now moved towards the main platform option, and it remains
optional by unselecting CONFIG_DMADEVICES.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Kukjin Kim <kgene.kim@samsung.com>
---
 arch/arm/mach-s3c24xx/Kconfig |  2 +-
 arch/arm/mach-s3c64xx/Kconfig |  4 ++--
 arch/arm/mach-s5p64x0/Kconfig |  6 ++++--
 arch/arm/mach-s5pc100/Kconfig |  3 ++-
 arch/arm/mach-s5pv210/Kconfig |  3 ++-
 arch/arm/plat-samsung/Kconfig | 11 +++++------
 6 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig
index 04284de..ad5316a 100644
--- a/arch/arm/mach-s3c24xx/Kconfig
+++ b/arch/arm/mach-s3c24xx/Kconfig
@@ -117,7 +117,7 @@ config S3C24XX_SETUP_TS
 	  Compile in platform device definition for Samsung TouchScreen.
 
 config S3C24XX_DMA
-	bool "S3C2410 DMA support"
+	bool "S3C2410 DMA support (deprecated)"
 	select S3C_DMA
 	help
 	  S3C2410 DMA support. This is needed for drivers like sound which
diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig
index 3136d86..26ca242 100644
--- a/arch/arm/mach-s3c64xx/Kconfig
+++ b/arch/arm/mach-s3c64xx/Kconfig
@@ -18,9 +18,9 @@ config CPU_S3C6410
 	  Enable S3C6410 CPU support
 
 config S3C64XX_PL080
-	bool "S3C64XX DMA using generic PL08x driver"
+	def_bool DMADEVICES
+	select ARM_AMBA
 	select AMBA_PL08X
-	select SAMSUNG_DMADEV
 
 config S3C64XX_SETUP_SDHCI
 	bool
diff --git a/arch/arm/mach-s5p64x0/Kconfig b/arch/arm/mach-s5p64x0/Kconfig
index bb2111b..26003e2 100644
--- a/arch/arm/mach-s5p64x0/Kconfig
+++ b/arch/arm/mach-s5p64x0/Kconfig
@@ -9,16 +9,18 @@ if ARCH_S5P64X0
 
 config CPU_S5P6440
 	bool
+	select ARM_AMBA
+	select PL330_DMA if DMADEVICES
 	select S5P_SLEEP if PM
-	select SAMSUNG_DMADEV
 	select SAMSUNG_WAKEMASK if PM
 	help
 	  Enable S5P6440 CPU support
 
 config CPU_S5P6450
 	bool
+	select ARM_AMBA
+	select PL330_DMA if DMADEVICES
 	select S5P_SLEEP if PM
-	select SAMSUNG_DMADEV
 	select SAMSUNG_WAKEMASK if PM
 	help
 	  Enable S5P6450 CPU support
diff --git a/arch/arm/mach-s5pc100/Kconfig b/arch/arm/mach-s5pc100/Kconfig
index 15170be..c5e3a96 100644
--- a/arch/arm/mach-s5pc100/Kconfig
+++ b/arch/arm/mach-s5pc100/Kconfig
@@ -9,8 +9,9 @@ if ARCH_S5PC100
 
 config CPU_S5PC100
 	bool
+	select ARM_AMBA
+	select PL330_DMA if DMADEVICES
 	select S5P_EXT_INT
-	select SAMSUNG_DMADEV
 	help
 	  Enable S5PC100 CPU support
 
diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
index 8c3abe5..f60f286 100644
--- a/arch/arm/mach-s5pv210/Kconfig
+++ b/arch/arm/mach-s5pv210/Kconfig
@@ -11,10 +11,11 @@ if ARCH_S5PV210
 
 config CPU_S5PV210
 	bool
+	select ARM_AMBA
+	select PL330_DMA if DMADEVICES
 	select S5P_EXT_INT
 	select S5P_PM if PM
 	select S5P_SLEEP if PM
-	select SAMSUNG_DMADEV
 	help
 	  Enable S5PV210 CPU support
 
diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index 243dfcb..91911e4 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -407,17 +407,16 @@ config SAMSUNG_PM_GPIO
 	  Include legacy GPIO power management code for platforms not using
 	  pinctrl-samsung driver.
 
-endif
-
 config SAMSUNG_DMADEV
-	bool
-	select ARM_AMBA
+	bool "Use legacy Samsung DMA abstraction"
+	depends on CPU_S5PV210 || CPU_S5PC100 || ARCH_S5P64X0 || ARCH_S3C64XX
 	select DMADEVICES
-	select PL330_DMA if (ARCH_EXYNOS5 || ARCH_EXYNOS4 || CPU_S5PV210 || CPU_S5PC100 || \
-					CPU_S5P6450 || CPU_S5P6440)
+	default y
 	help
 	  Use DMA device engine for PL330 DMAC.
 
+endif
+
 config S5P_DEV_MFC
 	bool
 	help
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 07/14] ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size
  2014-06-13 16:01 ` Arnd Bergmann
                   ` (6 preceding siblings ...)
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

From: Jason Cooper <jason@lakedaemon.net>

The OpenBlocks AX3-4 has a non-DT bootloader.  It also comes with 1GB of
soldered on RAM, and a DIMM slot for expansion.

Unfortunately, atags_to_fdt() doesn't work in big-endian mode, so we see
the following failure when attempting to boot a big-endian kernel:

  686 slab pages
  17 pages shared
  0 pages swap cached
  [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name
  Kernel panic - not syncing: Out of memory and no killable processes...

  CPU: 1 PID: 351 Comm: kworker/u4:0 Not tainted 3.15.0-rc8-next-20140603 #1
  [<c0215a54>] (unwind_backtrace) from [<c021160c>] (show_stack+0x10/0x14)
  [<c021160c>] (show_stack) from [<c0802500>] (dump_stack+0x78/0x94)
  [<c0802500>] (dump_stack) from [<c0800068>] (panic+0x90/0x21c)
  [<c0800068>] (panic) from [<c02b5704>] (out_of_memory+0x320/0x340)
  [<c02b5704>] (out_of_memory) from [<c02b93a0>] (__alloc_pages_nodemask+0x874/0x930)
  [<c02b93a0>] (__alloc_pages_nodemask) from [<c02d446c>] (handle_mm_fault+0x744/0x96c)
  [<c02d446c>] (handle_mm_fault) from [<c02cf250>] (__get_user_pages+0xd0/0x4c0)
  [<c02cf250>] (__get_user_pages) from [<c02f3598>] (get_arg_page+0x54/0xbc)
  [<c02f3598>] (get_arg_page) from [<c02f3878>] (copy_strings+0x278/0x29c)
  [<c02f3878>] (copy_strings) from [<c02f38bc>] (copy_strings_kernel+0x20/0x28)
  [<c02f38bc>] (copy_strings_kernel) from [<c02f4f1c>] (do_execve+0x3a8/0x4c8)
  [<c02f4f1c>] (do_execve) from [<c025ac10>] (____call_usermodehelper+0x15c/0x194)
  [<c025ac10>] (____call_usermodehelper) from [<c020e9b8>] (ret_from_fork+0x14/0x3c)
  CPU0: stopping
  CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.15.0-rc8-next-20140603 #1
  [<c0215a54>] (unwind_backtrace) from [<c021160c>] (show_stack+0x10/0x14)
  [<c021160c>] (show_stack) from [<c0802500>] (dump_stack+0x78/0x94)
  [<c0802500>] (dump_stack) from [<c021429c>] (handle_IPI+0x138/0x174)
  [<c021429c>] (handle_IPI) from [<c02087f0>] (armada_370_xp_handle_irq+0xb0/0xcc)
  [<c02087f0>] (armada_370_xp_handle_irq) from [<c0212100>] (__irq_svc+0x40/0x50)
  Exception stack(0xc0b6bf68 to 0xc0b6bfb0)
  bf60:                   e9fad598 00000000 00f509a3 00000000 c0b6a000 c0b724c4
  bf80: c0b72458 c0b6a000 00000000 00000000 c0b66da0 c0b6a000 00000000 c0b6bfb0
  bfa0: c027bb94 c027bb24 60000313 ffffffff
  [<c0212100>] (__irq_svc) from [<c027bb24>] (cpu_startup_entry+0x54/0x214)
  [<c027bb24>] (cpu_startup_entry) from [<c0ac5b30>] (start_kernel+0x318/0x37c)
  [<c0ac5b30>] (start_kernel) from [<00208078>] (0x208078)
  ---[ end Kernel panic - not syncing: Out of memory and no killable processes...

A similar failure will also occur if ARM_ATAG_DTB_COMPAT isn't selected.

Fix this by setting a sane default (1 GB) in the dts file.

Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Tested-by: Kevin Hilman <khilman@linaro.org>
Cc: <stable@vger.kernel.org> #v3.13+
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
index e5c6a04..4e5a59e 100644
--- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
+++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
@@ -25,7 +25,7 @@
 
 	memory {
 		device_type = "memory";
-		reg = <0 0x00000000 0 0xC0000000>; /* 3 GB */
+		reg = <0 0x00000000 0 0x40000000>; /* 1 GB soldered on */
 	};
 
 	soc {
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 08/14] ARM: integrator: fix section mismatch problem
  2014-06-13 16:01 ` Arnd Bergmann
                   ` (7 preceding siblings ...)
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

From: Linus Walleij <linus.walleij@linaro.org>

This addresses a section mismatch problem in the IM-PD1
driver in the Integrator/AP.

The IM-PD1 contains a VIC interrupt controller and therefore
the driver calls vic_init_cascaded() which is marked __init as
irqchips are simply not hot-pluggable and specifically the VIC
is assumed to initiate only on boot.

However the module driver model of the Integrator LM bus
assumes that logic tile drivers can be probed at runtime. This
is not really the case for IM-PD1: these tiles are detected at
boot and they cannot be plugged into a running system. Before
this patch it is of course possible to modprobe them later.

By first forcing the IM-PD1 to bool we make sure this driver
gets compiled into the kernel, and we know it will be probed
only at boot time when the tiles are detected, so we can tag
its probe function __init_refok as we know it won't be called
after boot now, and the section mismatch problem goes away.

As a side effect, sysfs binding from userspace becomes
impossible, so we tag the driver to suppress the bind/unbind
sysfs attributes.

Cc: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/mach-integrator/Kconfig |  2 +-
 arch/arm/mach-integrator/impd1.c | 12 +++++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig
index ba43321..64f8e25 100644
--- a/arch/arm/mach-integrator/Kconfig
+++ b/arch/arm/mach-integrator/Kconfig
@@ -28,7 +28,7 @@ config ARCH_CINTEGRATOR
 	bool
 
 config INTEGRATOR_IMPD1
-	tristate "Include support for Integrator/IM-PD1"
+	bool "Include support for Integrator/IM-PD1"
 	depends on ARCH_INTEGRATOR_AP
 	select ARCH_REQUIRE_GPIOLIB
 	select ARM_VIC
diff --git a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c
index 0e870ea..3ce8807 100644
--- a/arch/arm/mach-integrator/impd1.c
+++ b/arch/arm/mach-integrator/impd1.c
@@ -308,7 +308,12 @@ static struct impd1_device impd1_devs[] = {
  */
 #define IMPD1_VALID_IRQS 0x00000bffU
 
-static int __init impd1_probe(struct lm_device *dev)
+/*
+ * As this module is bool, it is OK to have this as __init_refok() - no
+ * probe calls will be done after the initial system bootup, as devices
+ * are discovered as part of the machine startup.
+ */
+static int __init_refok impd1_probe(struct lm_device *dev)
 {
 	struct impd1_module *impd1;
 	int irq_base;
@@ -397,6 +402,11 @@ static void impd1_remove(struct lm_device *dev)
 static struct lm_driver impd1_driver = {
 	.drv = {
 		.name	= "impd1",
+		/*
+		 * As we're dropping the probe() function, suppress driver
+		 * binding from sysfs.
+		 */
+		.suppress_bind_attrs = true,
 	},
 	.probe		= impd1_probe,
 	.remove		= impd1_remove,
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 09/14] ARM: Remove ARCH_HAS_CPUFREQ config option
  2014-06-13 16:01 ` Arnd Bergmann
                   ` (8 preceding siblings ...)
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

From: Stephen Boyd <sboyd@codeaurora.org>

This config exists entirely to hide the cpufreq menu from the
kernel configuration unless a platform has selected it. Nothing
is actually built if this config is 'Y' and it just leads to more
patches that add a select under a platform Kconfig so that some
other CPUfreq option can be chosen. Let's remove the option so
that we can always enable CPUfreq drivers on ARM platforms.

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/Kconfig               | 17 -----------------
 arch/arm/mach-davinci/Kconfig  |  1 -
 arch/arm/mach-exynos/Kconfig   |  1 -
 arch/arm/mach-highbank/Kconfig |  1 -
 arch/arm/mach-imx/Kconfig      |  3 ---
 arch/arm/mach-mvebu/Kconfig    |  1 -
 arch/arm/mach-omap2/Kconfig    |  1 -
 arch/arm/mach-shmobile/Kconfig |  2 --
 arch/arm/mach-spear/Kconfig    |  1 -
 arch/arm/mach-tegra/Kconfig    |  1 -
 arch/arm/mach-ux500/Kconfig    |  1 -
 arch/arm/mach-vexpress/Kconfig |  1 -
 arch/arm/mach-vt8500/Kconfig   |  1 -
 arch/arm/mach-zynq/Kconfig     |  1 -
 14 files changed, 33 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 87b63fd..9b8f528 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -175,13 +175,6 @@ config ARCH_HAS_ILOG2_U32
 config ARCH_HAS_ILOG2_U64
 	bool
 
-config ARCH_HAS_CPUFREQ
-	bool
-	help
-	  Internal node to signify that the ARCH has CPUFREQ support
-	  and that the relevant menu configurations are displayed for
-	  it.
-
 config ARCH_HAS_BANDGAP
 	bool
 
@@ -318,7 +311,6 @@ config ARCH_MULTIPLATFORM
 
 config ARCH_INTEGRATOR
 	bool "ARM Ltd. Integrator family"
-	select ARCH_HAS_CPUFREQ
 	select ARM_AMBA
 	select ARM_PATCH_PHYS_VIRT
 	select AUTO_ZRELADDR
@@ -538,7 +530,6 @@ config ARCH_DOVE
 
 config ARCH_KIRKWOOD
 	bool "Marvell Kirkwood"
-	select ARCH_HAS_CPUFREQ
 	select ARCH_REQUIRE_GPIOLIB
 	select CPU_FEROCEON
 	select GENERIC_CLOCKEVENTS
@@ -637,7 +628,6 @@ config ARCH_LPC32XX
 config ARCH_PXA
 	bool "PXA2xx/PXA3xx-based"
 	depends on MMU
-	select ARCH_HAS_CPUFREQ
 	select ARCH_MTD_XIP
 	select ARCH_REQUIRE_GPIOLIB
 	select ARM_CPU_SUSPEND if PM
@@ -707,7 +697,6 @@ config ARCH_RPC
 
 config ARCH_SA1100
 	bool "SA1100-based"
-	select ARCH_HAS_CPUFREQ
 	select ARCH_MTD_XIP
 	select ARCH_REQUIRE_GPIOLIB
 	select ARCH_SPARSEMEM_ENABLE
@@ -725,7 +714,6 @@ config ARCH_SA1100
 
 config ARCH_S3C24XX
 	bool "Samsung S3C24XX SoCs"
-	select ARCH_HAS_CPUFREQ
 	select ARCH_REQUIRE_GPIOLIB
 	select ATAGS
 	select CLKDEV_LOOKUP
@@ -746,7 +734,6 @@ config ARCH_S3C24XX
 
 config ARCH_S3C64XX
 	bool "Samsung S3C64XX"
-	select ARCH_HAS_CPUFREQ
 	select ARCH_REQUIRE_GPIOLIB
 	select ARM_AMBA
 	select ARM_VIC
@@ -809,7 +796,6 @@ config ARCH_S5PC100
 
 config ARCH_S5PV210
 	bool "Samsung S5PV210/S5PC110"
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_HOLES_MEMORYMODEL
 	select ARCH_SPARSEMEM_ENABLE
 	select ATAGS
@@ -845,7 +831,6 @@ config ARCH_DAVINCI
 config ARCH_OMAP1
 	bool "TI OMAP1"
 	depends on MMU
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_HOLES_MEMORYMODEL
 	select ARCH_OMAP
 	select ARCH_REQUIRE_GPIOLIB
@@ -2109,9 +2094,7 @@ endmenu
 
 menu "CPU Power Management"
 
-if ARCH_HAS_CPUFREQ
 source "drivers/cpufreq/Kconfig"
-endif
 
 source "drivers/cpuidle/Kconfig"
 
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig
index db18ef8..584e8d4 100644
--- a/arch/arm/mach-davinci/Kconfig
+++ b/arch/arm/mach-davinci/Kconfig
@@ -39,7 +39,6 @@ config ARCH_DAVINCI_DA830
 config ARCH_DAVINCI_DA850
 	bool "DA850/OMAP-L138/AM18x based system"
 	select ARCH_DAVINCI_DA8XX
-	select ARCH_HAS_CPUFREQ
 	select CP_INTC
 
 config ARCH_DAVINCI_DA8XX
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index d58995c9..845031b 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -10,7 +10,6 @@
 config ARCH_EXYNOS
 	bool "Samsung EXYNOS" if ARCH_MULTI_V7
 	select ARCH_HAS_BANDGAP
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_HOLES_MEMORYMODEL
 	select ARCH_REQUIRE_GPIOLIB
 	select ARM_AMBA
diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig
index 830b76e..a5960e2 100644
--- a/arch/arm/mach-highbank/Kconfig
+++ b/arch/arm/mach-highbank/Kconfig
@@ -1,7 +1,6 @@
 config ARCH_HIGHBANK
 	bool "Calxeda ECX-1000/2000 (Highbank/Midway)" if ARCH_MULTI_V7
 	select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_HOLES_MEMORYMODEL
 	select ARCH_HAS_OPP
 	select ARCH_SUPPORTS_BIG_ENDIAN
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 8d42eab..b232340 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -1,6 +1,5 @@
 config ARCH_MXC
 	bool "Freescale i.MX family" if ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_OPP
 	select ARCH_REQUIRE_GPIOLIB
 	select ARM_CPU_SUSPEND if PM
@@ -99,7 +98,6 @@ config SOC_IMX25
 
 config SOC_IMX27
 	bool
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_OPP
 	select CPU_ARM926T
 	select IMX_HAVE_IOMUX_V1
@@ -124,7 +122,6 @@ config SOC_IMX35
 
 config SOC_IMX5
 	bool
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_OPP
 	select ARCH_MXC_IOMUX_V3
 	select MXC_TZIC
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index bcfe094..74e1ff2 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -85,7 +85,6 @@ config MACH_DOVE
 
 config MACH_KIRKWOOD
 	bool "Marvell Kirkwood boards" if ARCH_MULTI_V5
-	select ARCH_HAS_CPUFREQ
 	select ARCH_REQUIRE_GPIOLIB
 	select CPU_FEROCEON
 	select KIRKWOOD_CLK
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 2085b3d..0006012 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -79,7 +79,6 @@ config SOC_DRA7XX
 config ARCH_OMAP2PLUS
 	bool
 	select ARCH_HAS_BANDGAP
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_HOLES_MEMORYMODEL
 	select ARCH_OMAP
 	select ARCH_REQUIRE_GPIOLIB
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
index dbd954e..270e5ca 100644
--- a/arch/arm/mach-shmobile/Kconfig
+++ b/arch/arm/mach-shmobile/Kconfig
@@ -85,7 +85,6 @@ config ARCH_R8A73A4
 	select CPU_V7
 	select SH_CLK_CPG
 	select RENESAS_IRQC
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_OPP
 	select SYS_SUPPORTS_SH_CMT
 	select SYS_SUPPORTS_SH_TMU
@@ -264,7 +263,6 @@ config MACH_KOELSCH
 config MACH_KZM9G
 	bool "KZM-A9-GT board"
 	depends on ARCH_SH73A0
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_OPP
 	select ARCH_REQUIRE_GPIOLIB
 	select REGULATOR_FIXED_VOLTAGE if REGULATOR
diff --git a/arch/arm/mach-spear/Kconfig b/arch/arm/mach-spear/Kconfig
index 0786249..90df202 100644
--- a/arch/arm/mach-spear/Kconfig
+++ b/arch/arm/mach-spear/Kconfig
@@ -14,7 +14,6 @@ if PLAT_SPEAR
 config ARCH_SPEAR13XX
 	bool "ST SPEAr13xx"
 	depends on ARCH_MULTI_V7 || PLAT_SPEAR_SINGLE
-	select ARCH_HAS_CPUFREQ
 	select ARM_GIC
 	select GPIO_SPEAR_SPICS
 	select HAVE_ARM_SCU if SMP
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index e16999e..8981ed4 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -1,6 +1,5 @@
 config ARCH_TEGRA
 	bool "NVIDIA Tegra" if ARCH_MULTI_V7
-	select ARCH_HAS_CPUFREQ
 	select ARCH_REQUIRE_GPIOLIB
 	select ARCH_SUPPORTS_TRUSTED_FOUNDATIONS
 	select ARM_GIC
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index b41a42d..9b93144 100644
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -3,7 +3,6 @@ config ARCH_U8500
 	depends on MMU
 	select AB8500_CORE
 	select ABX500_CORE
-	select ARCH_HAS_CPUFREQ
 	select ARCH_REQUIRE_GPIOLIB
 	select ARM_AMBA
 	select ARM_ERRATA_754322
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index 90249cf..2e2e8bb 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -65,7 +65,6 @@ config ARCH_VEXPRESS_DCSCB
 
 config ARCH_VEXPRESS_SPC
 	bool "Versatile Express Serial Power Controller (SPC)"
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_OPP
 	select PM_OPP
 	help
diff --git a/arch/arm/mach-vt8500/Kconfig b/arch/arm/mach-vt8500/Kconfig
index 08f56a4..aaaa24f 100644
--- a/arch/arm/mach-vt8500/Kconfig
+++ b/arch/arm/mach-vt8500/Kconfig
@@ -1,6 +1,5 @@
 config ARCH_VT8500
 	bool
-	select ARCH_HAS_CPUFREQ
 	select ARCH_REQUIRE_GPIOLIB
 	select CLKDEV_LOOKUP
 	select VT8500_TIMER
diff --git a/arch/arm/mach-zynq/Kconfig b/arch/arm/mach-zynq/Kconfig
index 573e0db..0c164f8 100644
--- a/arch/arm/mach-zynq/Kconfig
+++ b/arch/arm/mach-zynq/Kconfig
@@ -1,6 +1,5 @@
 config ARCH_ZYNQ
 	bool "Xilinx Zynq ARM Cortex A9 Platform" if ARCH_MULTI_V7
-	select ARCH_HAS_CPUFREQ
 	select ARCH_HAS_OPP
 	select ARCH_SUPPORTS_BIG_ENDIAN
 	select ARM_AMBA
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 10/14] misc: vexpress: fix error handling vexpress_syscfg_regmap_init()
  2014-06-13 16:01 ` Arnd Bergmann
                   ` (9 preceding siblings ...)
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

From: Dan Carpenter <dan.carpenter@oracle.com>

This function should be returning an ERR_PTR() on failure instead of
NULL.  Also there is a use after free bug if regmap_init() fails because
we free "func" and then dereference doing the return.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Pawel Moll <pawel.moll@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/misc/vexpress-syscfg.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/misc/vexpress-syscfg.c b/drivers/misc/vexpress-syscfg.c
index 73068e5..3250fc1 100644
--- a/drivers/misc/vexpress-syscfg.c
+++ b/drivers/misc/vexpress-syscfg.c
@@ -199,7 +199,7 @@ static struct regmap *vexpress_syscfg_regmap_init(struct device *dev,
 	func = kzalloc(sizeof(*func) + sizeof(*func->template) * num,
 			GFP_KERNEL);
 	if (!func)
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 
 	func->syscfg = syscfg;
 	func->num_templates = num;
@@ -231,10 +231,14 @@ static struct regmap *vexpress_syscfg_regmap_init(struct device *dev,
 	func->regmap = regmap_init(dev, NULL, func,
 			&vexpress_syscfg_regmap_config);
 
-	if (IS_ERR(func->regmap))
+	if (IS_ERR(func->regmap)) {
+		void *err = func->regmap;
+
 		kfree(func);
-	else
-		list_add(&func->list, &syscfg->funcs);
+		return err;
+	}
+
+	list_add(&func->list, &syscfg->funcs);
 
 	return func->regmap;
 }
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 11/14] ARM: exynos: cleanup kconfig option display
  2014-06-13 16:01 ` Arnd Bergmann
@ 2014-06-13 16:01   ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: arm, Rob Herring, Ben Dooks, Kukjin Kim, linux-samsung-soc,
	Arnd Bergmann

From: Rob Herring <robh@kernel.org>

The addition of Exynos to multi-platform configs creates a mess of config
options with options appearing before the Exynos config option. This is
due to arch/arm/plat-samsung/Kconfig being included out of order with the
other Samsung platform kconfig files. Reorder the kconfig files and move
all the options into a sub-menu. Some of the options are dead, so remove
those as well.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Ben Dooks <ben-linux@fluff.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: linux-samsung-soc@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/Kconfig              |  3 +--
 arch/arm/plat-samsung/Kconfig | 17 +++--------------
 2 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9b8f528..245058b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -994,8 +994,6 @@ source "arch/arm/mach-rockchip/Kconfig"
 
 source "arch/arm/mach-sa1100/Kconfig"
 
-source "arch/arm/plat-samsung/Kconfig"
-
 source "arch/arm/mach-socfpga/Kconfig"
 
 source "arch/arm/mach-spear/Kconfig"
@@ -1013,6 +1011,7 @@ source "arch/arm/mach-s5pc100/Kconfig"
 source "arch/arm/mach-s5pv210/Kconfig"
 
 source "arch/arm/mach-exynos/Kconfig"
+source "arch/arm/plat-samsung/Kconfig"
 
 source "arch/arm/mach-shmobile/Kconfig"
 
diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index 91911e4..301b892 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -35,27 +35,15 @@ config SAMSUNG_PM
 	  Base platform power management code for samsung code
 
 if PLAT_SAMSUNG
+menu "Samsung Common options"
 
 # boot configurations
 
 comment "Boot options"
 
-config S3C_BOOT_ERROR_RESET
-	bool "S3C Reboot on decompression error"
-	help
-	  Say y here to use the watchdog to reset the system if the
-	  kernel decompressor detects an error during decompression.
-
-config S3C_BOOT_UART_FORCE_FIFO
-       bool "Force UART FIFO on during boot process"
-       default y
-       help
-         Say Y here to force the UART FIFOs on during the kernel
-	 uncompressor
-
-
 config S3C_LOWLEVEL_UART_PORT
 	int "S3C UART to use for low-level messages"
+	depends on ARCH_S3C64XX
 	default 0
 	help
 	  Choice of which UART port to use for the low-level messages,
@@ -502,4 +490,5 @@ config DEBUG_S3C_UART
 	default "2" if DEBUG_S3C_UART2
 	default "3" if DEBUG_S3C_UART3
 
+endmenu
 endif
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 11/14] ARM: exynos: cleanup kconfig option display
@ 2014-06-13 16:01   ` Arnd Bergmann
  0 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

From: Rob Herring <robh@kernel.org>

The addition of Exynos to multi-platform configs creates a mess of config
options with options appearing before the Exynos config option. This is
due to arch/arm/plat-samsung/Kconfig being included out of order with the
other Samsung platform kconfig files. Reorder the kconfig files and move
all the options into a sub-menu. Some of the options are dead, so remove
those as well.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Ben Dooks <ben-linux@fluff.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: linux-samsung-soc at vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/Kconfig              |  3 +--
 arch/arm/plat-samsung/Kconfig | 17 +++--------------
 2 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9b8f528..245058b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -994,8 +994,6 @@ source "arch/arm/mach-rockchip/Kconfig"
 
 source "arch/arm/mach-sa1100/Kconfig"
 
-source "arch/arm/plat-samsung/Kconfig"
-
 source "arch/arm/mach-socfpga/Kconfig"
 
 source "arch/arm/mach-spear/Kconfig"
@@ -1013,6 +1011,7 @@ source "arch/arm/mach-s5pc100/Kconfig"
 source "arch/arm/mach-s5pv210/Kconfig"
 
 source "arch/arm/mach-exynos/Kconfig"
+source "arch/arm/plat-samsung/Kconfig"
 
 source "arch/arm/mach-shmobile/Kconfig"
 
diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index 91911e4..301b892 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -35,27 +35,15 @@ config SAMSUNG_PM
 	  Base platform power management code for samsung code
 
 if PLAT_SAMSUNG
+menu "Samsung Common options"
 
 # boot configurations
 
 comment "Boot options"
 
-config S3C_BOOT_ERROR_RESET
-	bool "S3C Reboot on decompression error"
-	help
-	  Say y here to use the watchdog to reset the system if the
-	  kernel decompressor detects an error during decompression.
-
-config S3C_BOOT_UART_FORCE_FIFO
-       bool "Force UART FIFO on during boot process"
-       default y
-       help
-         Say Y here to force the UART FIFOs on during the kernel
-	 uncompressor
-
-
 config S3C_LOWLEVEL_UART_PORT
 	int "S3C UART to use for low-level messages"
+	depends on ARCH_S3C64XX
 	default 0
 	help
 	  Choice of which UART port to use for the low-level messages,
@@ -502,4 +490,5 @@ config DEBUG_S3C_UART
 	default "2" if DEBUG_S3C_UART2
 	default "3" if DEBUG_S3C_UART3
 
+endmenu
 endif
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 12/14] ARM: use menuconfig for sub-arch menus
  2014-06-13 16:01 ` Arnd Bergmann
                   ` (11 preceding siblings ...)
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

From: Rob Herring <robh@kernel.org>

The System Type menu is getting quite long with platforms and is
inconsistent in handling of sub-arch specific options. Tidy up the menu
by making platform options a menuconfig entry containing any platform
specific config items.

Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/mach-bcm/Kconfig      | 7 +++----
 arch/arm/mach-berlin/Kconfig   | 6 +-----
 arch/arm/mach-cns3xxx/Kconfig  | 7 +++----
 arch/arm/mach-exynos/Kconfig   | 6 +-----
 arch/arm/mach-imx/Kconfig      | 7 +++----
 arch/arm/mach-moxart/Kconfig   | 2 +-
 arch/arm/mach-mvebu/Kconfig    | 6 +-----
 arch/arm/mach-nomadik/Kconfig  | 4 +---
 arch/arm/mach-omap2/Kconfig    | 9 ++++++---
 arch/arm/mach-prima2/Kconfig   | 6 ++----
 arch/arm/mach-qcom/Kconfig     | 6 +-----
 arch/arm/mach-shmobile/Kconfig | 4 ++--
 arch/arm/mach-tegra/Kconfig    | 7 +++----
 arch/arm/mach-u300/Kconfig     | 6 +-----
 arch/arm/mach-ux500/Kconfig    | 6 +-----
 arch/arm/mach-vexpress/Kconfig | 7 +++----
 16 files changed, 33 insertions(+), 63 deletions(-)

diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index 9bc6db1..41c8391 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -1,10 +1,9 @@
-config ARCH_BCM
+menuconfig ARCH_BCM
 	bool "Broadcom SoC Support" if ARCH_MULTI_V6_V7
 	help
 	  This enables support for Broadcom ARM based SoC chips
 
-menu "Broadcom SoC Selection"
-	depends on ARCH_BCM
+if ARCH_BCM
 
 config ARCH_BCM_MOBILE
 	bool "Broadcom Mobile SoC Support" if ARCH_MULTI_V7
@@ -88,4 +87,4 @@ config ARCH_BCM_5301X
 	  different SoC or with the older BCM47XX and BCM53XX based
 	  network SoC using a MIPS CPU, they are supported by arch/mips/bcm47xx
 
-endmenu
+endif
diff --git a/arch/arm/mach-berlin/Kconfig b/arch/arm/mach-berlin/Kconfig
index 101e0f3..2631cfc 100644
--- a/arch/arm/mach-berlin/Kconfig
+++ b/arch/arm/mach-berlin/Kconfig
@@ -1,4 +1,4 @@
-config ARCH_BERLIN
+menuconfig ARCH_BERLIN
 	bool "Marvell Berlin SoCs" if ARCH_MULTI_V7
 	select ARCH_REQUIRE_GPIOLIB
 	select ARM_GIC
@@ -9,8 +9,6 @@ config ARCH_BERLIN
 
 if ARCH_BERLIN
 
-menu "Marvell Berlin SoC variants"
-
 config MACH_BERLIN_BG2
 	bool "Marvell Armada 1500 (BG2)"
 	select CACHE_L2X0
@@ -30,6 +28,4 @@ config MACH_BERLIN_BG2Q
 	select HAVE_ARM_TWD if SMP
 	select PINCTRL_BERLIN_BG2Q
 
-endmenu
-
 endif
diff --git a/arch/arm/mach-cns3xxx/Kconfig b/arch/arm/mach-cns3xxx/Kconfig
index 66838f4..3c22a19 100644
--- a/arch/arm/mach-cns3xxx/Kconfig
+++ b/arch/arm/mach-cns3xxx/Kconfig
@@ -1,12 +1,11 @@
-config ARCH_CNS3XXX
+menuconfig ARCH_CNS3XXX
 	bool "Cavium Networks CNS3XXX family" if ARCH_MULTI_V6
 	select ARM_GIC
 	select PCI_DOMAINS if PCI
 	help
 	  Support for Cavium Networks CNS3XXX platform.
 
-menu "CNS3XXX platform type"
-	depends on ARCH_CNS3XXX
+if ARCH_CNS3XXX
 
 config MACH_CNS3420VB
 	bool "Support for CNS3420 Validation Board"
@@ -17,4 +16,4 @@ config MACH_CNS3420VB
 	  This is a platform with an on-board ARM11 MPCore and has support
 	  for USB, USB-OTG, MMC/SD/SDIO, SATA, PCI-E, etc.
 
-endmenu
+endif
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 845031b..8f9b66c 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -7,7 +7,7 @@
 
 # Configuration options for the EXYNOS4
 
-config ARCH_EXYNOS
+menuconfig ARCH_EXYNOS
 	bool "Samsung EXYNOS" if ARCH_MULTI_V7
 	select ARCH_HAS_BANDGAP
 	select ARCH_HAS_HOLES_MEMORYMODEL
@@ -29,8 +29,6 @@ config ARCH_EXYNOS
 
 if ARCH_EXYNOS
 
-menu "SAMSUNG EXYNOS SoCs Support"
-
 config ARCH_EXYNOS3
 	bool "SAMSUNG EXYNOS3"
 	select ARM_CPU_SUSPEND if PM
@@ -117,8 +115,6 @@ config SOC_EXYNOS5800
 	default y
 	depends on SOC_EXYNOS5420
 
-endmenu
-
 config EXYNOS5420_MCPM
 	bool "Exynos5420 Multi-Cluster PM support"
 	depends on MCPM && SOC_EXYNOS5420
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index b232340..28fa2fa 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -1,4 +1,4 @@
-config ARCH_MXC
+menuconfig ARCH_MXC
 	bool "Freescale i.MX family" if ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7
 	select ARCH_HAS_OPP
 	select ARCH_REQUIRE_GPIOLIB
@@ -12,8 +12,7 @@ config ARCH_MXC
 	help
 	  Support for Freescale MXC/iMX-based family of processors
 
-menu "Freescale i.MX support"
-	depends on ARCH_MXC
+if ARCH_MXC
 
 config MXC_TZIC
 	bool
@@ -783,4 +782,4 @@ endif
 
 source "arch/arm/mach-imx/devices/Kconfig"
 
-endmenu
+endif
diff --git a/arch/arm/mach-moxart/Kconfig b/arch/arm/mach-moxart/Kconfig
index 82a4ba8..f49328c 100644
--- a/arch/arm/mach-moxart/Kconfig
+++ b/arch/arm/mach-moxart/Kconfig
@@ -1,4 +1,4 @@
-config ARCH_MOXART
+menuconfig ARCH_MOXART
 	bool "MOXA ART SoC" if ARCH_MULTI_V4
 	select CPU_FA526
 	select ARM_DMA_MEM_BUFFERABLE
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 74e1ff2..3f304a5 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -1,4 +1,4 @@
-config ARCH_MVEBU
+menuconfig ARCH_MVEBU
 	bool "Marvell Engineering Business Unit (MVEBU) SoCs" if (ARCH_MULTI_V7 || ARCH_MULTI_V5)
 	select ARCH_SUPPORTS_BIG_ENDIAN
 	select CLKSRC_MMIO
@@ -13,8 +13,6 @@ config ARCH_MVEBU
 
 if ARCH_MVEBU
 
-menu "Marvell EBU SoC variants"
-
 config MACH_MVEBU_V7
 	bool
 	select ARMADA_370_XP_TIMER
@@ -97,6 +95,4 @@ config MACH_KIRKWOOD
 	  Say 'Y' here if you want your kernel to support boards based
 	  on the Marvell Kirkwood device tree.
 
-endmenu
-
 endif
diff --git a/arch/arm/mach-nomadik/Kconfig b/arch/arm/mach-nomadik/Kconfig
index 486d301..3c61096 100644
--- a/arch/arm/mach-nomadik/Kconfig
+++ b/arch/arm/mach-nomadik/Kconfig
@@ -1,4 +1,4 @@
-config ARCH_NOMADIK
+menuconfig ARCH_NOMADIK
 	bool "ST-Ericsson Nomadik"
 	depends on ARCH_MULTI_V5
 	select ARCH_REQUIRE_GPIOLIB
@@ -15,7 +15,6 @@ config ARCH_NOMADIK
 	  Support for the Nomadik platform by ST-Ericsson
 
 if ARCH_NOMADIK
-menu "Nomadik boards"
 
 config MACH_NOMADIK_8815NHK
 	bool "ST 8815 Nomadik Hardware Kit (evaluation board)"
@@ -24,7 +23,6 @@ config MACH_NOMADIK_8815NHK
 	select I2C_ALGOBIT
 	select I2C_NOMADIK
 
-endmenu
 endif
 
 config NOMADIK_8815
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 0006012..4e81860 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -1,5 +1,7 @@
-config ARCH_OMAP
-	bool
+menuconfig ARCH_OMAP
+	bool "TI OMAP/AM/DRA Based" if (ARCH_MULTI_V6 || ARCH_MULTI_V7)
+
+if ARCH_OMAP
 
 config ARCH_OMAP2
 	bool "TI OMAP2"
@@ -80,7 +82,6 @@ config ARCH_OMAP2PLUS
 	bool
 	select ARCH_HAS_BANDGAP
 	select ARCH_HAS_HOLES_MEMORYMODEL
-	select ARCH_OMAP
 	select ARCH_REQUIRE_GPIOLIB
 	select CLKSRC_MMIO
 	select GENERIC_IRQ_CHIP
@@ -341,3 +342,5 @@ config OMAP4_ERRATA_I688
 endmenu
 
 endif
+
+endif
diff --git a/arch/arm/mach-prima2/Kconfig b/arch/arm/mach-prima2/Kconfig
index e4e505f..042f693 100644
--- a/arch/arm/mach-prima2/Kconfig
+++ b/arch/arm/mach-prima2/Kconfig
@@ -1,4 +1,4 @@
-config ARCH_SIRF
+menuconfig ARCH_SIRF
 	bool "CSR SiRF" if ARCH_MULTI_V7
 	select ARCH_HAS_RESET_CONTROLLER
 	select ARCH_REQUIRE_GPIOLIB
@@ -11,7 +11,7 @@ config ARCH_SIRF
 
 if ARCH_SIRF
 
-menu "CSR SiRF atlas6/primaII/Marco/Polo Specific Features"
+comment "CSR SiRF atlas6/primaII/Marco/Polo Specific Features"
 
 config ARCH_ATLAS6
 	bool "CSR SiRFSoC ATLAS6 ARM Cortex A9 Platform"
@@ -37,8 +37,6 @@ config ARCH_MARCO
 	help
           Support for CSR SiRFSoC ARM Cortex A9 Platform
 
-endmenu
-
 config SIRF_IRQ
 	bool
 
diff --git a/arch/arm/mach-qcom/Kconfig b/arch/arm/mach-qcom/Kconfig
index fd2b99d..ee5697b 100644
--- a/arch/arm/mach-qcom/Kconfig
+++ b/arch/arm/mach-qcom/Kconfig
@@ -1,4 +1,4 @@
-config ARCH_QCOM
+menuconfig ARCH_QCOM
 	bool "Qualcomm Support" if ARCH_MULTI_V7
 	select ARCH_REQUIRE_GPIOLIB
 	select ARM_GIC
@@ -11,8 +11,6 @@ config ARCH_QCOM
 
 if ARCH_QCOM
 
-menu "Qualcomm SoC Selection"
-
 config ARCH_MSM8X60
 	bool "Enable support for MSM8X60"
 	select CLKSRC_QCOM
@@ -25,8 +23,6 @@ config ARCH_MSM8974
 	bool "Enable support for MSM8974"
 	select HAVE_ARM_ARCH_TIMER
 
-endmenu
-
 config QCOM_SCM
 	bool
 
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
index 270e5ca..7980730 100644
--- a/arch/arm/mach-shmobile/Kconfig
+++ b/arch/arm/mach-shmobile/Kconfig
@@ -1,7 +1,7 @@
 config ARCH_SHMOBILE
 	bool
 
-config ARCH_SHMOBILE_MULTI
+menuconfig ARCH_SHMOBILE_MULTI
 	bool "Renesas ARM SoCs" if ARCH_MULTI_V7
 	depends on MMU
 	select ARCH_SHMOBILE
@@ -15,7 +15,7 @@ config ARCH_SHMOBILE_MULTI
 
 if ARCH_SHMOBILE_MULTI
 
-comment "Renesas ARM SoCs System Type"
+#comment "Renesas ARM SoCs System Type"
 
 config ARCH_EMEV2
 	bool "Emma Mobile EV2"
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 8981ed4..0953996 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -1,4 +1,4 @@
-config ARCH_TEGRA
+menuconfig ARCH_TEGRA
 	bool "NVIDIA Tegra" if ARCH_MULTI_V7
 	select ARCH_REQUIRE_GPIOLIB
 	select ARCH_SUPPORTS_TRUSTED_FOUNDATIONS
@@ -15,8 +15,7 @@ config ARCH_TEGRA
 	help
 	  This enables support for NVIDIA Tegra based systems.
 
-menu "NVIDIA Tegra options"
-	depends on ARCH_TEGRA
+if ARCH_TEGRA
 
 config ARCH_TEGRA_2x_SOC
 	bool "Enable support for Tegra20 family"
@@ -68,4 +67,4 @@ config TEGRA_AHB
 	  which controls AHB bus master arbitration and some
 	  performance parameters(priority, prefech size).
 
-endmenu
+endif
diff --git a/arch/arm/mach-u300/Kconfig b/arch/arm/mach-u300/Kconfig
index e3a96d7..bc51a71 100644
--- a/arch/arm/mach-u300/Kconfig
+++ b/arch/arm/mach-u300/Kconfig
@@ -1,4 +1,4 @@
-config ARCH_U300
+menuconfig ARCH_U300
 	bool "ST-Ericsson U300 Series" if ARCH_MULTI_V5
 	depends on MMU
 	select ARCH_REQUIRE_GPIOLIB
@@ -16,8 +16,6 @@ config ARCH_U300
 
 if ARCH_U300
 
-menu "ST-Ericsson AB U300/U335 Platform"
-
 config MACH_U300
 	depends on ARCH_U300
 	bool "U300"
@@ -43,6 +41,4 @@ config MACH_U300_SPIDUMMY
 		you don't need it. Selecting this will activate the
 		SPI framework and ARM PL022 support.
 
-endmenu
-
 endif
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index 9b93144..5be7c45 100644
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -1,4 +1,4 @@
-config ARCH_U8500
+menuconfig ARCH_U8500
 	bool "ST-Ericsson U8500 Series" if ARCH_MULTI_V7
 	depends on MMU
 	select AB8500_CORE
@@ -33,8 +33,6 @@ config UX500_SOC_DB8500
 	select REGULATOR
 	select REGULATOR_DB8500_PRCMU
 
-menu "Ux500 target platform (boards)"
-
 config MACH_MOP500
 	bool "U8500 Development platform, MOP500 versions"
 	select I2C
@@ -67,8 +65,6 @@ config UX500_AUTO_PLATFORM
 	  a working kernel. If everything else is disabled, this
 	  automatically enables MACH_MOP500.
 
-endmenu
-
 config UX500_DEBUG_UART
 	int "Ux500 UART to use for low-level debug"
 	default 2
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index 2e2e8bb..99c1f15 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -1,4 +1,4 @@
-config ARCH_VEXPRESS
+menuconfig ARCH_VEXPRESS
 	bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7
 	select ARCH_REQUIRE_GPIOLIB
 	select ARCH_SUPPORTS_BIG_ENDIAN
@@ -37,8 +37,7 @@ config ARCH_VEXPRESS
 	  platforms. The traditional (ATAGs) boot method is not usable on
 	  these boards with this option.
 
-menu "Versatile Express platform type"
-	depends on ARCH_VEXPRESS
+if ARCH_VEXPRESS
 
 config ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA
 	bool "Enable A5 and A9 only errata work-arounds"
@@ -82,4 +81,4 @@ config ARCH_VEXPRESS_TC2_PM
 	  Support for CPU and cluster power management on Versatile Express
 	  with a TC2 (A15x2 A7x3) big.LITTLE core tile.
 
-endmenu
+endif
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 13/14] ARM: exynos: move sysram info to exynos.c
  2014-06-13 16:01 ` Arnd Bergmann
                   ` (12 preceding siblings ...)
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

From: Olof Johansson <olof@lixom.net>

This solves a problem with building with CONFIG_SMP=n due to missing
sysram_base_addr (or sysram_ns_base_addr) variables.

The new setup method is more awkward than I'd like for it to be, but
it can't be done in init_early() since ioremap is not yet available,
but it needs to happen before SMP.

Reported-by: Russell King <linux@arm.linux.org.uk>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/mach-exynos/common.h  |  1 +
 arch/arm/mach-exynos/exynos.c  | 29 +++++++++++++++++++++++++++++
 arch/arm/mach-exynos/platsmp.c | 26 ++------------------------
 3 files changed, 32 insertions(+), 24 deletions(-)

diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index 16617bd..1ee9176 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -118,6 +118,7 @@ extern void __iomem *sysram_ns_base_addr;
 extern void __iomem *sysram_base_addr;
 void exynos_init_io(void);
 void exynos_restart(enum reboot_mode mode, const char *cmd);
+void exynos_sysram_init(void);
 void exynos_cpuidle_init(void);
 void exynos_cpufreq_init(void);
 void exynos_init_late(void);
diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index 90aab4d..fb1eadd 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -184,6 +184,28 @@ void __init exynos_cpufreq_init(void)
 	platform_device_register_simple("exynos-cpufreq", -1, NULL, 0);
 }
 
+void __iomem *sysram_base_addr;
+void __iomem *sysram_ns_base_addr;
+
+void __init exynos_sysram_init(void)
+{
+	struct device_node *node;
+
+	for_each_compatible_node(node, NULL, "samsung,exynos4210-sysram") {
+		if (!of_device_is_available(node))
+			continue;
+		sysram_base_addr = of_iomap(node, 0);
+		break;
+	}
+
+	for_each_compatible_node(node, NULL, "samsung,exynos4210-sysram-ns") {
+		if (!of_device_is_available(node))
+			continue;
+		sysram_ns_base_addr = of_iomap(node, 0);
+		break;
+	}
+}
+
 void __init exynos_init_late(void)
 {
 	if (of_machine_is_compatible("samsung,exynos5440"))
@@ -271,6 +293,13 @@ static void __init exynos_dt_machine_init(void)
 		}
 	}
 
+	/*
+	 * This is called from smp_prepare_cpus if we've built for SMP, but
+	 * we still need to set it up for PM and firmware ops if not.
+	 */
+	if (!IS_ENABLED(SMP))
+		exynos_sysram_init();
+
 	exynos_cpuidle_init();
 	exynos_cpufreq_init();
 
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index ec02422..1c8d31e 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -32,28 +32,6 @@
 
 extern void exynos4_secondary_startup(void);
 
-void __iomem *sysram_base_addr;
-void __iomem *sysram_ns_base_addr;
-
-static void __init exynos_smp_prepare_sysram(void)
-{
-	struct device_node *node;
-
-	for_each_compatible_node(node, NULL, "samsung,exynos4210-sysram") {
-		if (!of_device_is_available(node))
-			continue;
-		sysram_base_addr = of_iomap(node, 0);
-		break;
-	}
-
-	for_each_compatible_node(node, NULL, "samsung,exynos4210-sysram-ns") {
-		if (!of_device_is_available(node))
-			continue;
-		sysram_ns_base_addr = of_iomap(node, 0);
-		break;
-	}
-}
-
 static inline void __iomem *cpu_boot_reg_base(void)
 {
 	if (soc_is_exynos4210() && samsung_rev() == EXYNOS4210_REV_1_1)
@@ -234,11 +212,11 @@ static void __init exynos_smp_prepare_cpus(unsigned int max_cpus)
 {
 	int i;
 
+	exynos_sysram_init();
+
 	if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
 		scu_enable(scu_base_addr());
 
-	exynos_smp_prepare_sysram();
-
 	/*
 	 * Write the address of secondary startup into the
 	 * system-wide flags register. The boot monitor waits
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 14/14] ARM: EXYNOS: Fix compilation warning
  2014-06-13 16:01 ` Arnd Bergmann
                   ` (13 preceding siblings ...)
  (?)
@ 2014-06-13 16:01 ` Arnd Bergmann
  -1 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-13 16:01 UTC (permalink / raw)
  To: linux-arm-kernel

From: Sachin Kamat <sachin.kamat@linaro.org>

of_get_flat_dt_prop return type is now const.
Fixes the following compilation warning introduced by commit 9d0c4dfedd96
("of/fdt: update of_get_flat_dt_prop in prep for libfdt")

arch/arm/mach-exynos/exynos.c:259:6: warning:
assignment discards ?const? qualifier from pointer target type [enabled by default]

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Reviewed-by: Tushar Behera <tushar.behera@linaro.org>
Cc: Rob Herring <robh@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/mach-exynos/exynos.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index fb1eadd..f38cf7c 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -220,7 +220,7 @@ static int __init exynos_fdt_map_chipid(unsigned long node, const char *uname,
 					int depth, void *data)
 {
 	struct map_desc iodesc;
-	__be32 *reg;
+	const __be32 *reg;
 	int len;
 
 	if (!of_flat_dt_is_compatible(node, "samsung,exynos4210-chipid") &&
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 03/14] ARM: keystone requires ARM_PATCH_PHYS_VIRT
  2014-06-13 16:01 ` [PATCH 03/14] ARM: keystone requires ARM_PATCH_PHYS_VIRT Arnd Bergmann
@ 2014-06-13 16:23   ` Santosh Shilimkar
  2014-06-18 14:39   ` Rob Herring
  2014-06-18 15:49   ` Nicolas Pitre
  2 siblings, 0 replies; 30+ messages in thread
From: Santosh Shilimkar @ 2014-06-13 16:23 UTC (permalink / raw)
  To: linux-arm-kernel

On Friday 13 June 2014 12:01 PM, Arnd Bergmann wrote:
> The dynamic relocation that the keystone platform performs
> only works if we can pick the phys offset at boot time. It's
> possible that there is another solution for this, but this
> is the easiest workaround. Kernels with ARM_PATCH_PHYS_VIRT
> are not portable across platforms, and I see no reason why
> anyone would run a kernel without ARM_PATCH_PHYS_VIRT on
> keystone.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
> ---
Agree.
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 00/14] arm-soc fixes for 3.16 review
  2014-06-13 16:01 ` Arnd Bergmann
@ 2014-06-13 20:40   ` Jason Cooper
  -1 siblings, 0 replies; 30+ messages in thread
From: Jason Cooper @ 2014-06-13 20:40 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-arm-kernel, andrew, tony, viresh.kumar, linus.walleij,
	tushar.behera, robh, kgene.kim, linux, pawel.moll, sachin.kamat,
	daniel.lezcano, linux-samsung-soc, arm, t.figa, dan.carpenter,
	sebastian.hesselbarth, ohad, khilman, lorenzo.pieralisi,
	ben-linux, gregory.clement, linux-omap, rtivy, sboyd,
	santosh.shilimkar, olof, shawn.guo

On Fri, Jun 13, 2014 at 06:01:02PM +0200, Arnd Bergmann wrote:
> here are the fixes I've picked up so far as the last pull request
> for the merge window. I'm sure there will be a lot more in the
> future, but let us know if I missed something 

Please see my pull request that I replied to today.  It has two dts
fixes for NAND ECC handling.

thx,

Jason.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 00/14] arm-soc fixes for 3.16 review
@ 2014-06-13 20:40   ` Jason Cooper
  0 siblings, 0 replies; 30+ messages in thread
From: Jason Cooper @ 2014-06-13 20:40 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jun 13, 2014 at 06:01:02PM +0200, Arnd Bergmann wrote:
> here are the fixes I've picked up so far as the last pull request
> for the merge window. I'm sure there will be a lot more in the
> future, but let us know if I missed something 

Please see my pull request that I replied to today.  It has two dts
fixes for NAND ECC handling.

thx,

Jason.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 02/14] ARM: omap2: fix am43xx dependency on l2x0 cache
  2014-06-13 16:01   ` Arnd Bergmann
@ 2014-06-16  9:41     ` Tony Lindgren
  -1 siblings, 0 replies; 30+ messages in thread
From: Tony Lindgren @ 2014-06-16  9:41 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: linux-arm-kernel, arm, linux-omap

* Arnd Bergmann <arnd@arndb.de> [140613 09:02]:
> Commit d941f86fad41b ("ARM: l2c: AM43x: add L2 cache support") enabled
> the L2 cache support for the am43xx SoC, but caused a build regression
> when the driver for that cache controller is disabled:
> 
> arch/arm/mach-omap2/built-in.o: In function `am43xx_init_early':
> :(.init.text+0xb20): undefined reference to `omap_l2_cache_init'
> 
> This did not happen for OMAP4, which has the same call, but enables
> the l2x0 driver unconditionally. We could do the same thing for
> am43xx, but it seems better to allow turning it off and make the
> code work in either case.
> 
> This adds an inline wrapper for omap_l2_cache_init for the disabled
> case, and removes the 'select' from OMAP4 so it becomes a user
> visible option.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: linux-omap@vger.kernel.org

Acked-by: Tony Lindgren <tony@atomide.com>

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 02/14] ARM: omap2: fix am43xx dependency on l2x0 cache
@ 2014-06-16  9:41     ` Tony Lindgren
  0 siblings, 0 replies; 30+ messages in thread
From: Tony Lindgren @ 2014-06-16  9:41 UTC (permalink / raw)
  To: linux-arm-kernel

* Arnd Bergmann <arnd@arndb.de> [140613 09:02]:
> Commit d941f86fad41b ("ARM: l2c: AM43x: add L2 cache support") enabled
> the L2 cache support for the am43xx SoC, but caused a build regression
> when the driver for that cache controller is disabled:
> 
> arch/arm/mach-omap2/built-in.o: In function `am43xx_init_early':
> :(.init.text+0xb20): undefined reference to `omap_l2_cache_init'
> 
> This did not happen for OMAP4, which has the same call, but enables
> the l2x0 driver unconditionally. We could do the same thing for
> am43xx, but it seems better to allow turning it off and make the
> code work in either case.
> 
> This adds an inline wrapper for omap_l2_cache_init for the disabled
> case, and removes the 'select' from OMAP4 so it becomes a user
> visible option.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: linux-omap at vger.kernel.org

Acked-by: Tony Lindgren <tony@atomide.com>

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 01/14] ARM: mvebu: fix randconfig builds for pmsu driver
  2014-06-13 16:01 ` [PATCH 01/14] ARM: mvebu: fix randconfig builds for pmsu driver Arnd Bergmann
@ 2014-06-17 14:00   ` Thomas Petazzoni
  2014-06-17 15:03     ` Arnd Bergmann
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Petazzoni @ 2014-06-17 14:00 UTC (permalink / raw)
  To: linux-arm-kernel

Dear Arnd Bergmann,

On Fri, 13 Jun 2014 18:01:03 +0200, Arnd Bergmann wrote:

> @@ -200,7 +201,9 @@ static noinline int do_armada_370_xp_cpu_suspend(unsigned long deepidle)
>  	/* If we are here, wfi failed. As processors run out of
>  	 * coherency for some time, tlbs might be stale, so flush them
>  	 */
> +#ifdef CONFIG_MMU
>  	local_flush_tlb_all();
> +#endif

So noMMU builds are supported in a single image with MMU builds?
Instead of having to #ifdef all around the place, wouldn't it be better
for the noMMU headers to provide an empty definition for this function?

>  static int armada_370_xp_cpu_suspend(unsigned long deepidle)
>  {
> +	if (!IS_ENABLED(CONFIG_CPU_IDLE))
> +		return -ENODEV;
> +
>  	return cpu_suspend(deepidle, do_armada_370_xp_cpu_suspend);
>  }

This unfortunately isn't really correct, and the patch I sent in
"[PATCH] ARM: mvebu: select ARM_CPU_SUSPEND for Marvell EBU v7
platforms" on June, 11th already fixes the cpu_suspend()/cpu_resume()
problem.

The issue with your solution is that it assumes this function is only
used for cpuidle. That is indeed the case in v3.16, but will be wrong
as soon as we add CPU hotplug support, which I have posted on May, 30th
in "[PATCH 0/5] CPU hotplug for Marvell Armada XP", and which I hope to
see included in v3.17.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 01/14] ARM: mvebu: fix randconfig builds for pmsu driver
  2014-06-17 14:00   ` Thomas Petazzoni
@ 2014-06-17 15:03     ` Arnd Bergmann
  2014-06-17 15:17       ` Thomas Petazzoni
  0 siblings, 1 reply; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-17 15:03 UTC (permalink / raw)
  To: linux-arm-kernel

On Tuesday 17 June 2014 16:00:11 Thomas Petazzoni wrote:
> Dear Arnd Bergmann,
> 
> On Fri, 13 Jun 2014 18:01:03 +0200, Arnd Bergmann wrote:
> 
> > @@ -200,7 +201,9 @@ static noinline int do_armada_370_xp_cpu_suspend(unsigned long deepidle)
> >       /* If we are here, wfi failed. As processors run out of
> >        * coherency for some time, tlbs might be stale, so flush them
> >        */
> > +#ifdef CONFIG_MMU
> >       local_flush_tlb_all();
> > +#endif
> 
> So noMMU builds are supported in a single image with MMU builds?

It's not supported yet, but I have a patch to do that, which I used for
testing this code. I try to have the platform code ready before submitting
the main patch.

> Instead of having to #ifdef all around the place, wouldn't it be better
> for the noMMU headers to provide an empty definition for this function?

Yes, good point, it should probably be part of the main patch then.

> >  static int armada_370_xp_cpu_suspend(unsigned long deepidle)
> >  {
> > +     if (!IS_ENABLED(CONFIG_CPU_IDLE))
> > +             return -ENODEV;
> > +
> >       return cpu_suspend(deepidle, do_armada_370_xp_cpu_suspend);
> >  }
> 
> This unfortunately isn't really correct, and the patch I sent in
> "[PATCH] ARM: mvebu: select ARM_CPU_SUSPEND for Marvell EBU v7
> platforms" on June, 11th already fixes the cpu_suspend()/cpu_resume()
> problem.

ok.

> The issue with your solution is that it assumes this function is only
> used for cpuidle. That is indeed the case in v3.16, but will be wrong
> as soon as we add CPU hotplug support, which I have posted on May, 30th
> in "[PATCH 0/5] CPU hotplug for Marvell Armada XP", and which I hope to
> see included in v3.17.

Right. I'll drop this patch from the submission then. You came just in
time, as I had originally planned to send it out this morning.

I'll also follow up with a separate patch to address the isb() issue.

	Arnd

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 01/14] ARM: mvebu: fix randconfig builds for pmsu driver
  2014-06-17 15:03     ` Arnd Bergmann
@ 2014-06-17 15:17       ` Thomas Petazzoni
  2014-06-17 15:20         ` Arnd Bergmann
  0 siblings, 1 reply; 30+ messages in thread
From: Thomas Petazzoni @ 2014-06-17 15:17 UTC (permalink / raw)
  To: linux-arm-kernel

Dear Arnd Bergmann,

On Tue, 17 Jun 2014 17:03:28 +0200, Arnd Bergmann wrote:

> > So noMMU builds are supported in a single image with MMU builds?
> 
> It's not supported yet, but I have a patch to do that, which I used for
> testing this code. I try to have the platform code ready before submitting
> the main patch.

Ok.

> > This unfortunately isn't really correct, and the patch I sent in
> > "[PATCH] ARM: mvebu: select ARM_CPU_SUSPEND for Marvell EBU v7
> > platforms" on June, 11th already fixes the cpu_suspend()/cpu_resume()
> > problem.
> 
> ok.
> 
> > The issue with your solution is that it assumes this function is only
> > used for cpuidle. That is indeed the case in v3.16, but will be wrong
> > as soon as we add CPU hotplug support, which I have posted on May, 30th
> > in "[PATCH 0/5] CPU hotplug for Marvell Armada XP", and which I hope to
> > see included in v3.17.
> 
> Right. I'll drop this patch from the submission then. You came just in
> time, as I had originally planned to send it out this morning.
> 
> I'll also follow up with a separate patch to address the isb() issue.

Ok, thanks a lot!

So, should my patch adding the "select ARM_CPU_SUSPEND" be taken by
Jason and then pushed to you, or will you apply it directly?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 01/14] ARM: mvebu: fix randconfig builds for pmsu driver
  2014-06-17 15:17       ` Thomas Petazzoni
@ 2014-06-17 15:20         ` Arnd Bergmann
  0 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-17 15:20 UTC (permalink / raw)
  To: linux-arm-kernel

On Tuesday 17 June 2014 17:17:00 Thomas Petazzoni wrote:
> 
> > > This unfortunately isn't really correct, and the patch I sent in
> > > "[PATCH] ARM: mvebu: select ARM_CPU_SUSPEND for Marvell EBU v7
> > > platforms" on June, 11th already fixes the cpu_suspend()/cpu_resume()
> > > problem.
> > 
> > ok.
> > 
> > > The issue with your solution is that it assumes this function is only
> > > used for cpuidle. That is indeed the case in v3.16, but will be wrong
> > > as soon as we add CPU hotplug support, which I have posted on May, 30th
> > > in "[PATCH 0/5] CPU hotplug for Marvell Armada XP", and which I hope to
> > > see included in v3.17.
> > 
> > Right. I'll drop this patch from the submission then. You came just in
> > time, as I had originally planned to send it out this morning.
> > 
> > I'll also follow up with a separate patch to address the isb() issue.
> 
> Ok, thanks a lot!
> 
> So, should my patch adding the "select ARM_CPU_SUSPEND" be taken by
> Jason and then pushed to you, or will you apply it directly?

I'll wait for Jason to pick it up. It was clearly a mistake for me
to include my own patch directly and without an explicit Ack, I'll go
back to the normal way of doing things ;-)

	ARnd

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 03/14] ARM: keystone requires ARM_PATCH_PHYS_VIRT
  2014-06-13 16:01 ` [PATCH 03/14] ARM: keystone requires ARM_PATCH_PHYS_VIRT Arnd Bergmann
  2014-06-13 16:23   ` Santosh Shilimkar
@ 2014-06-18 14:39   ` Rob Herring
  2014-06-18 15:16     ` Arnd Bergmann
  2014-06-18 15:49   ` Nicolas Pitre
  2 siblings, 1 reply; 30+ messages in thread
From: Rob Herring @ 2014-06-18 14:39 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jun 13, 2014 at 11:01 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> The dynamic relocation that the keystone platform performs
> only works if we can pick the phys offset at boot time. It's
> possible that there is another solution for this, but this
> is the easiest workaround. Kernels with ARM_PATCH_PHYS_VIRT
> are not portable across platforms, and I see no reason why
> anyone would run a kernel without ARM_PATCH_PHYS_VIRT on
> keystone.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
> ---
>  arch/arm/mach-keystone/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig
> index f50bc93..98a156a 100644
> --- a/arch/arm/mach-keystone/Kconfig
> +++ b/arch/arm/mach-keystone/Kconfig
> @@ -1,6 +1,7 @@
>  config ARCH_KEYSTONE
>         bool "Texas Instruments Keystone Devices"
>         depends on ARCH_MULTI_V7
> +       depends on ARM_PATCH_PHYS_VIRT

Why is this needed when multi-platform already selects this?

Rob

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 03/14] ARM: keystone requires ARM_PATCH_PHYS_VIRT
  2014-06-18 14:39   ` Rob Herring
@ 2014-06-18 15:16     ` Arnd Bergmann
  0 siblings, 0 replies; 30+ messages in thread
From: Arnd Bergmann @ 2014-06-18 15:16 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 18 June 2014 09:39:57 Rob Herring wrote:
> On Fri, Jun 13, 2014 at 11:01 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> > The dynamic relocation that the keystone platform performs
> > only works if we can pick the phys offset at boot time. It's
> > possible that there is another solution for this, but this
> > is the easiest workaround. Kernels with ARM_PATCH_PHYS_VIRT
> > are not portable across platforms, and I see no reason why
> > anyone would run a kernel without ARM_PATCH_PHYS_VIRT on
> > keystone.
> >
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
> > ---
> >  arch/arm/mach-keystone/Kconfig | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig
> > index f50bc93..98a156a 100644
> > --- a/arch/arm/mach-keystone/Kconfig
> > +++ b/arch/arm/mach-keystone/Kconfig
> > @@ -1,6 +1,7 @@
> >  config ARCH_KEYSTONE
> >         bool "Texas Instruments Keystone Devices"
> >         depends on ARCH_MULTI_V7
> > +       depends on ARM_PATCH_PHYS_VIRT
> 
> Why is this needed when multi-platform already selects this?
> 

I have a patch to make ARM_PATCH_PHYS_VIRT optional for multi-platform,
which I plan to post at some point in the next weeks. This will let
us enable NOMMU builds and other things in platforms that are
converted to multiplatform (at the obvious expense of losing generality
for that particular build). Most other platforms can work with or without
ARM_PATCH_PHYS_VIRT, but keystone lost that ability.

	Arnd

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 03/14] ARM: keystone requires ARM_PATCH_PHYS_VIRT
  2014-06-13 16:01 ` [PATCH 03/14] ARM: keystone requires ARM_PATCH_PHYS_VIRT Arnd Bergmann
  2014-06-13 16:23   ` Santosh Shilimkar
  2014-06-18 14:39   ` Rob Herring
@ 2014-06-18 15:49   ` Nicolas Pitre
  2 siblings, 0 replies; 30+ messages in thread
From: Nicolas Pitre @ 2014-06-18 15:49 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, 13 Jun 2014, Arnd Bergmann wrote:

> The dynamic relocation that the keystone platform performs
> only works if we can pick the phys offset at boot time. It's
> possible that there is another solution for this, but this
> is the easiest workaround. Kernels with ARM_PATCH_PHYS_VIRT

s/with/without/

> are not portable across platforms, and I see no reason why
> anyone would run a kernel without ARM_PATCH_PHYS_VIRT on
> keystone.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
> ---
>  arch/arm/mach-keystone/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig
> index f50bc93..98a156a 100644
> --- a/arch/arm/mach-keystone/Kconfig
> +++ b/arch/arm/mach-keystone/Kconfig
> @@ -1,6 +1,7 @@
>  config ARCH_KEYSTONE
>  	bool "Texas Instruments Keystone Devices"
>  	depends on ARCH_MULTI_V7
> +	depends on ARM_PATCH_PHYS_VIRT
>  	select ARM_GIC
>  	select HAVE_ARM_ARCH_TIMER
>  	select CLKSRC_MMIO
> -- 
> 1.8.3.2
> 

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2014-06-18 15:49 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-13 16:01 [PATCH 00/14] arm-soc fixes for 3.16 review Arnd Bergmann
2014-06-13 16:01 ` Arnd Bergmann
2014-06-13 16:01 ` [PATCH 01/14] ARM: mvebu: fix randconfig builds for pmsu driver Arnd Bergmann
2014-06-17 14:00   ` Thomas Petazzoni
2014-06-17 15:03     ` Arnd Bergmann
2014-06-17 15:17       ` Thomas Petazzoni
2014-06-17 15:20         ` Arnd Bergmann
2014-06-13 16:01 ` [PATCH 02/14] ARM: omap2: fix am43xx dependency on l2x0 cache Arnd Bergmann
2014-06-13 16:01   ` Arnd Bergmann
2014-06-16  9:41   ` Tony Lindgren
2014-06-16  9:41     ` Tony Lindgren
2014-06-13 16:01 ` [PATCH 03/14] ARM: keystone requires ARM_PATCH_PHYS_VIRT Arnd Bergmann
2014-06-13 16:23   ` Santosh Shilimkar
2014-06-18 14:39   ` Rob Herring
2014-06-18 15:16     ` Arnd Bergmann
2014-06-18 15:49   ` Nicolas Pitre
2014-06-13 16:01 ` [PATCH 04/14] bus/arm-cci: add dependency on OF && CPU_V7 Arnd Bergmann
2014-06-13 16:01 ` [PATCH 05/14] remoteproc: da8xx: don't select CMA on no-MMU Arnd Bergmann
2014-06-13 16:01 ` [PATCH 06/14] ARM: samsung: make SAMSUNG_DMADEV optional Arnd Bergmann
2014-06-13 16:01 ` [PATCH 07/14] ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size Arnd Bergmann
2014-06-13 16:01 ` [PATCH 08/14] ARM: integrator: fix section mismatch problem Arnd Bergmann
2014-06-13 16:01 ` [PATCH 09/14] ARM: Remove ARCH_HAS_CPUFREQ config option Arnd Bergmann
2014-06-13 16:01 ` [PATCH 10/14] misc: vexpress: fix error handling vexpress_syscfg_regmap_init() Arnd Bergmann
2014-06-13 16:01 ` [PATCH 11/14] ARM: exynos: cleanup kconfig option display Arnd Bergmann
2014-06-13 16:01   ` Arnd Bergmann
2014-06-13 16:01 ` [PATCH 12/14] ARM: use menuconfig for sub-arch menus Arnd Bergmann
2014-06-13 16:01 ` [PATCH 13/14] ARM: exynos: move sysram info to exynos.c Arnd Bergmann
2014-06-13 16:01 ` [PATCH 14/14] ARM: EXYNOS: Fix compilation warning Arnd Bergmann
2014-06-13 20:40 ` [PATCH 00/14] arm-soc fixes for 3.16 review Jason Cooper
2014-06-13 20:40   ` Jason Cooper

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.