Skip to content

Commit

Permalink
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/ker…
Browse files Browse the repository at this point in the history
…nel/git/arm/arm-soc

Pull ARM SoC fixes from Arnd Bergmann:
 "A first set of bug fixes that didn't make it for the merge window, and
  two Kconfig cleanups that still make sense at this point.

  Unfortunately, one of the two cleanups caused an unintended change in
  the original version, so we had to revert one part of it and do some
  more testing to ensure the rest is really fine.  There was also a
  last-minute rebase of the patches to remove another bad commit"

* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  ARM: use menuconfig for sub-arch menus
  ARM: multi_v7_defconfig: re-enable SDHCI drivers
  ARM: EXYNOS: Fix compilation warning
  ARM: exynos: move sysram info to exynos.c
  ARM: dts: Specify the NAND ECC scheme explicitly on Armada 385 DB board
  ARM: dts: Specify the NAND ECC scheme explicitly on Armada 375 DB board
  ARM: exynos: cleanup kconfig option display
  misc: vexpress: fix error handling vexpress_syscfg_regmap_init()
  ARM: Remove ARCH_HAS_CPUFREQ config option
  ARM: integrator: fix section mismatch problem
  ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size
  ARM: samsung: make SAMSUNG_DMADEV optional
  remoteproc: da8xx: don't select CMA on no-MMU
  bus/arm-cci: add dependency on OF && CPU_V7
  ARM: keystone requires ARM_PATCH_PHYS_VIRT
  ARM: omap2: fix am43xx dependency on l2x0 cache
  • Loading branch information
torvalds committed Jun 20, 2014
2 parents 894e552 + 21278ae commit 58c72f9
Show file tree
Hide file tree
Showing 44 changed files with 123 additions and 158 deletions.
20 changes: 1 addition & 19 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -1009,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"
Expand All @@ -1028,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"

Expand Down Expand Up @@ -2109,9 +2093,7 @@ endmenu

menu "CPU Power Management"

if ARCH_HAS_CPUFREQ
source "drivers/cpufreq/Kconfig"
endif

source "drivers/cpuidle/Kconfig"

Expand Down
2 changes: 2 additions & 0 deletions arch/arm/boot/dts/armada-375-db.dts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@
marvell,nand-keep-config;
marvell,nand-enable-arbiter;
nand-on-flash-bbt;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;

partition@0 {
label = "U-Boot";
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/boot/dts/armada-385-db.dts
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,8 @@
marvell,nand-keep-config;
marvell,nand-enable-arbiter;
nand-on-flash-bbt;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;

partition@0 {
label = "U-Boot";
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
1 change: 1 addition & 0 deletions arch/arm/configs/multi_v7_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,7 @@ CONFIG_MMC=y
CONFIG_MMC_BLOCK_MINORS=16
CONFIG_MMC_ARMMMCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_OF_ARASAN=y
CONFIG_MMC_SDHCI_ESDHC_IMX=y
CONFIG_MMC_SDHCI_DOVE=y
Expand Down
1 change: 1 addition & 0 deletions arch/arm/configs/omap2plus_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 3 additions & 4 deletions arch/arm/mach-bcm/Kconfig
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
6 changes: 1 addition & 5 deletions arch/arm/mach-berlin/Kconfig
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -30,6 +28,4 @@ config MACH_BERLIN_BG2Q
select HAVE_ARM_TWD if SMP
select PINCTRL_BERLIN_BG2Q

endmenu

endif
7 changes: 3 additions & 4 deletions arch/arm/mach-cns3xxx/Kconfig
Original file line number Diff line number Diff line change
@@ -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"
Expand All @@ -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
1 change: 0 additions & 1 deletion arch/arm/mach-davinci/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 1 addition & 6 deletions arch/arm/mach-exynos/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@

# 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_CPUFREQ
select ARCH_HAS_HOLES_MEMORYMODEL
select ARCH_REQUIRE_GPIOLIB
select ARM_AMBA
Expand All @@ -30,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
Expand Down Expand Up @@ -118,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
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-exynos/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
31 changes: 30 additions & 1 deletion arch/arm/mach-exynos/exynos.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"))
Expand All @@ -198,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") &&
Expand Down Expand Up @@ -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();

Expand Down
26 changes: 2 additions & 24 deletions arch/arm/mach-exynos/platsmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion arch/arm/mach-highbank/Kconfig
Original file line number Diff line number Diff line change
@@ -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
Expand Down
10 changes: 3 additions & 7 deletions arch/arm/mach-imx/Kconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
config ARCH_MXC
menuconfig 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
Expand All @@ -13,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
Expand Down Expand Up @@ -99,7 +97,6 @@ config SOC_IMX25

config SOC_IMX27
bool
select ARCH_HAS_CPUFREQ
select ARCH_HAS_OPP
select CPU_ARM926T
select IMX_HAVE_IOMUX_V1
Expand All @@ -124,7 +121,6 @@ config SOC_IMX35

config SOC_IMX5
bool
select ARCH_HAS_CPUFREQ
select ARCH_HAS_OPP
select ARCH_MXC_IOMUX_V3
select MXC_TZIC
Expand Down Expand Up @@ -786,4 +782,4 @@ endif

source "arch/arm/mach-imx/devices/Kconfig"

endmenu
endif
Loading

0 comments on commit 58c72f9

Please sign in to comment.