arm-soc fixes for 3.16 review
Subsystems (23)
Arnd Bergmann
maintainercover arm-soc fixes for 3.16 review
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(-)
Signature · 30 lines
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
Arnd Bergmann
maintainerPATCH 1/14 ARM: mvebu: fix randconfig builds for pmsu driver
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.
--- arch/arm/mach-mvebu/Kconfig | 1 + arch/arm/mach-mvebu/pmsu.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-)
arch/arm/mach-mvebu/Kconfig +1 -0
@@ -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
arch/arm/mach-mvebu/pmsu.c +8 -1
@@ -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); }
Signature · 1 line
1.8.3.2
PATCH 1/14 ARM: mvebu: fix randconfig builds for pmsu driver
Dear Arnd Bergmann,
arch/arm/mach-mvebu/pmsu.c static noinline int do_armada_370_xp_cpu_suspend(unsigned long deepidle) · line 206
Quoted 7 lines · Arnd Bergmann
arch/arm/mach-mvebu/pmsu.c +2
-0@@ -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?
arch/arm/mach-mvebu/pmsu.c static noinline int do_armada_370_xp_cpu_suspend(unsigned long deepidle) · line 231
Quoted 7 lines
arch/arm/mach-mvebu/pmsu.c +3
-0static 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
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Arnd Bergmann
maintainerPATCH 1/14 ARM: mvebu: fix randconfig builds for pmsu driver
Quoted 4 lines · 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:
Quoted 9 lines
arch/arm/mach-mvebu/pmsu.c static noinline int do_armada_370_xp_cpu_suspend(unsigned long deepidle) · line 206
Quoted 7 lines
arch/arm/mach-mvebu/pmsu.c +2
-0@@ -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.
Quoted 2 lines
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.
Quoted 8 lines
arch/arm/mach-mvebu/pmsu.c static noinline int do_armada_370_xp_cpu_suspend(unsigned long deepidle) · line 231
Quoted 7 lines
arch/arm/mach-mvebu/pmsu.c +3
-0static 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); }
Quoted 4 lines
This unfortunately isn't really correct, and the patch I sent in "[PATCH] ARM: mvebu: select
ARM_CPU_SUSPENDfor Marvell EBU v7 platforms" on June, 11th already fixes the cpu_suspend()/cpu_resume() problem.
ok.
Quoted 5 lines
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
PATCH 1/14 ARM: mvebu: fix randconfig builds for pmsu driver
Dear Arnd Bergmann,
Quoted 5 lines · Arnd Bergmann
Quoted 1 line
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.
Quoted 13 lines
Quoted 4 lines
This unfortunately isn't really correct, and the patch I sent in "[PATCH] ARM: mvebu: select
ARM_CPU_SUSPENDfor Marvell EBU v7 platforms" on June, 11th already fixes the cpu_suspend()/cpu_resume() problem.ok.
Quoted 5 lines
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.
Quoted 4 lines
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
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Arnd Bergmann
maintainerPATCH 1/14 ARM: mvebu: fix randconfig builds for pmsu driver
Quoted 17 lines · On Tuesday 17 June 2014 17:17:00 Thomas Petazzoni wrote:
Quoted 17 lines
Quoted 5 lines
This unfortunately isn't really correct, and the patch I sent in "[PATCH] ARM: mvebu: select
ARM_CPU_SUSPENDfor Marvell EBU v7 platforms" on June, 11th already fixes the cpu_suspend()/cpu_resume() problem.ok.
Quoted 5 lines
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.
Quoted 6 lines
Quoted 1 line
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
Arnd Bergmann
maintainerPATCH 2/14 ARM: omap2: fix am43xx dependency on l2x0 cache
In reply to Arnd BergmannCommit 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.
--- 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(-)
arch/arm/configs/omap2plus_defconfig +1 -0
@@ -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
arch/arm/mach-omap2/Kconfig +0 -1
@@ -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
arch/arm/mach-omap2/common.h +7 -0
@@ -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 );
Signature · 1 line
1.8.3.2
Tony Lindgren
maintainerPATCH 2/14 ARM: omap2: fix am43xx dependency on l2x0 cache
Quoted 12 lines · Arnd Bergmann
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.
Quoted 6 lines
This adds an inline wrapper for
omap_l2_cache_initfor the disabled case, and removes the 'select' from OMAP4 so it becomes a user visible option.Signed-off-by Arnd Bergmann <[email protected]>Cc linux-omap at vger.kernel.org
Arnd Bergmann
maintainerPATCH 3/14 ARM: keystone requires ARM_PATCH_PHYS_VIRT
In reply to Arnd BergmannThe 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.
--- arch/arm/mach-keystone/Kconfig | 1 + 1 file changed, 1 insertion(+)
arch/arm/mach-keystone/Kconfig +1 -0
@@ -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
Signature · 1 line
1.8.3.2
PATCH 3/14 ARM: keystone requires ARM_PATCH_PHYS_VIRT
Quoted 11 lines · Arnd Bergmann
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_VIRTare not portable across platforms, and I see no reason why anyone would run a kernel withoutARM_PATCH_PHYS_VIRTon keystone.Signed-off-by Arnd Bergmann <[email protected]>Cc Santosh Shilimkar <[email protected]>---
Agree.
PATCH 3/14 ARM: keystone requires ARM_PATCH_PHYS_VIRT
In reply to Arnd BergmannQuoted 19 lines · Arnd Bergmann
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_VIRTare not portable across platforms, and I see no reason why anyone would run a kernel withoutARM_PATCH_PHYS_VIRTon keystone.Signed-off-by Arnd Bergmann <[email protected]>Cc Santosh Shilimkar <[email protected]>--- arch/arm/mach-keystone/Kconfig | 1 + 1 file changed, 1 insertion(+)arch/arm/mach-keystone/Kconfig +0
-0
arch/arm/mach-keystone/Kconfig line 4
Quoted 4 lines
arch/arm/mach-keystone/Kconfig +1
-0@@ -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
Arnd Bergmann
maintainerPATCH 3/14 ARM: keystone requires ARM_PATCH_PHYS_VIRT
Quoted 15 lines · On Wednesday 18 June 2014 09:39:57 Rob Herring wrote:
Quoted 14 lines · Arnd Bergmann
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_VIRTare not portable across platforms, and I see no reason why anyone would run a kernel withoutARM_PATCH_PHYS_VIRTon keystone.Signed-off-by Arnd Bergmann <[email protected]>Cc Santosh Shilimkar <[email protected]>--- arch/arm/mach-keystone/Kconfig | 1 + 1 file changed, 1 insertion(+)
Quoted 12 lines
arch/arm/mach-keystone/Kconfig line 4
Quoted 9 lines
arch/arm/mach-keystone/Kconfig +1
-0@@ -1,6 +1,7 @@ config ARCH_KEYSTONE bool "Texas Instruments Keystone Devices" depends on ARCH_MULTI_V7 + depends on ARM_PATCH_PHYS_VIRTWhy 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
PATCH 3/14 ARM: keystone requires ARM_PATCH_PHYS_VIRT
In reply to Arnd BergmannQuoted 4 lines · Arnd Bergmann
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/
Quoted 25 lines
are not portable across platforms, and I see no reason why anyone would run a kernel without
ARM_PATCH_PHYS_VIRTon keystone.Signed-off-by Arnd Bergmann <[email protected]>Cc Santosh Shilimkar <[email protected]>--- arch/arm/mach-keystone/Kconfig | 1 + 1 file changed, 1 insertion(+)arch/arm/mach-keystone/Kconfig +1
-0@@ -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_MMIOSignature · 1 line
1.8.3.2
Arnd Bergmann
maintainerPATCH 4/14 bus/arm-cci: add dependency on OF && CPU_V7
In reply to Arnd BergmannThe 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.
--- drivers/bus/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/bus/Kconfig +1 -1
@@ -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.
Signature · 1 line
1.8.3.2
Arnd Bergmann
maintainerPATCH 5/14 remoteproc: da8xx: don't select CMA on no-MMU
In reply to Arnd BergmannWe 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.
--- drivers/remoteproc/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/remoteproc/Kconfig +1 -1
@@ -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
Signature · 1 line
1.8.3.2
Arnd Bergmann
maintainerPATCH 6/14 ARM: samsung: make SAMSUNG_DMADEV optional
In reply to Arnd BergmannThe 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.
--- 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(-)
arch/arm/mach-s3c24xx/Kconfig +1 -1
@@ -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
arch/arm/mach-s3c64xx/Kconfig +2 -2
@@ -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
arch/arm/mach-s5p64x0/Kconfig +4 -2
@@ -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
arch/arm/mach-s5pc100/Kconfig +2 -1
@@ -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
arch/arm/mach-s5pv210/Kconfig +2 -1
@@ -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
arch/arm/plat-samsung/Kconfig +5 -6
@@ -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
Signature · 1 line
1.8.3.2
Arnd Bergmann
maintainerPATCH 7/14 ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size
In reply to Arnd BergmannFrom: Jason Cooper <[email protected]>
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.
--- arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts +1 -1
@@ -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 {
Signature · 1 line
1.8.3.2
Arnd Bergmann
maintainerPATCH 8/14 ARM: integrator: fix section mismatch problem
In reply to Arnd BergmannFrom: Linus Walleij <[email protected]>
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.
--- arch/arm/mach-integrator/Kconfig | 2 +- arch/arm/mach-integrator/impd1.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-)
arch/arm/mach-integrator/Kconfig +1 -1
@@ -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
arch/arm/mach-integrator/impd1.c +11 -1
@@ -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,
Signature · 1 line
1.8.3.2
Arnd Bergmann
maintainerPATCH 9/14 ARM: Remove ARCH_HAS_CPUFREQ config option
In reply to Arnd BergmannFrom: Stephen Boyd <[email protected]>
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.
--- 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(-)
arch/arm/Kconfig +0 -17
@@ -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"
arch/arm/mach-davinci/Kconfig +0 -1
@@ -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
arch/arm/mach-exynos/Kconfig +0 -1
@@ -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
arch/arm/mach-highbank/Kconfig +0 -1
@@ -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
arch/arm/mach-imx/Kconfig +0 -3
@@ -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
arch/arm/mach-mvebu/Kconfig +0 -1
@@ -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
arch/arm/mach-omap2/Kconfig +0 -1
@@ -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
arch/arm/mach-shmobile/Kconfig +0 -2
@@ -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
arch/arm/mach-spear/Kconfig +0 -1
@@ -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
arch/arm/mach-tegra/Kconfig +0 -1
@@ -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
arch/arm/mach-ux500/Kconfig +0 -1
@@ -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
arch/arm/mach-vexpress/Kconfig +0 -1
@@ -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
arch/arm/mach-vt8500/Kconfig +0 -1
@@ -1,6 +1,5 @@ config ARCH_VT8500 bool - select ARCH_HAS_CPUFREQ select ARCH_REQUIRE_GPIOLIB select CLKDEV_LOOKUP select VT8500_TIMER
arch/arm/mach-zynq/Kconfig +0 -1
@@ -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
Signature · 1 line
1.8.3.2
Arnd Bergmann
maintainerPATCH 10/14 misc: vexpress: fix error handling vexpress_syscfg_regmap_init()
In reply to Arnd BergmannFrom: Dan Carpenter <[email protected]>
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.
--- drivers/misc/vexpress-syscfg.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
drivers/misc/vexpress-syscfg.c +8 -4
@@ -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; }
Signature · 1 line
1.8.3.2
Arnd Bergmann
maintainerPATCH 11/14 ARM: exynos: cleanup kconfig option display
In reply to Arnd BergmannFrom: Rob Herring <[email protected]>
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.
--- arch/arm/Kconfig | 3 +-- arch/arm/plat-samsung/Kconfig | 17 +++-------------- 2 files changed, 4 insertions(+), 16 deletions(-)
arch/arm/Kconfig +1 -2
@@ -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"
arch/arm/plat-samsung/Kconfig +3 -14
@@ -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
Signature · 1 line
1.8.3.2
Arnd Bergmann
maintainerPATCH 12/14 ARM: use menuconfig for sub-arch menus
In reply to Arnd BergmannFrom: Rob Herring <[email protected]>
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.
--- 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(-)
arch/arm/mach-bcm/Kconfig +3 -4
@@ -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
arch/arm/mach-berlin/Kconfig +1 -5
@@ -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
arch/arm/mach-cns3xxx/Kconfig +3 -4
@@ -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
arch/arm/mach-exynos/Kconfig +1 -5
@@ -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
arch/arm/mach-imx/Kconfig +3 -4
@@ -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
arch/arm/mach-moxart/Kconfig +1 -1
@@ -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
arch/arm/mach-mvebu/Kconfig +1 -5
@@ -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
arch/arm/mach-nomadik/Kconfig +1 -3
@@ -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
arch/arm/mach-omap2/Kconfig +6 -3
@@ -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
arch/arm/mach-prima2/Kconfig +2 -4
@@ -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
arch/arm/mach-qcom/Kconfig +1 -5
@@ -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
arch/arm/mach-shmobile/Kconfig +2 -2
@@ -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"
arch/arm/mach-tegra/Kconfig +3 -4
@@ -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
arch/arm/mach-u300/Kconfig +1 -5
@@ -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
arch/arm/mach-ux500/Kconfig +1 -5
@@ -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
arch/arm/mach-vexpress/Kconfig +3 -4
@@ -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
Signature · 1 line
1.8.3.2
Arnd Bergmann
maintainerPATCH 13/14 ARM: exynos: move sysram info to exynos.c
In reply to Arnd BergmannFrom: Olof Johansson <[email protected]>
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.
--- 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(-)
arch/arm/mach-exynos/common.h +1 -0
@@ -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 );
arch/arm/mach-exynos/exynos.c +29 -0
@@ -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 ();
arch/arm/mach-exynos/platsmp.c +2 -24
@@ -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
Signature · 1 line
1.8.3.2
Arnd Bergmann
maintainerPATCH 14/14 ARM: EXYNOS: Fix compilation warning
In reply to Arnd BergmannFrom: Sachin Kamat <[email protected]>
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]
--- arch/arm/mach-exynos/exynos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-exynos/exynos.c +1 -1
@@ -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") &&
Signature · 1 line
1.8.3.2
cover arm-soc fixes for 3.16 review
In reply to Arnd BergmannQuoted 3 lines · Arnd Bergmann
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.