aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-02-21 22:21:54 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2015-02-21 22:21:54 -0500
commit21770332330800194cb9a76f802e9c77bcb690d3 (patch)
tree4e5e89e2f1f64630fdbb7f483a48d633c2cb462e
parentc8c6c9ba39e3fe65cf3497d692bf6fe808ff222b (diff)
parent444d2d33d8564f95df851ddaca80f640ca36934d (diff)
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Arnd Bergmann: "A few fixes that came in too late to make it into the first set of pull requests but would still be nice to have in -rc1. The majority of these are trivial build fixes for bugs that I found myself using randconfig testing, and a set of two patches from Uwe to mark DT strings as 'const' where appropriate, to resolve inconsistent section attributes" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: make of_device_ids const ARM: make arrays containing machine compatible strings const ARM: mm: Remove Kconfig symbol CACHE_PL310 ARM: rockchip: force built-in regulator support for PM ARM: mvebu: build armada375-smp code conditionally ARM: sti: always enable RESET_CONTROLLER ARM: rockchip: make rockchip_suspend_init conditional ARM: ixp4xx: fix {in,out}s{bwl} data types ARM: prima2: do not select SMP_ON_UP ARM: at91: fix pm declarations ARM: davinci: multi-soc kernels require AUTO_ZRELADDR ARM: davinci: davinci_cfg_reg cannot be init ARM: BCM: put back ARCH_MULTI_V7 dependency for mobile ARM: vexpress: use ARM_CPU_SUSPEND if needed ARM: dts: add I2C device nodes for Broadcom Cygnus ARM: dts: BCM63xx: fix L2 cache properties
-rw-r--r--arch/arm/boot/dts/bcm-cygnus.dtsi20
-rw-r--r--arch/arm/boot/dts/bcm63138.dtsi5
-rw-r--r--arch/arm/kernel/perf_event_cpu.c2
-rw-r--r--arch/arm/mach-at91/Kconfig1
-rw-r--r--arch/arm/mach-at91/at91rm9200_time.c2
-rw-r--r--arch/arm/mach-at91/generic.h8
-rw-r--r--arch/arm/mach-at91/pm.c4
-rw-r--r--arch/arm/mach-axxia/axxia.c2
-rw-r--r--arch/arm/mach-bcm/Kconfig4
-rw-r--r--arch/arm/mach-bcm/brcmstb.c2
-rw-r--r--arch/arm/mach-davinci/Kconfig2
-rw-r--r--arch/arm/mach-davinci/da8xx-dt.c2
-rw-r--r--arch/arm/mach-davinci/mux.c4
-rw-r--r--arch/arm/mach-exynos/exynos.c2
-rw-r--r--arch/arm/mach-exynos/suspend.c2
-rw-r--r--arch/arm/mach-highbank/highbank.c2
-rw-r--r--arch/arm/mach-hisi/hisilicon.c8
-rw-r--r--arch/arm/mach-imx/mmdc.c2
-rw-r--r--arch/arm/mach-ixp4xx/include/mach/io.h19
-rw-r--r--arch/arm/mach-keystone/keystone.c2
-rw-r--r--arch/arm/mach-keystone/pm_domain.c2
-rw-r--r--arch/arm/mach-mmp/time.c2
-rw-r--r--arch/arm/mach-mvebu/coherency.c2
-rw-r--r--arch/arm/mach-mvebu/pmsu.c2
-rw-r--r--arch/arm/mach-mvebu/system-controller.c2
-rw-r--r--arch/arm/mach-nspire/nspire.c2
-rw-r--r--arch/arm/mach-omap2/omap4-common.c2
-rw-r--r--arch/arm/mach-omap2/prm3xxx.c2
-rw-r--r--arch/arm/mach-omap2/prm44xx.c2
-rw-r--r--arch/arm/mach-prima2/Kconfig1
-rw-r--r--arch/arm/mach-prima2/common.c6
-rw-r--r--arch/arm/mach-prima2/platsmp.c2
-rw-r--r--arch/arm/mach-rockchip/Kconfig1
-rw-r--r--arch/arm/mach-rockchip/pm.h6
-rw-r--r--arch/arm/mach-s5pv210/s5pv210.c2
-rw-r--r--arch/arm/mach-shmobile/setup-emev2.c2
-rw-r--r--arch/arm/mach-sti/Kconfig1
-rw-r--r--arch/arm/mach-ux500/pm_domains.c2
-rw-r--r--arch/arm/mach-versatile/versatile_dt.c2
-rw-r--r--arch/arm/mach-vexpress/Kconfig1
-rw-r--r--arch/arm/mm/Kconfig7
41 files changed, 88 insertions, 58 deletions
diff --git a/arch/arm/boot/dts/bcm-cygnus.dtsi b/arch/arm/boot/dts/bcm-cygnus.dtsi
index 5126f9e77a98..ff5fb6ab0b97 100644
--- a/arch/arm/boot/dts/bcm-cygnus.dtsi
+++ b/arch/arm/boot/dts/bcm-cygnus.dtsi
@@ -70,6 +70,26 @@
70 }; 70 };
71 }; 71 };
72 72
73 i2c0: i2c@18008000 {
74 compatible = "brcm,cygnus-iproc-i2c", "brcm,iproc-i2c";
75 reg = <0x18008000 0x100>;
76 #address-cells = <1>;
77 #size-cells = <0>;
78 interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;
79 clock-frequency = <100000>;
80 status = "disabled";
81 };
82
83 i2c1: i2c@1800b000 {
84 compatible = "brcm,cygnus-iproc-i2c", "brcm,iproc-i2c";
85 reg = <0x1800b000 0x100>;
86 #address-cells = <1>;
87 #size-cells = <0>;
88 interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>;
89 clock-frequency = <100000>;
90 status = "disabled";
91 };
92
73 uart0: serial@18020000 { 93 uart0: serial@18020000 {
74 compatible = "snps,dw-apb-uart"; 94 compatible = "snps,dw-apb-uart";
75 reg = <0x18020000 0x100>; 95 reg = <0x18020000 0x100>;
diff --git a/arch/arm/boot/dts/bcm63138.dtsi b/arch/arm/boot/dts/bcm63138.dtsi
index d2d8e94e0aa2..f46329c8ad75 100644
--- a/arch/arm/boot/dts/bcm63138.dtsi
+++ b/arch/arm/boot/dts/bcm63138.dtsi
@@ -66,8 +66,9 @@
66 reg = <0x1d000 0x1000>; 66 reg = <0x1d000 0x1000>;
67 cache-unified; 67 cache-unified;
68 cache-level = <2>; 68 cache-level = <2>;
69 cache-sets = <16>; 69 cache-size = <524288>;
70 cache-size = <0x80000>; 70 cache-sets = <1024>;
71 cache-line-size = <32>;
71 interrupts = <GIC_PPI 0 IRQ_TYPE_LEVEL_HIGH>; 72 interrupts = <GIC_PPI 0 IRQ_TYPE_LEVEL_HIGH>;
72 }; 73 };
73 74
diff --git a/arch/arm/kernel/perf_event_cpu.c b/arch/arm/kernel/perf_event_cpu.c
index dd9acc95ebc0..61b53c46edfa 100644
--- a/arch/arm/kernel/perf_event_cpu.c
+++ b/arch/arm/kernel/perf_event_cpu.c
@@ -231,7 +231,7 @@ static void cpu_pmu_destroy(struct arm_pmu *cpu_pmu)
231/* 231/*
232 * PMU platform driver and devicetree bindings. 232 * PMU platform driver and devicetree bindings.
233 */ 233 */
234static struct of_device_id cpu_pmu_of_device_ids[] = { 234static const struct of_device_id cpu_pmu_of_device_ids[] = {
235 {.compatible = "arm,cortex-a17-pmu", .data = armv7_a17_pmu_init}, 235 {.compatible = "arm,cortex-a17-pmu", .data = armv7_a17_pmu_init},
236 {.compatible = "arm,cortex-a15-pmu", .data = armv7_a15_pmu_init}, 236 {.compatible = "arm,cortex-a15-pmu", .data = armv7_a15_pmu_init},
237 {.compatible = "arm,cortex-a12-pmu", .data = armv7_a12_pmu_init}, 237 {.compatible = "arm,cortex-a12-pmu", .data = armv7_a12_pmu_init},
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index c6740e359a44..c74a44324e5b 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -64,7 +64,6 @@ config SOC_SAMA5D4
64 select SOC_SAMA5 64 select SOC_SAMA5
65 select CLKSRC_MMIO 65 select CLKSRC_MMIO
66 select CACHE_L2X0 66 select CACHE_L2X0
67 select CACHE_PL310
68 select HAVE_FB_ATMEL 67 select HAVE_FB_ATMEL
69 select HAVE_AT91_UTMI 68 select HAVE_AT91_UTMI
70 select HAVE_AT91_SMD 69 select HAVE_AT91_SMD
diff --git a/arch/arm/mach-at91/at91rm9200_time.c b/arch/arm/mach-at91/at91rm9200_time.c
index 51761f8927b7..b00d09555f2b 100644
--- a/arch/arm/mach-at91/at91rm9200_time.c
+++ b/arch/arm/mach-at91/at91rm9200_time.c
@@ -183,7 +183,7 @@ static struct clock_event_device clkevt = {
183void __iomem *at91_st_base; 183void __iomem *at91_st_base;
184EXPORT_SYMBOL_GPL(at91_st_base); 184EXPORT_SYMBOL_GPL(at91_st_base);
185 185
186static struct of_device_id at91rm9200_st_timer_ids[] = { 186static const struct of_device_id at91rm9200_st_timer_ids[] = {
187 { .compatible = "atmel,at91rm9200-st" }, 187 { .compatible = "atmel,at91rm9200-st" },
188 { /* sentinel */ } 188 { /* sentinel */ }
189}; 189};
diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
index a6e726a6e0b5..583369ffc284 100644
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
@@ -35,10 +35,10 @@ extern void __init at91sam9260_pm_init(void);
35extern void __init at91sam9g45_pm_init(void); 35extern void __init at91sam9g45_pm_init(void);
36extern void __init at91sam9x5_pm_init(void); 36extern void __init at91sam9x5_pm_init(void);
37#else 37#else
38void __init at91rm9200_pm_init(void) { } 38static inline void __init at91rm9200_pm_init(void) { }
39void __init at91sam9260_pm_init(void) { } 39static inline void __init at91sam9260_pm_init(void) { }
40void __init at91sam9g45_pm_init(void) { } 40static inline void __init at91sam9g45_pm_init(void) { }
41void __init at91sam9x5_pm_init(void) { } 41static inline void __init at91sam9x5_pm_init(void) { }
42#endif 42#endif
43 43
44#endif /* _AT91_GENERIC_H */ 44#endif /* _AT91_GENERIC_H */
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index af8d8afc2e12..5e34fb143309 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -226,7 +226,7 @@ void at91_pm_set_standby(void (*at91_standby)(void))
226 } 226 }
227} 227}
228 228
229static struct of_device_id ramc_ids[] = { 229static const struct of_device_id ramc_ids[] __initconst = {
230 { .compatible = "atmel,at91rm9200-sdramc", .data = at91rm9200_standby }, 230 { .compatible = "atmel,at91rm9200-sdramc", .data = at91rm9200_standby },
231 { .compatible = "atmel,at91sam9260-sdramc", .data = at91sam9_sdram_standby }, 231 { .compatible = "atmel,at91sam9260-sdramc", .data = at91sam9_sdram_standby },
232 { .compatible = "atmel,at91sam9g45-ddramc", .data = at91_ddr_standby }, 232 { .compatible = "atmel,at91sam9g45-ddramc", .data = at91_ddr_standby },
@@ -234,7 +234,7 @@ static struct of_device_id ramc_ids[] = {
234 { /*sentinel*/ } 234 { /*sentinel*/ }
235}; 235};
236 236
237static void at91_dt_ramc(void) 237static __init void at91_dt_ramc(void)
238{ 238{
239 struct device_node *np; 239 struct device_node *np;
240 const struct of_device_id *of_id; 240 const struct of_device_id *of_id;
diff --git a/arch/arm/mach-axxia/axxia.c b/arch/arm/mach-axxia/axxia.c
index 19e5a1d95397..4db76a493c5a 100644
--- a/arch/arm/mach-axxia/axxia.c
+++ b/arch/arm/mach-axxia/axxia.c
@@ -16,7 +16,7 @@
16#include <linux/init.h> 16#include <linux/init.h>
17#include <asm/mach/arch.h> 17#include <asm/mach/arch.h>
18 18
19static const char *axxia_dt_match[] __initconst = { 19static const char *const axxia_dt_match[] __initconst = {
20 "lsi,axm5516", 20 "lsi,axm5516",
21 "lsi,axm5516-sim", 21 "lsi,axm5516-sim",
22 "lsi,axm5516-emu", 22 "lsi,axm5516-emu",
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index aaeec78c3ec4..8b11f44bb36e 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -68,7 +68,7 @@ config ARCH_BCM_MOBILE
68 This enables support for systems based on Broadcom mobile SoCs. 68 This enables support for systems based on Broadcom mobile SoCs.
69 69
70config ARCH_BCM_281XX 70config ARCH_BCM_281XX
71 bool "Broadcom BCM281XX SoC family" 71 bool "Broadcom BCM281XX SoC family" if ARCH_MULTI_V7
72 select ARCH_BCM_MOBILE 72 select ARCH_BCM_MOBILE
73 select HAVE_SMP 73 select HAVE_SMP
74 help 74 help
@@ -77,7 +77,7 @@ config ARCH_BCM_281XX
77 variants. 77 variants.
78 78
79config ARCH_BCM_21664 79config ARCH_BCM_21664
80 bool "Broadcom BCM21664 SoC family" 80 bool "Broadcom BCM21664 SoC family" if ARCH_MULTI_V7
81 select ARCH_BCM_MOBILE 81 select ARCH_BCM_MOBILE
82 select HAVE_SMP 82 select HAVE_SMP
83 help 83 help
diff --git a/arch/arm/mach-bcm/brcmstb.c b/arch/arm/mach-bcm/brcmstb.c
index 60a5afa06ed7..3a60f7ee3f0c 100644
--- a/arch/arm/mach-bcm/brcmstb.c
+++ b/arch/arm/mach-bcm/brcmstb.c
@@ -17,7 +17,7 @@
17#include <asm/mach-types.h> 17#include <asm/mach-types.h>
18#include <asm/mach/arch.h> 18#include <asm/mach/arch.h>
19 19
20static const char *brcmstb_match[] __initconst = { 20static const char *const brcmstb_match[] __initconst = {
21 "brcm,bcm7445", 21 "brcm,bcm7445",
22 "brcm,brcmstb", 22 "brcm,brcmstb",
23 NULL 23 NULL
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig
index 584e8d4e2892..cd30f6f5f2ff 100644
--- a/arch/arm/mach-davinci/Kconfig
+++ b/arch/arm/mach-davinci/Kconfig
@@ -32,12 +32,14 @@ config ARCH_DAVINCI_DM646x
32 32
33config ARCH_DAVINCI_DA830 33config ARCH_DAVINCI_DA830
34 bool "DA830/OMAP-L137/AM17x based system" 34 bool "DA830/OMAP-L137/AM17x based system"
35 depends on !ARCH_DAVINCI_DMx || AUTO_ZRELADDR
35 select ARCH_DAVINCI_DA8XX 36 select ARCH_DAVINCI_DA8XX
36 select CPU_DCACHE_WRITETHROUGH # needed on silicon revs 1.0, 1.1 37 select CPU_DCACHE_WRITETHROUGH # needed on silicon revs 1.0, 1.1
37 select CP_INTC 38 select CP_INTC
38 39
39config ARCH_DAVINCI_DA850 40config ARCH_DAVINCI_DA850
40 bool "DA850/OMAP-L138/AM18x based system" 41 bool "DA850/OMAP-L138/AM18x based system"
42 depends on !ARCH_DAVINCI_DMx || AUTO_ZRELADDR
41 select ARCH_DAVINCI_DA8XX 43 select ARCH_DAVINCI_DA8XX
42 select CP_INTC 44 select CP_INTC
43 45
diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c
index f703d82f08a8..438f68547f4c 100644
--- a/arch/arm/mach-davinci/da8xx-dt.c
+++ b/arch/arm/mach-davinci/da8xx-dt.c
@@ -20,7 +20,7 @@
20 20
21#define DA8XX_NUM_UARTS 3 21#define DA8XX_NUM_UARTS 3
22 22
23static struct of_device_id da8xx_irq_match[] __initdata = { 23static const struct of_device_id da8xx_irq_match[] __initconst = {
24 { .compatible = "ti,cp-intc", .data = cp_intc_of_init, }, 24 { .compatible = "ti,cp-intc", .data = cp_intc_of_init, },
25 { } 25 { }
26}; 26};
diff --git a/arch/arm/mach-davinci/mux.c b/arch/arm/mach-davinci/mux.c
index a8eb909a2b6c..6a2ff0a654a5 100644
--- a/arch/arm/mach-davinci/mux.c
+++ b/arch/arm/mach-davinci/mux.c
@@ -30,7 +30,7 @@ static void __iomem *pinmux_base;
30/* 30/*
31 * Sets the DAVINCI MUX register based on the table 31 * Sets the DAVINCI MUX register based on the table
32 */ 32 */
33int __init_or_module davinci_cfg_reg(const unsigned long index) 33int davinci_cfg_reg(const unsigned long index)
34{ 34{
35 static DEFINE_SPINLOCK(mux_spin_lock); 35 static DEFINE_SPINLOCK(mux_spin_lock);
36 struct davinci_soc_info *soc_info = &davinci_soc_info; 36 struct davinci_soc_info *soc_info = &davinci_soc_info;
@@ -101,7 +101,7 @@ int __init_or_module davinci_cfg_reg(const unsigned long index)
101} 101}
102EXPORT_SYMBOL(davinci_cfg_reg); 102EXPORT_SYMBOL(davinci_cfg_reg);
103 103
104int __init_or_module davinci_cfg_reg_list(const short pins[]) 104int davinci_cfg_reg_list(const short pins[])
105{ 105{
106 int i, error = -EINVAL; 106 int i, error = -EINVAL;
107 107
diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index 2013f73797ed..9e9dfdfad9d7 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -227,7 +227,7 @@ static void __init exynos_dt_machine_init(void)
227 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 227 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
228} 228}
229 229
230static char const *exynos_dt_compat[] __initconst = { 230static char const *const exynos_dt_compat[] __initconst = {
231 "samsung,exynos3", 231 "samsung,exynos3",
232 "samsung,exynos3250", 232 "samsung,exynos3250",
233 "samsung,exynos4", 233 "samsung,exynos4",
diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
index 666ec3e5b03f..52e2b1a2fddb 100644
--- a/arch/arm/mach-exynos/suspend.c
+++ b/arch/arm/mach-exynos/suspend.c
@@ -587,7 +587,7 @@ static struct exynos_pm_data exynos5420_pm_data = {
587 .cpu_suspend = exynos5420_cpu_suspend, 587 .cpu_suspend = exynos5420_cpu_suspend,
588}; 588};
589 589
590static struct of_device_id exynos_pmu_of_device_ids[] = { 590static const struct of_device_id exynos_pmu_of_device_ids[] __initconst = {
591 { 591 {
592 .compatible = "samsung,exynos3250-pmu", 592 .compatible = "samsung,exynos3250-pmu",
593 .data = &exynos3250_pm_data, 593 .data = &exynos3250_pm_data,
diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
index 07a09570175d..231fba0d03e5 100644
--- a/arch/arm/mach-highbank/highbank.c
+++ b/arch/arm/mach-highbank/highbank.c
@@ -169,7 +169,7 @@ static void __init highbank_init(void)
169 platform_device_register(&highbank_cpuidle_device); 169 platform_device_register(&highbank_cpuidle_device);
170} 170}
171 171
172static const char *highbank_match[] __initconst = { 172static const char *const highbank_match[] __initconst = {
173 "calxeda,highbank", 173 "calxeda,highbank",
174 "calxeda,ecx-2000", 174 "calxeda,ecx-2000",
175 NULL, 175 NULL,
diff --git a/arch/arm/mach-hisi/hisilicon.c b/arch/arm/mach-hisi/hisilicon.c
index 76b907078b58..c6bd7c7bd4aa 100644
--- a/arch/arm/mach-hisi/hisilicon.c
+++ b/arch/arm/mach-hisi/hisilicon.c
@@ -45,7 +45,7 @@ static void __init hi3620_map_io(void)
45 iotable_init(hi3620_io_desc, ARRAY_SIZE(hi3620_io_desc)); 45 iotable_init(hi3620_io_desc, ARRAY_SIZE(hi3620_io_desc));
46} 46}
47 47
48static const char *hi3xxx_compat[] __initconst = { 48static const char *const hi3xxx_compat[] __initconst = {
49 "hisilicon,hi3620-hi4511", 49 "hisilicon,hi3620-hi4511",
50 NULL, 50 NULL,
51}; 51};
@@ -55,7 +55,7 @@ DT_MACHINE_START(HI3620, "Hisilicon Hi3620 (Flattened Device Tree)")
55 .dt_compat = hi3xxx_compat, 55 .dt_compat = hi3xxx_compat,
56MACHINE_END 56MACHINE_END
57 57
58static const char *hix5hd2_compat[] __initconst = { 58static const char *const hix5hd2_compat[] __initconst = {
59 "hisilicon,hix5hd2", 59 "hisilicon,hix5hd2",
60 NULL, 60 NULL,
61}; 61};
@@ -64,7 +64,7 @@ DT_MACHINE_START(HIX5HD2_DT, "Hisilicon HIX5HD2 (Flattened Device Tree)")
64 .dt_compat = hix5hd2_compat, 64 .dt_compat = hix5hd2_compat,
65MACHINE_END 65MACHINE_END
66 66
67static const char *hip04_compat[] __initconst = { 67static const char *const hip04_compat[] __initconst = {
68 "hisilicon,hip04-d01", 68 "hisilicon,hip04-d01",
69 NULL, 69 NULL,
70}; 70};
@@ -73,7 +73,7 @@ DT_MACHINE_START(HIP04, "Hisilicon HiP04 (Flattened Device Tree)")
73 .dt_compat = hip04_compat, 73 .dt_compat = hip04_compat,
74MACHINE_END 74MACHINE_END
75 75
76static const char *hip01_compat[] __initconst = { 76static const char *const hip01_compat[] __initconst = {
77 "hisilicon,hip01", 77 "hisilicon,hip01",
78 "hisilicon,hip01-ca9x2", 78 "hisilicon,hip01-ca9x2",
79 NULL, 79 NULL,
diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c
index a377f95033ae..0411f0664c15 100644
--- a/arch/arm/mach-imx/mmdc.c
+++ b/arch/arm/mach-imx/mmdc.c
@@ -68,7 +68,7 @@ int imx_mmdc_get_ddr_type(void)
68 return ddr_type; 68 return ddr_type;
69} 69}
70 70
71static struct of_device_id imx_mmdc_dt_ids[] = { 71static const struct of_device_id imx_mmdc_dt_ids[] = {
72 { .compatible = "fsl,imx6q-mmdc", }, 72 { .compatible = "fsl,imx6q-mmdc", },
73 { /* sentinel */ } 73 { /* sentinel */ }
74}; 74};
diff --git a/arch/arm/mach-ixp4xx/include/mach/io.h b/arch/arm/mach-ixp4xx/include/mach/io.h
index 6a722860e34d..b02439019963 100644
--- a/arch/arm/mach-ixp4xx/include/mach/io.h
+++ b/arch/arm/mach-ixp4xx/include/mach/io.h
@@ -245,8 +245,10 @@ static inline void outb(u8 value, u32 addr)
245} 245}
246 246
247#define outsb outsb 247#define outsb outsb
248static inline void outsb(u32 io_addr, const u8 *vaddr, u32 count) 248static inline void outsb(u32 io_addr, const void *p, u32 count)
249{ 249{
250 const u8 *vaddr = p;
251
250 while (count--) 252 while (count--)
251 outb(*vaddr++, io_addr); 253 outb(*vaddr++, io_addr);
252} 254}
@@ -262,8 +264,9 @@ static inline void outw(u16 value, u32 addr)
262} 264}
263 265
264#define outsw outsw 266#define outsw outsw
265static inline void outsw(u32 io_addr, const u16 *vaddr, u32 count) 267static inline void outsw(u32 io_addr, const void *p, u32 count)
266{ 268{
269 const u16 *vaddr = p;
267 while (count--) 270 while (count--)
268 outw(cpu_to_le16(*vaddr++), io_addr); 271 outw(cpu_to_le16(*vaddr++), io_addr);
269} 272}
@@ -275,8 +278,9 @@ static inline void outl(u32 value, u32 addr)
275} 278}
276 279
277#define outsl outsl 280#define outsl outsl
278static inline void outsl(u32 io_addr, const u32 *vaddr, u32 count) 281static inline void outsl(u32 io_addr, const void *p, u32 count)
279{ 282{
283 const u32 *vaddr = p;
280 while (count--) 284 while (count--)
281 outl(cpu_to_le32(*vaddr++), io_addr); 285 outl(cpu_to_le32(*vaddr++), io_addr);
282} 286}
@@ -294,8 +298,9 @@ static inline u8 inb(u32 addr)
294} 298}
295 299
296#define insb insb 300#define insb insb
297static inline void insb(u32 io_addr, u8 *vaddr, u32 count) 301static inline void insb(u32 io_addr, void *p, u32 count)
298{ 302{
303 u8 *vaddr = p;
299 while (count--) 304 while (count--)
300 *vaddr++ = inb(io_addr); 305 *vaddr++ = inb(io_addr);
301} 306}
@@ -313,8 +318,9 @@ static inline u16 inw(u32 addr)
313} 318}
314 319
315#define insw insw 320#define insw insw
316static inline void insw(u32 io_addr, u16 *vaddr, u32 count) 321static inline void insw(u32 io_addr, void *p, u32 count)
317{ 322{
323 u16 *vaddr = p;
318 while (count--) 324 while (count--)
319 *vaddr++ = le16_to_cpu(inw(io_addr)); 325 *vaddr++ = le16_to_cpu(inw(io_addr));
320} 326}
@@ -330,8 +336,9 @@ static inline u32 inl(u32 addr)
330} 336}
331 337
332#define insl insl 338#define insl insl
333static inline void insl(u32 io_addr, u32 *vaddr, u32 count) 339static inline void insl(u32 io_addr, void *p, u32 count)
334{ 340{
341 u32 *vaddr = p;
335 while (count--) 342 while (count--)
336 *vaddr++ = le32_to_cpu(inl(io_addr)); 343 *vaddr++ = le32_to_cpu(inl(io_addr));
337} 344}
diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c
index 7f352de26099..06620875813a 100644
--- a/arch/arm/mach-keystone/keystone.c
+++ b/arch/arm/mach-keystone/keystone.c
@@ -103,7 +103,7 @@ static void __init keystone_init_meminfo(void)
103 pr_info("Switching to high address space at 0x%llx\n", (u64)offset); 103 pr_info("Switching to high address space at 0x%llx\n", (u64)offset);
104} 104}
105 105
106static const char *keystone_match[] __initconst = { 106static const char *const keystone_match[] __initconst = {
107 "ti,keystone", 107 "ti,keystone",
108 NULL, 108 NULL,
109}; 109};
diff --git a/arch/arm/mach-keystone/pm_domain.c b/arch/arm/mach-keystone/pm_domain.c
index ef6041e7e675..41bebfd296dc 100644
--- a/arch/arm/mach-keystone/pm_domain.c
+++ b/arch/arm/mach-keystone/pm_domain.c
@@ -61,7 +61,7 @@ static struct pm_clk_notifier_block platform_domain_notifier = {
61 .pm_domain = &keystone_pm_domain, 61 .pm_domain = &keystone_pm_domain,
62}; 62};
63 63
64static struct of_device_id of_keystone_table[] = { 64static const struct of_device_id of_keystone_table[] = {
65 {.compatible = "ti,keystone"}, 65 {.compatible = "ti,keystone"},
66 { /* end of list */ }, 66 { /* end of list */ },
67}; 67};
diff --git a/arch/arm/mach-mmp/time.c b/arch/arm/mach-mmp/time.c
index 2756351dbb35..10bfa03e58d4 100644
--- a/arch/arm/mach-mmp/time.c
+++ b/arch/arm/mach-mmp/time.c
@@ -213,7 +213,7 @@ void __init timer_init(int irq)
213} 213}
214 214
215#ifdef CONFIG_OF 215#ifdef CONFIG_OF
216static struct of_device_id mmp_timer_dt_ids[] = { 216static const struct of_device_id mmp_timer_dt_ids[] = {
217 { .compatible = "mrvl,mmp-timer", }, 217 { .compatible = "mrvl,mmp-timer", },
218 {} 218 {}
219}; 219};
diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c
index b5895f040caa..e46e9ea1e187 100644
--- a/arch/arm/mach-mvebu/coherency.c
+++ b/arch/arm/mach-mvebu/coherency.c
@@ -51,7 +51,7 @@ enum {
51 COHERENCY_FABRIC_TYPE_ARMADA_380, 51 COHERENCY_FABRIC_TYPE_ARMADA_380,
52}; 52};
53 53
54static struct of_device_id of_coherency_table[] = { 54static const struct of_device_id of_coherency_table[] = {
55 {.compatible = "marvell,coherency-fabric", 55 {.compatible = "marvell,coherency-fabric",
56 .data = (void *) COHERENCY_FABRIC_TYPE_ARMADA_370_XP }, 56 .data = (void *) COHERENCY_FABRIC_TYPE_ARMADA_370_XP },
57 {.compatible = "marvell,armada-375-coherency-fabric", 57 {.compatible = "marvell,armada-375-coherency-fabric",
diff --git a/arch/arm/mach-mvebu/pmsu.c b/arch/arm/mach-mvebu/pmsu.c
index d8ab605a44fa..8b9f5e202ccf 100644
--- a/arch/arm/mach-mvebu/pmsu.c
+++ b/arch/arm/mach-mvebu/pmsu.c
@@ -104,7 +104,7 @@ static void __iomem *pmsu_mp_base;
104 104
105static void *mvebu_cpu_resume; 105static void *mvebu_cpu_resume;
106 106
107static struct of_device_id of_pmsu_table[] = { 107static const struct of_device_id of_pmsu_table[] = {
108 { .compatible = "marvell,armada-370-pmsu", }, 108 { .compatible = "marvell,armada-370-pmsu", },
109 { .compatible = "marvell,armada-370-xp-pmsu", }, 109 { .compatible = "marvell,armada-370-xp-pmsu", },
110 { .compatible = "marvell,armada-380-pmsu", }, 110 { .compatible = "marvell,armada-380-pmsu", },
diff --git a/arch/arm/mach-mvebu/system-controller.c b/arch/arm/mach-mvebu/system-controller.c
index a068cb5c2ce8..c6c132acd7a6 100644
--- a/arch/arm/mach-mvebu/system-controller.c
+++ b/arch/arm/mach-mvebu/system-controller.c
@@ -126,7 +126,7 @@ int mvebu_system_controller_get_soc_id(u32 *dev, u32 *rev)
126 return -ENODEV; 126 return -ENODEV;
127} 127}
128 128
129#ifdef CONFIG_SMP 129#if defined(CONFIG_SMP) && defined(CONFIG_MACH_MVEBU_V7)
130void mvebu_armada375_smp_wa_init(void) 130void mvebu_armada375_smp_wa_init(void)
131{ 131{
132 u32 dev, rev; 132 u32 dev, rev;
diff --git a/arch/arm/mach-nspire/nspire.c b/arch/arm/mach-nspire/nspire.c
index 3d24ebf12095..3445a5686805 100644
--- a/arch/arm/mach-nspire/nspire.c
+++ b/arch/arm/mach-nspire/nspire.c
@@ -27,7 +27,7 @@
27#include "mmio.h" 27#include "mmio.h"
28#include "clcd.h" 28#include "clcd.h"
29 29
30static const char *nspire_dt_match[] __initconst = { 30static const char *const nspire_dt_match[] __initconst = {
31 "ti,nspire", 31 "ti,nspire",
32 "ti,nspire-cx", 32 "ti,nspire-cx",
33 "ti,nspire-tp", 33 "ti,nspire-tp",
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index 2418bdf28ca2..cee0fe1ee6ff 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -242,7 +242,7 @@ static int __init omap4_sar_ram_init(void)
242} 242}
243omap_early_initcall(omap4_sar_ram_init); 243omap_early_initcall(omap4_sar_ram_init);
244 244
245static struct of_device_id gic_match[] = { 245static const struct of_device_id gic_match[] = {
246 { .compatible = "arm,cortex-a9-gic", }, 246 { .compatible = "arm,cortex-a9-gic", },
247 { .compatible = "arm,cortex-a15-gic", }, 247 { .compatible = "arm,cortex-a15-gic", },
248 { }, 248 { },
diff --git a/arch/arm/mach-omap2/prm3xxx.c b/arch/arm/mach-omap2/prm3xxx.c
index c5e00c6714b1..5713bbdf83bc 100644
--- a/arch/arm/mach-omap2/prm3xxx.c
+++ b/arch/arm/mach-omap2/prm3xxx.c
@@ -674,7 +674,7 @@ int __init omap3xxx_prm_init(void)
674 return prm_register(&omap3xxx_prm_ll_data); 674 return prm_register(&omap3xxx_prm_ll_data);
675} 675}
676 676
677static struct of_device_id omap3_prm_dt_match_table[] = { 677static const struct of_device_id omap3_prm_dt_match_table[] = {
678 { .compatible = "ti,omap3-prm" }, 678 { .compatible = "ti,omap3-prm" },
679 { } 679 { }
680}; 680};
diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-omap2/prm44xx.c
index 408c64efb807..a08a617a6c11 100644
--- a/arch/arm/mach-omap2/prm44xx.c
+++ b/arch/arm/mach-omap2/prm44xx.c
@@ -712,7 +712,7 @@ int __init omap44xx_prm_init(void)
712 return prm_register(&omap44xx_prm_ll_data); 712 return prm_register(&omap44xx_prm_ll_data);
713} 713}
714 714
715static struct of_device_id omap_prm_dt_match_table[] = { 715static const struct of_device_id omap_prm_dt_match_table[] = {
716 { .compatible = "ti,omap4-prm" }, 716 { .compatible = "ti,omap4-prm" },
717 { .compatible = "ti,omap5-prm" }, 717 { .compatible = "ti,omap5-prm" },
718 { .compatible = "ti,dra7-prm" }, 718 { .compatible = "ti,dra7-prm" },
diff --git a/arch/arm/mach-prima2/Kconfig b/arch/arm/mach-prima2/Kconfig
index a219dc310d5d..e03d8b5c9ad0 100644
--- a/arch/arm/mach-prima2/Kconfig
+++ b/arch/arm/mach-prima2/Kconfig
@@ -27,7 +27,6 @@ config ARCH_ATLAS7
27 select CPU_V7 27 select CPU_V7
28 select HAVE_ARM_SCU if SMP 28 select HAVE_ARM_SCU if SMP
29 select HAVE_SMP 29 select HAVE_SMP
30 select SMP_ON_UP if SMP
31 help 30 help
32 Support for CSR SiRFSoC ARM Cortex A7 Platform 31 Support for CSR SiRFSoC ARM Cortex A7 Platform
33 32
diff --git a/arch/arm/mach-prima2/common.c b/arch/arm/mach-prima2/common.c
index 0c819bb88418..8cadb302a7d2 100644
--- a/arch/arm/mach-prima2/common.c
+++ b/arch/arm/mach-prima2/common.c
@@ -21,7 +21,7 @@ static void __init sirfsoc_init_late(void)
21} 21}
22 22
23#ifdef CONFIG_ARCH_ATLAS6 23#ifdef CONFIG_ARCH_ATLAS6
24static const char *atlas6_dt_match[] __initconst = { 24static const char *const atlas6_dt_match[] __initconst = {
25 "sirf,atlas6", 25 "sirf,atlas6",
26 NULL 26 NULL
27}; 27};
@@ -36,7 +36,7 @@ MACHINE_END
36#endif 36#endif
37 37
38#ifdef CONFIG_ARCH_PRIMA2 38#ifdef CONFIG_ARCH_PRIMA2
39static const char *prima2_dt_match[] __initconst = { 39static const char *const prima2_dt_match[] __initconst = {
40 "sirf,prima2", 40 "sirf,prima2",
41 NULL 41 NULL
42}; 42};
@@ -52,7 +52,7 @@ MACHINE_END
52#endif 52#endif
53 53
54#ifdef CONFIG_ARCH_ATLAS7 54#ifdef CONFIG_ARCH_ATLAS7
55static const char *atlas7_dt_match[] __initdata = { 55static const char *const atlas7_dt_match[] __initconst = {
56 "sirf,atlas7", 56 "sirf,atlas7",
57 NULL 57 NULL
58}; 58};
diff --git a/arch/arm/mach-prima2/platsmp.c b/arch/arm/mach-prima2/platsmp.c
index fc2b03c81e5f..e46c91094dde 100644
--- a/arch/arm/mach-prima2/platsmp.c
+++ b/arch/arm/mach-prima2/platsmp.c
@@ -40,7 +40,7 @@ static void sirfsoc_secondary_init(unsigned int cpu)
40 spin_unlock(&boot_lock); 40 spin_unlock(&boot_lock);
41} 41}
42 42
43static struct of_device_id clk_ids[] = { 43static const struct of_device_id clk_ids[] = {
44 { .compatible = "sirf,atlas7-clkc" }, 44 { .compatible = "sirf,atlas7-clkc" },
45 {}, 45 {},
46}; 46};
diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index 5078932c1683..ae4eb7cc4bcc 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -11,6 +11,7 @@ config ARCH_ROCKCHIP
11 select HAVE_ARM_SCU if SMP 11 select HAVE_ARM_SCU if SMP
12 select HAVE_ARM_TWD if SMP 12 select HAVE_ARM_TWD if SMP
13 select DW_APB_TIMER_OF 13 select DW_APB_TIMER_OF
14 select REGULATOR if PM
14 select ROCKCHIP_TIMER 15 select ROCKCHIP_TIMER
15 select ARM_GLOBAL_TIMER 16 select ARM_GLOBAL_TIMER
16 select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK 17 select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
diff --git a/arch/arm/mach-rockchip/pm.h b/arch/arm/mach-rockchip/pm.h
index 7d752ff39f91..7c889c04604b 100644
--- a/arch/arm/mach-rockchip/pm.h
+++ b/arch/arm/mach-rockchip/pm.h
@@ -24,7 +24,13 @@ extern unsigned long rkpm_bootdata_ddr_data;
24extern unsigned long rk3288_bootram_sz; 24extern unsigned long rk3288_bootram_sz;
25 25
26void rockchip_slp_cpu_resume(void); 26void rockchip_slp_cpu_resume(void);
27#ifdef CONFIG_PM_SLEEP
27void __init rockchip_suspend_init(void); 28void __init rockchip_suspend_init(void);
29#else
30static inline void rockchip_suspend_init(void)
31{
32}
33#endif
28 34
29/****** following is rk3288 defined **********/ 35/****** following is rk3288 defined **********/
30#define RK3288_PMU_WAKEUP_CFG0 0x00 36#define RK3288_PMU_WAKEUP_CFG0 0x00
diff --git a/arch/arm/mach-s5pv210/s5pv210.c b/arch/arm/mach-s5pv210/s5pv210.c
index 43eb1eaea0c9..83e656ea95ae 100644
--- a/arch/arm/mach-s5pv210/s5pv210.c
+++ b/arch/arm/mach-s5pv210/s5pv210.c
@@ -63,7 +63,7 @@ static void __init s5pv210_dt_init_late(void)
63 s5pv210_pm_init(); 63 s5pv210_pm_init();
64} 64}
65 65
66static char const *s5pv210_dt_compat[] __initconst = { 66static char const *const s5pv210_dt_compat[] __initconst = {
67 "samsung,s5pc110", 67 "samsung,s5pc110",
68 "samsung,s5pv210", 68 "samsung,s5pv210",
69 NULL 69 NULL
diff --git a/arch/arm/mach-shmobile/setup-emev2.c b/arch/arm/mach-shmobile/setup-emev2.c
index aad97be9cbe1..37f7b15c01bc 100644
--- a/arch/arm/mach-shmobile/setup-emev2.c
+++ b/arch/arm/mach-shmobile/setup-emev2.c
@@ -37,7 +37,7 @@ static void __init emev2_map_io(void)
37 iotable_init(emev2_io_desc, ARRAY_SIZE(emev2_io_desc)); 37 iotable_init(emev2_io_desc, ARRAY_SIZE(emev2_io_desc));
38} 38}
39 39
40static const char *emev2_boards_compat_dt[] __initconst = { 40static const char *const emev2_boards_compat_dt[] __initconst = {
41 "renesas,emev2", 41 "renesas,emev2",
42 NULL, 42 NULL,
43}; 43};
diff --git a/arch/arm/mach-sti/Kconfig b/arch/arm/mach-sti/Kconfig
index 8825bc9e2553..3b1ac463a494 100644
--- a/arch/arm/mach-sti/Kconfig
+++ b/arch/arm/mach-sti/Kconfig
@@ -13,6 +13,7 @@ menuconfig ARCH_STI
13 select ARM_ERRATA_775420 13 select ARM_ERRATA_775420
14 select PL310_ERRATA_753970 if CACHE_L2X0 14 select PL310_ERRATA_753970 if CACHE_L2X0
15 select PL310_ERRATA_769419 if CACHE_L2X0 15 select PL310_ERRATA_769419 if CACHE_L2X0
16 select RESET_CONTROLLER
16 help 17 help
17 Include support for STiH41x SOCs like STiH415/416 using the device tree 18 Include support for STiH41x SOCs like STiH415/416 using the device tree
18 for discovery 19 for discovery
diff --git a/arch/arm/mach-ux500/pm_domains.c b/arch/arm/mach-ux500/pm_domains.c
index 0d4b5b46f15b..4d71c90f801c 100644
--- a/arch/arm/mach-ux500/pm_domains.c
+++ b/arch/arm/mach-ux500/pm_domains.c
@@ -49,7 +49,7 @@ static struct generic_pm_domain *ux500_pm_domains[NR_DOMAINS] = {
49 [DOMAIN_VAPE] = &ux500_pm_domain_vape, 49 [DOMAIN_VAPE] = &ux500_pm_domain_vape,
50}; 50};
51 51
52static struct of_device_id ux500_pm_domain_matches[] = { 52static const struct of_device_id ux500_pm_domain_matches[] __initconst = {
53 { .compatible = "stericsson,ux500-pm-domains", }, 53 { .compatible = "stericsson,ux500-pm-domains", },
54 { }, 54 { },
55}; 55};
diff --git a/arch/arm/mach-versatile/versatile_dt.c b/arch/arm/mach-versatile/versatile_dt.c
index 9f9bc61ca64b..7de3e92a13b0 100644
--- a/arch/arm/mach-versatile/versatile_dt.c
+++ b/arch/arm/mach-versatile/versatile_dt.c
@@ -35,7 +35,7 @@ static void __init versatile_dt_init(void)
35 versatile_auxdata_lookup, NULL); 35 versatile_auxdata_lookup, NULL);
36} 36}
37 37
38static const char *versatile_dt_match[] __initconst = { 38static const char *const versatile_dt_match[] __initconst = {
39 "arm,versatile-ab", 39 "arm,versatile-ab",
40 "arm,versatile-pb", 40 "arm,versatile-pb",
41 NULL, 41 NULL,
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index d6b16d9a7838..3c2509b4b694 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -73,6 +73,7 @@ config ARCH_VEXPRESS_TC2_PM
73 depends on MCPM 73 depends on MCPM
74 select ARM_CCI 74 select ARM_CCI
75 select ARCH_VEXPRESS_SPC 75 select ARCH_VEXPRESS_SPC
76 select ARM_CPU_SUSPEND
76 help 77 help
77 Support for CPU and cluster power management on Versatile Express 78 Support for CPU and cluster power management on Versatile Express
78 with a TC2 (A15x2 A7x3) big.LITTLE core tile. 79 with a TC2 (A15x2 A7x3) big.LITTLE core tile.
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index c43c71455566..9b4f29e595a4 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -892,13 +892,6 @@ config CACHE_L2X0
892 892
893if CACHE_L2X0 893if CACHE_L2X0
894 894
895config CACHE_PL310
896 bool
897 default y if CPU_V7 && !(CPU_V6 || CPU_V6K)
898 help
899 This option enables optimisations for the PL310 cache
900 controller.
901
902config PL310_ERRATA_588369 895config PL310_ERRATA_588369
903 bool "PL310 errata: Clean & Invalidate maintenance operations do not invalidate clean lines" 896 bool "PL310 errata: Clean & Invalidate maintenance operations do not invalidate clean lines"
904 help 897 help