* [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.