diff options
94 files changed, 181 insertions, 203 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index b934d19a154c..8d55a3dc43bd 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -697,7 +697,8 @@ config ARCH_MULTI_CPU_AUTO | |||
697 | endmenu | 697 | endmenu |
698 | 698 | ||
699 | config ARCH_VIRT | 699 | config ARCH_VIRT |
700 | bool "Dummy Virtual Machine" if ARCH_MULTI_V7 | 700 | bool "Dummy Virtual Machine" |
701 | depends on ARCH_MULTI_V7 | ||
701 | select ARM_AMBA | 702 | select ARM_AMBA |
702 | select ARM_GIC | 703 | select ARM_GIC |
703 | select ARM_GIC_V3 | 704 | select ARM_GIC_V3 |
diff --git a/arch/arm/common/mcpm_platsmp.c b/arch/arm/common/mcpm_platsmp.c index 2b25b6038f66..c773157646d3 100644 --- a/arch/arm/common/mcpm_platsmp.c +++ b/arch/arm/common/mcpm_platsmp.c | |||
@@ -83,7 +83,7 @@ static void mcpm_cpu_die(unsigned int cpu) | |||
83 | 83 | ||
84 | #endif | 84 | #endif |
85 | 85 | ||
86 | static struct smp_operations __initdata mcpm_smp_ops = { | 86 | static const struct smp_operations mcpm_smp_ops __initconst = { |
87 | .smp_boot_secondary = mcpm_boot_secondary, | 87 | .smp_boot_secondary = mcpm_boot_secondary, |
88 | .smp_secondary_init = mcpm_secondary_init, | 88 | .smp_secondary_init = mcpm_secondary_init, |
89 | #ifdef CONFIG_HOTPLUG_CPU | 89 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/include/asm/psci.h b/arch/arm/include/asm/psci.h index 68ee3ce17b82..97735a8ff451 100644 --- a/arch/arm/include/asm/psci.h +++ b/arch/arm/include/asm/psci.h | |||
@@ -14,7 +14,7 @@ | |||
14 | #ifndef __ASM_ARM_PSCI_H | 14 | #ifndef __ASM_ARM_PSCI_H |
15 | #define __ASM_ARM_PSCI_H | 15 | #define __ASM_ARM_PSCI_H |
16 | 16 | ||
17 | extern struct smp_operations psci_smp_ops; | 17 | extern const struct smp_operations psci_smp_ops; |
18 | 18 | ||
19 | #ifdef CONFIG_ARM_PSCI | 19 | #ifdef CONFIG_ARM_PSCI |
20 | bool psci_smp_available(void); | 20 | bool psci_smp_available(void); |
diff --git a/arch/arm/kernel/psci_smp.c b/arch/arm/kernel/psci_smp.c index 9d479b2ea40d..cb3fcaeb2233 100644 --- a/arch/arm/kernel/psci_smp.c +++ b/arch/arm/kernel/psci_smp.c | |||
@@ -120,7 +120,7 @@ bool __init psci_smp_available(void) | |||
120 | return (psci_ops.cpu_on != NULL); | 120 | return (psci_ops.cpu_on != NULL); |
121 | } | 121 | } |
122 | 122 | ||
123 | struct smp_operations __initdata psci_smp_ops = { | 123 | const struct smp_operations psci_smp_ops __initconst = { |
124 | .smp_boot_secondary = psci_boot_secondary, | 124 | .smp_boot_secondary = psci_boot_secondary, |
125 | #ifdef CONFIG_HOTPLUG_CPU | 125 | #ifdef CONFIG_HOTPLUG_CPU |
126 | .cpu_disable = psci_cpu_disable, | 126 | .cpu_disable = psci_cpu_disable, |
diff --git a/arch/arm/mach-alpine/Kconfig b/arch/arm/mach-alpine/Kconfig index 2c44b930505a..5c2d54f59f53 100644 --- a/arch/arm/mach-alpine/Kconfig +++ b/arch/arm/mach-alpine/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | config ARCH_ALPINE | 1 | config ARCH_ALPINE |
2 | bool "Annapurna Labs Alpine platform" if ARCH_MULTI_V7 | 2 | bool "Annapurna Labs Alpine platform" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARM_AMBA | 4 | select ARM_AMBA |
4 | select ARM_GIC | 5 | select ARM_GIC |
5 | select GENERIC_IRQ_CHIP | 6 | select GENERIC_IRQ_CHIP |
diff --git a/arch/arm/mach-alpine/platsmp.c b/arch/arm/mach-alpine/platsmp.c index f78429f48bd6..dd77ea25e7ca 100644 --- a/arch/arm/mach-alpine/platsmp.c +++ b/arch/arm/mach-alpine/platsmp.c | |||
@@ -42,7 +42,7 @@ static void __init alpine_smp_prepare_cpus(unsigned int max_cpus) | |||
42 | alpine_cpu_pm_init(); | 42 | alpine_cpu_pm_init(); |
43 | } | 43 | } |
44 | 44 | ||
45 | static struct smp_operations alpine_smp_ops __initdata = { | 45 | static const struct smp_operations alpine_smp_ops __initconst = { |
46 | .smp_prepare_cpus = alpine_smp_prepare_cpus, | 46 | .smp_prepare_cpus = alpine_smp_prepare_cpus, |
47 | .smp_boot_secondary = alpine_boot_secondary, | 47 | .smp_boot_secondary = alpine_boot_secondary, |
48 | }; | 48 | }; |
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index 28656c2b54a0..23be2e433097 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig | |||
@@ -8,7 +8,8 @@ menuconfig ARCH_AT91 | |||
8 | 8 | ||
9 | if ARCH_AT91 | 9 | if ARCH_AT91 |
10 | config SOC_SAMA5D2 | 10 | config SOC_SAMA5D2 |
11 | bool "SAMA5D2 family" if ARCH_MULTI_V7 | 11 | bool "SAMA5D2 family" |
12 | depends on ARCH_MULTI_V7 | ||
12 | select SOC_SAMA5 | 13 | select SOC_SAMA5 |
13 | select CACHE_L2X0 | 14 | select CACHE_L2X0 |
14 | select HAVE_FB_ATMEL | 15 | select HAVE_FB_ATMEL |
@@ -21,7 +22,8 @@ config SOC_SAMA5D2 | |||
21 | Select this if ou are using one of Atmel's SAMA5D2 family SoC. | 22 | Select this if ou are using one of Atmel's SAMA5D2 family SoC. |
22 | 23 | ||
23 | config SOC_SAMA5D3 | 24 | config SOC_SAMA5D3 |
24 | bool "SAMA5D3 family" if ARCH_MULTI_V7 | 25 | bool "SAMA5D3 family" |
26 | depends on ARCH_MULTI_V7 | ||
25 | select SOC_SAMA5 | 27 | select SOC_SAMA5 |
26 | select HAVE_FB_ATMEL | 28 | select HAVE_FB_ATMEL |
27 | select HAVE_AT91_UTMI | 29 | select HAVE_AT91_UTMI |
@@ -33,7 +35,8 @@ config SOC_SAMA5D3 | |||
33 | This support covers SAMA5D31, SAMA5D33, SAMA5D34, SAMA5D35, SAMA5D36. | 35 | This support covers SAMA5D31, SAMA5D33, SAMA5D34, SAMA5D35, SAMA5D36. |
34 | 36 | ||
35 | config SOC_SAMA5D4 | 37 | config SOC_SAMA5D4 |
36 | bool "SAMA5D4 family" if ARCH_MULTI_V7 | 38 | bool "SAMA5D4 family" |
39 | depends on ARCH_MULTI_V7 | ||
37 | select SOC_SAMA5 | 40 | select SOC_SAMA5 |
38 | select CACHE_L2X0 | 41 | select CACHE_L2X0 |
39 | select HAVE_FB_ATMEL | 42 | select HAVE_FB_ATMEL |
@@ -46,7 +49,8 @@ config SOC_SAMA5D4 | |||
46 | Select this if you are using one of Atmel's SAMA5D4 family SoC. | 49 | Select this if you are using one of Atmel's SAMA5D4 family SoC. |
47 | 50 | ||
48 | config SOC_AT91RM9200 | 51 | config SOC_AT91RM9200 |
49 | bool "AT91RM9200" if ARCH_MULTI_V4T | 52 | bool "AT91RM9200" |
53 | depends on ARCH_MULTI_V4T | ||
50 | select ATMEL_AIC_IRQ | 54 | select ATMEL_AIC_IRQ |
51 | select ATMEL_ST | 55 | select ATMEL_ST |
52 | select CPU_ARM920T | 56 | select CPU_ARM920T |
@@ -59,7 +63,8 @@ config SOC_AT91RM9200 | |||
59 | Select this if you are using Atmel's AT91RM9200 SoC. | 63 | Select this if you are using Atmel's AT91RM9200 SoC. |
60 | 64 | ||
61 | config SOC_AT91SAM9 | 65 | config SOC_AT91SAM9 |
62 | bool "AT91SAM9" if ARCH_MULTI_V5 | 66 | bool "AT91SAM9" |
67 | depends on ARCH_MULTI_V5 | ||
63 | select ATMEL_AIC_IRQ | 68 | select ATMEL_AIC_IRQ |
64 | select ATMEL_SDRAMC | 69 | select ATMEL_SDRAMC |
65 | select CPU_ARM926T | 70 | select CPU_ARM926T |
diff --git a/arch/arm/mach-axxia/Kconfig b/arch/arm/mach-axxia/Kconfig index 8be7e0ae1922..6c6d5e76565b 100644 --- a/arch/arm/mach-axxia/Kconfig +++ b/arch/arm/mach-axxia/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | config ARCH_AXXIA | 1 | config ARCH_AXXIA |
2 | bool "LSI Axxia platforms" if (ARCH_MULTI_V7 && ARM_LPAE) | 2 | bool "LSI Axxia platforms" |
3 | depends on ARCH_MULTI_V7 && ARM_LPAE | ||
3 | select ARCH_DMA_ADDR_T_64BIT | 4 | select ARCH_DMA_ADDR_T_64BIT |
4 | select ARM_AMBA | 5 | select ARM_AMBA |
5 | select ARM_GIC | 6 | select ARM_GIC |
diff --git a/arch/arm/mach-axxia/platsmp.c b/arch/arm/mach-axxia/platsmp.c index 959d4df3d2b6..ffbd71d45008 100644 --- a/arch/arm/mach-axxia/platsmp.c +++ b/arch/arm/mach-axxia/platsmp.c | |||
@@ -82,7 +82,7 @@ static void __init axxia_smp_prepare_cpus(unsigned int max_cpus) | |||
82 | } | 82 | } |
83 | } | 83 | } |
84 | 84 | ||
85 | static struct smp_operations axxia_smp_ops __initdata = { | 85 | static const struct smp_operations axxia_smp_ops __initconst = { |
86 | .smp_prepare_cpus = axxia_smp_prepare_cpus, | 86 | .smp_prepare_cpus = axxia_smp_prepare_cpus, |
87 | .smp_boot_secondary = axxia_boot_secondary, | 87 | .smp_boot_secondary = axxia_boot_secondary, |
88 | }; | 88 | }; |
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig index 8c53c55be1fe..77116dcac01a 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_BCM | 1 | menuconfig ARCH_BCM |
2 | bool "Broadcom SoC Support" if ARCH_MULTI_V6_V7 | 2 | bool "Broadcom SoC Support" |
3 | depends on ARCH_MULTI_V6_V7 | ||
3 | help | 4 | help |
4 | This enables support for Broadcom ARM based SoC chips | 5 | This enables support for Broadcom ARM based SoC chips |
5 | 6 | ||
@@ -27,7 +28,8 @@ config ARCH_BCM_IPROC | |||
27 | Currently supported SoCs are Cygnus. | 28 | Currently supported SoCs are Cygnus. |
28 | 29 | ||
29 | config ARCH_BCM_CYGNUS | 30 | config ARCH_BCM_CYGNUS |
30 | bool "Broadcom Cygnus Support" if ARCH_MULTI_V7 | 31 | bool "Broadcom Cygnus Support" |
32 | depends on ARCH_MULTI_V7 | ||
31 | select ARCH_BCM_IPROC | 33 | select ARCH_BCM_IPROC |
32 | help | 34 | help |
33 | Enable support for the Cygnus family, | 35 | Enable support for the Cygnus family, |
@@ -36,7 +38,8 @@ config ARCH_BCM_CYGNUS | |||
36 | BCM58300, BCM58302, BCM58303, BCM58305. | 38 | BCM58300, BCM58302, BCM58303, BCM58305. |
37 | 39 | ||
38 | config ARCH_BCM_NSP | 40 | config ARCH_BCM_NSP |
39 | bool "Broadcom Northstar Plus SoC Support" if ARCH_MULTI_V7 | 41 | bool "Broadcom Northstar Plus SoC Support" |
42 | depends on ARCH_MULTI_V7 | ||
40 | select ARCH_BCM_IPROC | 43 | select ARCH_BCM_IPROC |
41 | select ARM_ERRATA_754322 | 44 | select ARM_ERRATA_754322 |
42 | select ARM_ERRATA_775420 | 45 | select ARM_ERRATA_775420 |
@@ -50,7 +53,8 @@ config ARCH_BCM_NSP | |||
50 | NAND flash, SATA and several other IO controllers. | 53 | NAND flash, SATA and several other IO controllers. |
51 | 54 | ||
52 | config ARCH_BCM_5301X | 55 | config ARCH_BCM_5301X |
53 | bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7 | 56 | bool "Broadcom BCM470X / BCM5301X ARM SoC" |
57 | depends on ARCH_MULTI_V7 | ||
54 | select ARCH_BCM_IPROC | 58 | select ARCH_BCM_IPROC |
55 | help | 59 | help |
56 | Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores. | 60 | Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores. |
@@ -82,7 +86,8 @@ config ARCH_BCM_MOBILE | |||
82 | This enables support for systems based on Broadcom mobile SoCs. | 86 | This enables support for systems based on Broadcom mobile SoCs. |
83 | 87 | ||
84 | config ARCH_BCM_281XX | 88 | config ARCH_BCM_281XX |
85 | bool "Broadcom BCM281XX SoC family" if ARCH_MULTI_V7 | 89 | bool "Broadcom BCM281XX SoC family" |
90 | depends on ARCH_MULTI_V7 | ||
86 | select ARCH_BCM_MOBILE | 91 | select ARCH_BCM_MOBILE |
87 | select HAVE_SMP | 92 | select HAVE_SMP |
88 | help | 93 | help |
@@ -91,7 +96,8 @@ config ARCH_BCM_281XX | |||
91 | variants. | 96 | variants. |
92 | 97 | ||
93 | config ARCH_BCM_21664 | 98 | config ARCH_BCM_21664 |
94 | bool "Broadcom BCM21664 SoC family" if ARCH_MULTI_V7 | 99 | bool "Broadcom BCM21664 SoC family" |
100 | depends on ARCH_MULTI_V7 | ||
95 | select ARCH_BCM_MOBILE | 101 | select ARCH_BCM_MOBILE |
96 | select HAVE_SMP | 102 | select HAVE_SMP |
97 | help | 103 | help |
@@ -122,7 +128,8 @@ config ARCH_BCM_MOBILE_SMP | |||
122 | comment "Other Architectures" | 128 | comment "Other Architectures" |
123 | 129 | ||
124 | config ARCH_BCM2835 | 130 | config ARCH_BCM2835 |
125 | bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 | 131 | bool "Broadcom BCM2835 family" |
132 | depends on ARCH_MULTI_V6 | ||
126 | select ARCH_REQUIRE_GPIOLIB | 133 | select ARCH_REQUIRE_GPIOLIB |
127 | select ARM_AMBA | 134 | select ARM_AMBA |
128 | select ARM_ERRATA_411920 | 135 | select ARM_ERRATA_411920 |
@@ -135,7 +142,8 @@ config ARCH_BCM2835 | |||
135 | used in the Raspberry Pi and Roku 2 devices. | 142 | used in the Raspberry Pi and Roku 2 devices. |
136 | 143 | ||
137 | config ARCH_BCM_63XX | 144 | config ARCH_BCM_63XX |
138 | bool "Broadcom BCM63xx DSL SoC" if ARCH_MULTI_V7 | 145 | bool "Broadcom BCM63xx DSL SoC" |
146 | depends on ARCH_MULTI_V7 | ||
139 | depends on MMU | 147 | depends on MMU |
140 | select ARM_ERRATA_754322 | 148 | select ARM_ERRATA_754322 |
141 | select ARM_ERRATA_764369 if SMP | 149 | select ARM_ERRATA_764369 if SMP |
@@ -152,7 +160,8 @@ config ARCH_BCM_63XX | |||
152 | the BCM63138 variant. | 160 | the BCM63138 variant. |
153 | 161 | ||
154 | config ARCH_BRCMSTB | 162 | config ARCH_BRCMSTB |
155 | bool "Broadcom BCM7XXX based boards" if ARCH_MULTI_V7 | 163 | bool "Broadcom BCM7XXX based boards" |
164 | depends on ARCH_MULTI_V7 | ||
156 | select ARM_GIC | 165 | select ARM_GIC |
157 | select ARM_ERRATA_798181 if SMP | 166 | select ARM_ERRATA_798181 if SMP |
158 | select HAVE_ARM_ARCH_TIMER | 167 | select HAVE_ARM_ARCH_TIMER |
diff --git a/arch/arm/mach-bcm/bcm63xx_smp.c b/arch/arm/mach-bcm/bcm63xx_smp.c index 19be90421f4d..9b6727ed68cd 100644 --- a/arch/arm/mach-bcm/bcm63xx_smp.c +++ b/arch/arm/mach-bcm/bcm63xx_smp.c | |||
@@ -161,7 +161,7 @@ static void __init bcm63138_smp_prepare_cpus(unsigned int max_cpus) | |||
161 | } | 161 | } |
162 | } | 162 | } |
163 | 163 | ||
164 | struct smp_operations bcm63138_smp_ops __initdata = { | 164 | static const struct smp_operations bcm63138_smp_ops __initconst = { |
165 | .smp_prepare_cpus = bcm63138_smp_prepare_cpus, | 165 | .smp_prepare_cpus = bcm63138_smp_prepare_cpus, |
166 | .smp_boot_secondary = bcm63138_smp_boot_secondary, | 166 | .smp_boot_secondary = bcm63138_smp_boot_secondary, |
167 | }; | 167 | }; |
diff --git a/arch/arm/mach-bcm/kona_smp.c b/arch/arm/mach-bcm/kona_smp.c index 66a0465528a5..da8328b97b7d 100644 --- a/arch/arm/mach-bcm/kona_smp.c +++ b/arch/arm/mach-bcm/kona_smp.c | |||
@@ -194,7 +194,7 @@ static int bcm_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
194 | return -ENOSYS; | 194 | return -ENOSYS; |
195 | } | 195 | } |
196 | 196 | ||
197 | static struct smp_operations bcm_smp_ops __initdata = { | 197 | static const struct smp_operations bcm_smp_ops __initconst = { |
198 | .smp_prepare_cpus = bcm_smp_prepare_cpus, | 198 | .smp_prepare_cpus = bcm_smp_prepare_cpus, |
199 | .smp_boot_secondary = bcm_boot_secondary, | 199 | .smp_boot_secondary = bcm_boot_secondary, |
200 | }; | 200 | }; |
diff --git a/arch/arm/mach-bcm/platsmp-brcmstb.c b/arch/arm/mach-bcm/platsmp-brcmstb.c index 44d6bddf7a4e..40dc8448445e 100644 --- a/arch/arm/mach-bcm/platsmp-brcmstb.c +++ b/arch/arm/mach-bcm/platsmp-brcmstb.c | |||
@@ -356,7 +356,7 @@ static int brcmstb_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
356 | return 0; | 356 | return 0; |
357 | } | 357 | } |
358 | 358 | ||
359 | static struct smp_operations brcmstb_smp_ops __initdata = { | 359 | static const struct smp_operations brcmstb_smp_ops __initconst = { |
360 | .smp_prepare_cpus = brcmstb_cpu_ctrl_setup, | 360 | .smp_prepare_cpus = brcmstb_cpu_ctrl_setup, |
361 | .smp_boot_secondary = brcmstb_boot_secondary, | 361 | .smp_boot_secondary = brcmstb_boot_secondary, |
362 | #ifdef CONFIG_HOTPLUG_CPU | 362 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-berlin/Kconfig b/arch/arm/mach-berlin/Kconfig index 742d53a5f7f9..ffbfa0bd091b 100644 --- a/arch/arm/mach-berlin/Kconfig +++ b/arch/arm/mach-berlin/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_BERLIN | 1 | menuconfig ARCH_BERLIN |
2 | bool "Marvell Berlin SoCs" if ARCH_MULTI_V7 | 2 | bool "Marvell Berlin SoCs" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARCH_HAS_RESET_CONTROLLER | 4 | select ARCH_HAS_RESET_CONTROLLER |
4 | select ARCH_REQUIRE_GPIOLIB | 5 | select ARCH_REQUIRE_GPIOLIB |
5 | select ARM_GIC | 6 | select ARM_GIC |
diff --git a/arch/arm/mach-berlin/platsmp.c b/arch/arm/mach-berlin/platsmp.c index 405cd37e4fba..93f90688db18 100644 --- a/arch/arm/mach-berlin/platsmp.c +++ b/arch/arm/mach-berlin/platsmp.c | |||
@@ -119,7 +119,7 @@ static int berlin_cpu_kill(unsigned int cpu) | |||
119 | } | 119 | } |
120 | #endif | 120 | #endif |
121 | 121 | ||
122 | static struct smp_operations berlin_smp_ops __initdata = { | 122 | static const struct smp_operations berlin_smp_ops __initconst = { |
123 | .smp_prepare_cpus = berlin_smp_prepare_cpus, | 123 | .smp_prepare_cpus = berlin_smp_prepare_cpus, |
124 | .smp_boot_secondary = berlin_boot_secondary, | 124 | .smp_boot_secondary = berlin_boot_secondary, |
125 | #ifdef CONFIG_HOTPLUG_CPU | 125 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-cns3xxx/Kconfig b/arch/arm/mach-cns3xxx/Kconfig index 3c22a1990ecd..eb14a0ff0093 100644 --- a/arch/arm/mach-cns3xxx/Kconfig +++ b/arch/arm/mach-cns3xxx/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_CNS3XXX | 1 | menuconfig ARCH_CNS3XXX |
2 | bool "Cavium Networks CNS3XXX family" if ARCH_MULTI_V6 | 2 | bool "Cavium Networks CNS3XXX family" |
3 | depends on ARCH_MULTI_V6 | ||
3 | select ARM_GIC | 4 | select ARM_GIC |
4 | select PCI_DOMAINS if PCI | 5 | select PCI_DOMAINS if PCI |
5 | help | 6 | help |
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index 3a10f1a8317a..49e8dcf37206 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig | |||
@@ -8,7 +8,8 @@ | |||
8 | # Configuration options for the EXYNOS4 | 8 | # Configuration options for the EXYNOS4 |
9 | 9 | ||
10 | menuconfig ARCH_EXYNOS | 10 | menuconfig ARCH_EXYNOS |
11 | bool "Samsung EXYNOS" if ARCH_MULTI_V7 | 11 | bool "Samsung EXYNOS" |
12 | depends on ARCH_MULTI_V7 | ||
12 | select ARCH_HAS_BANDGAP | 13 | select ARCH_HAS_BANDGAP |
13 | select ARCH_HAS_HOLES_MEMORYMODEL | 14 | select ARCH_HAS_HOLES_MEMORYMODEL |
14 | select ARCH_REQUIRE_GPIOLIB | 15 | select ARCH_REQUIRE_GPIOLIB |
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h index 153492513c40..e349a038976d 100644 --- a/arch/arm/mach-exynos/common.h +++ b/arch/arm/mach-exynos/common.h | |||
@@ -149,7 +149,7 @@ static inline void exynos_pm_init(void) {} | |||
149 | extern void exynos_cpu_resume(void); | 149 | extern void exynos_cpu_resume(void); |
150 | extern void exynos_cpu_resume_ns(void); | 150 | extern void exynos_cpu_resume_ns(void); |
151 | 151 | ||
152 | extern struct smp_operations exynos_smp_ops; | 152 | extern const struct smp_operations exynos_smp_ops; |
153 | 153 | ||
154 | extern void exynos_cpu_power_down(int cpu); | 154 | extern void exynos_cpu_power_down(int cpu); |
155 | extern void exynos_cpu_power_up(int cpu); | 155 | extern void exynos_cpu_power_up(int cpu); |
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c index 98a2c0cbb833..5bd9559786ba 100644 --- a/arch/arm/mach-exynos/platsmp.c +++ b/arch/arm/mach-exynos/platsmp.c | |||
@@ -479,7 +479,7 @@ static void exynos_cpu_die(unsigned int cpu) | |||
479 | } | 479 | } |
480 | #endif /* CONFIG_HOTPLUG_CPU */ | 480 | #endif /* CONFIG_HOTPLUG_CPU */ |
481 | 481 | ||
482 | struct smp_operations exynos_smp_ops __initdata = { | 482 | const struct smp_operations exynos_smp_ops __initconst = { |
483 | .smp_init_cpus = exynos_smp_init_cpus, | 483 | .smp_init_cpus = exynos_smp_init_cpus, |
484 | .smp_prepare_cpus = exynos_smp_prepare_cpus, | 484 | .smp_prepare_cpus = exynos_smp_prepare_cpus, |
485 | .smp_secondary_init = exynos_secondary_init, | 485 | .smp_secondary_init = exynos_secondary_init, |
diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig index 31aa866c3317..81110ec34226 100644 --- a/arch/arm/mach-highbank/Kconfig +++ b/arch/arm/mach-highbank/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | config ARCH_HIGHBANK | 1 | config ARCH_HIGHBANK |
2 | bool "Calxeda ECX-1000/2000 (Highbank/Midway)" if ARCH_MULTI_V7 | 2 | bool "Calxeda ECX-1000/2000 (Highbank/Midway)" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE | 4 | select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE |
4 | select ARCH_HAS_HOLES_MEMORYMODEL | 5 | select ARCH_HAS_HOLES_MEMORYMODEL |
5 | select ARCH_SUPPORTS_BIG_ENDIAN | 6 | select ARCH_SUPPORTS_BIG_ENDIAN |
diff --git a/arch/arm/mach-hisi/Kconfig b/arch/arm/mach-hisi/Kconfig index 83061ad0e282..a3b091a4d344 100644 --- a/arch/arm/mach-hisi/Kconfig +++ b/arch/arm/mach-hisi/Kconfig | |||
@@ -13,7 +13,8 @@ if ARCH_HISI | |||
13 | menu "Hisilicon platform type" | 13 | menu "Hisilicon platform type" |
14 | 14 | ||
15 | config ARCH_HI3xxx | 15 | config ARCH_HI3xxx |
16 | bool "Hisilicon Hi36xx family" if ARCH_MULTI_V7 | 16 | bool "Hisilicon Hi36xx family" |
17 | depends on ARCH_MULTI_V7 | ||
17 | select CACHE_L2X0 | 18 | select CACHE_L2X0 |
18 | select HAVE_ARM_SCU if SMP | 19 | select HAVE_ARM_SCU if SMP |
19 | select HAVE_ARM_TWD if SMP | 20 | select HAVE_ARM_TWD if SMP |
@@ -23,7 +24,8 @@ config ARCH_HI3xxx | |||
23 | Support for Hisilicon Hi36xx SoC family | 24 | Support for Hisilicon Hi36xx SoC family |
24 | 25 | ||
25 | config ARCH_HIP01 | 26 | config ARCH_HIP01 |
26 | bool "Hisilicon HIP01 family" if ARCH_MULTI_V7 | 27 | bool "Hisilicon HIP01 family" |
28 | depends on ARCH_MULTI_V7 | ||
27 | select HAVE_ARM_SCU if SMP | 29 | select HAVE_ARM_SCU if SMP |
28 | select HAVE_ARM_TWD if SMP | 30 | select HAVE_ARM_TWD if SMP |
29 | select ARM_GLOBAL_TIMER | 31 | select ARM_GLOBAL_TIMER |
@@ -31,7 +33,8 @@ config ARCH_HIP01 | |||
31 | Support for Hisilicon HIP01 SoC family | 33 | Support for Hisilicon HIP01 SoC family |
32 | 34 | ||
33 | config ARCH_HIP04 | 35 | config ARCH_HIP04 |
34 | bool "Hisilicon HiP04 Cortex A15 family" if ARCH_MULTI_V7 | 36 | bool "Hisilicon HiP04 Cortex A15 family" |
37 | depends on ARCH_MULTI_V7 | ||
35 | select ARM_ERRATA_798181 if SMP | 38 | select ARM_ERRATA_798181 if SMP |
36 | select HAVE_ARM_ARCH_TIMER | 39 | select HAVE_ARM_ARCH_TIMER |
37 | select MCPM if SMP | 40 | select MCPM if SMP |
@@ -40,7 +43,8 @@ config ARCH_HIP04 | |||
40 | Support for Hisilicon HiP04 SoC family | 43 | Support for Hisilicon HiP04 SoC family |
41 | 44 | ||
42 | config ARCH_HIX5HD2 | 45 | config ARCH_HIX5HD2 |
43 | bool "Hisilicon X5HD2 family" if ARCH_MULTI_V7 | 46 | bool "Hisilicon X5HD2 family" |
47 | depends on ARCH_MULTI_V7 | ||
44 | select CACHE_L2X0 | 48 | select CACHE_L2X0 |
45 | select HAVE_ARM_SCU if SMP | 49 | select HAVE_ARM_SCU if SMP |
46 | select HAVE_ARM_TWD if SMP | 50 | select HAVE_ARM_TWD if SMP |
diff --git a/arch/arm/mach-hisi/core.h b/arch/arm/mach-hisi/core.h index c7648ef1825c..e883583a23f1 100644 --- a/arch/arm/mach-hisi/core.h +++ b/arch/arm/mach-hisi/core.h | |||
@@ -6,17 +6,14 @@ | |||
6 | extern void hi3xxx_set_cpu_jump(int cpu, void *jump_addr); | 6 | extern void hi3xxx_set_cpu_jump(int cpu, void *jump_addr); |
7 | extern int hi3xxx_get_cpu_jump(int cpu); | 7 | extern int hi3xxx_get_cpu_jump(int cpu); |
8 | extern void secondary_startup(void); | 8 | extern void secondary_startup(void); |
9 | extern struct smp_operations hi3xxx_smp_ops; | ||
10 | 9 | ||
11 | extern void hi3xxx_cpu_die(unsigned int cpu); | 10 | extern void hi3xxx_cpu_die(unsigned int cpu); |
12 | extern int hi3xxx_cpu_kill(unsigned int cpu); | 11 | extern int hi3xxx_cpu_kill(unsigned int cpu); |
13 | extern void hi3xxx_set_cpu(int cpu, bool enable); | 12 | extern void hi3xxx_set_cpu(int cpu, bool enable); |
14 | 13 | ||
15 | extern struct smp_operations hix5hd2_smp_ops; | ||
16 | extern void hix5hd2_set_cpu(int cpu, bool enable); | 14 | extern void hix5hd2_set_cpu(int cpu, bool enable); |
17 | extern void hix5hd2_cpu_die(unsigned int cpu); | 15 | extern void hix5hd2_cpu_die(unsigned int cpu); |
18 | 16 | ||
19 | extern struct smp_operations hip01_smp_ops; | ||
20 | extern void hip01_set_cpu(int cpu, bool enable); | 17 | extern void hip01_set_cpu(int cpu, bool enable); |
21 | extern void hip01_cpu_die(unsigned int cpu); | 18 | extern void hip01_cpu_die(unsigned int cpu); |
22 | #endif | 19 | #endif |
diff --git a/arch/arm/mach-hisi/platmcpm.c b/arch/arm/mach-hisi/platmcpm.c index b5f8f5ffda79..4b653a8cb75c 100644 --- a/arch/arm/mach-hisi/platmcpm.c +++ b/arch/arm/mach-hisi/platmcpm.c | |||
@@ -239,7 +239,7 @@ err: | |||
239 | } | 239 | } |
240 | #endif | 240 | #endif |
241 | 241 | ||
242 | static struct smp_operations __initdata hip04_smp_ops = { | 242 | static const struct smp_operations hip04_smp_ops __initconst = { |
243 | .smp_boot_secondary = hip04_boot_secondary, | 243 | .smp_boot_secondary = hip04_boot_secondary, |
244 | #ifdef CONFIG_HOTPLUG_CPU | 244 | #ifdef CONFIG_HOTPLUG_CPU |
245 | .cpu_die = hip04_cpu_die, | 245 | .cpu_die = hip04_cpu_die, |
diff --git a/arch/arm/mach-hisi/platsmp.c b/arch/arm/mach-hisi/platsmp.c index 51744127db66..47ed32cf57cc 100644 --- a/arch/arm/mach-hisi/platsmp.c +++ b/arch/arm/mach-hisi/platsmp.c | |||
@@ -89,7 +89,7 @@ static int hi3xxx_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
89 | return 0; | 89 | return 0; |
90 | } | 90 | } |
91 | 91 | ||
92 | struct smp_operations hi3xxx_smp_ops __initdata = { | 92 | static const struct smp_operations hi3xxx_smp_ops __initconst = { |
93 | .smp_prepare_cpus = hi3xxx_smp_prepare_cpus, | 93 | .smp_prepare_cpus = hi3xxx_smp_prepare_cpus, |
94 | .smp_boot_secondary = hi3xxx_boot_secondary, | 94 | .smp_boot_secondary = hi3xxx_boot_secondary, |
95 | #ifdef CONFIG_HOTPLUG_CPU | 95 | #ifdef CONFIG_HOTPLUG_CPU |
@@ -126,7 +126,7 @@ static int hix5hd2_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
126 | } | 126 | } |
127 | 127 | ||
128 | 128 | ||
129 | struct smp_operations hix5hd2_smp_ops __initdata = { | 129 | static const struct smp_operations hix5hd2_smp_ops __initconst = { |
130 | .smp_prepare_cpus = hisi_common_smp_prepare_cpus, | 130 | .smp_prepare_cpus = hisi_common_smp_prepare_cpus, |
131 | .smp_boot_secondary = hix5hd2_boot_secondary, | 131 | .smp_boot_secondary = hix5hd2_boot_secondary, |
132 | #ifdef CONFIG_HOTPLUG_CPU | 132 | #ifdef CONFIG_HOTPLUG_CPU |
@@ -176,7 +176,7 @@ static int hip01_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
176 | return 0; | 176 | return 0; |
177 | } | 177 | } |
178 | 178 | ||
179 | struct smp_operations hip01_smp_ops __initdata = { | 179 | static const struct smp_operations hip01_smp_ops __initconst = { |
180 | .smp_prepare_cpus = hisi_common_smp_prepare_cpus, | 180 | .smp_prepare_cpus = hisi_common_smp_prepare_cpus, |
181 | .smp_boot_secondary = hip01_boot_secondary, | 181 | .smp_boot_secondary = hip01_boot_secondary, |
182 | }; | 182 | }; |
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 8ceda2844c4f..0ac180f7b330 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_MXC | 1 | menuconfig ARCH_MXC |
2 | bool "Freescale i.MX family" if ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M | 2 | bool "Freescale i.MX family" |
3 | depends on ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M | ||
3 | select ARCH_REQUIRE_GPIOLIB | 4 | select ARCH_REQUIRE_GPIOLIB |
4 | select ARM_CPU_SUSPEND if PM | 5 | select ARM_CPU_SUSPEND if PM |
5 | select CLKSRC_IMX_GPT | 6 | select CLKSRC_IMX_GPT |
@@ -596,7 +597,8 @@ choice | |||
596 | default VF_USE_ARM_GLOBAL_TIMER | 597 | default VF_USE_ARM_GLOBAL_TIMER |
597 | 598 | ||
598 | config VF_USE_ARM_GLOBAL_TIMER | 599 | config VF_USE_ARM_GLOBAL_TIMER |
599 | bool "Use ARM Global Timer" if ARCH_MULTI_V7 | 600 | bool "Use ARM Global Timer" |
601 | depends on ARCH_MULTI_V7 | ||
600 | select ARM_GLOBAL_TIMER | 602 | select ARM_GLOBAL_TIMER |
601 | select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK | 603 | select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK |
602 | help | 604 | help |
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index e2d53839fceb..32b83f09da18 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h | |||
@@ -153,7 +153,7 @@ void imx_init_l2cache(void); | |||
153 | static inline void imx_init_l2cache(void) {} | 153 | static inline void imx_init_l2cache(void) {} |
154 | #endif | 154 | #endif |
155 | 155 | ||
156 | extern struct smp_operations imx_smp_ops; | 156 | extern const struct smp_operations imx_smp_ops; |
157 | extern struct smp_operations ls1021a_smp_ops; | 157 | extern const struct smp_operations ls1021a_smp_ops; |
158 | 158 | ||
159 | #endif | 159 | #endif |
diff --git a/arch/arm/mach-imx/platsmp.c b/arch/arm/mach-imx/platsmp.c index 7f270015fe58..711dbbd5badd 100644 --- a/arch/arm/mach-imx/platsmp.c +++ b/arch/arm/mach-imx/platsmp.c | |||
@@ -88,7 +88,7 @@ static void __init imx_smp_prepare_cpus(unsigned int max_cpus) | |||
88 | sync_cache_w(&g_diag_reg); | 88 | sync_cache_w(&g_diag_reg); |
89 | } | 89 | } |
90 | 90 | ||
91 | struct smp_operations imx_smp_ops __initdata = { | 91 | const struct smp_operations imx_smp_ops __initconst = { |
92 | .smp_init_cpus = imx_smp_init_cpus, | 92 | .smp_init_cpus = imx_smp_init_cpus, |
93 | .smp_prepare_cpus = imx_smp_prepare_cpus, | 93 | .smp_prepare_cpus = imx_smp_prepare_cpus, |
94 | .smp_boot_secondary = imx_boot_secondary, | 94 | .smp_boot_secondary = imx_boot_secondary, |
@@ -123,7 +123,7 @@ static void __init ls1021a_smp_prepare_cpus(unsigned int max_cpus) | |||
123 | iounmap(dcfg_base); | 123 | iounmap(dcfg_base); |
124 | } | 124 | } |
125 | 125 | ||
126 | struct smp_operations ls1021a_smp_ops __initdata = { | 126 | const struct smp_operations ls1021a_smp_ops __initconst = { |
127 | .smp_prepare_cpus = ls1021a_smp_prepare_cpus, | 127 | .smp_prepare_cpus = ls1021a_smp_prepare_cpus, |
128 | .smp_boot_secondary = ls1021a_boot_secondary, | 128 | .smp_boot_secondary = ls1021a_boot_secondary, |
129 | }; | 129 | }; |
diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig index e936cf420b48..b01bdc9baf89 100644 --- a/arch/arm/mach-integrator/Kconfig +++ b/arch/arm/mach-integrator/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_INTEGRATOR | 1 | menuconfig ARCH_INTEGRATOR |
2 | bool "ARM Ltd. Integrator family" if (ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6) | 2 | bool "ARM Ltd. Integrator family" |
3 | depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6 | ||
3 | select ARM_AMBA | 4 | select ARM_AMBA |
4 | select ARM_PATCH_PHYS_VIRT if MMU | 5 | select ARM_PATCH_PHYS_VIRT if MMU |
5 | select AUTO_ZRELADDR | 6 | select AUTO_ZRELADDR |
diff --git a/arch/arm/mach-keystone/keystone.h b/arch/arm/mach-keystone/keystone.h index cd04a1c14de8..33eaa037af5a 100644 --- a/arch/arm/mach-keystone/keystone.h +++ b/arch/arm/mach-keystone/keystone.h | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | #ifndef __ASSEMBLER__ | 16 | #ifndef __ASSEMBLER__ |
17 | 17 | ||
18 | extern struct smp_operations keystone_smp_ops; | 18 | extern const struct smp_operations keystone_smp_ops; |
19 | extern void secondary_startup(void); | 19 | extern void secondary_startup(void); |
20 | extern u32 keystone_cpu_smc(u32 command, u32 cpu, u32 addr); | 20 | extern u32 keystone_cpu_smc(u32 command, u32 cpu, u32 addr); |
21 | extern int keystone_pm_runtime_init(void); | 21 | extern int keystone_pm_runtime_init(void); |
diff --git a/arch/arm/mach-keystone/platsmp.c b/arch/arm/mach-keystone/platsmp.c index 4bbb18463bfd..5665276972ec 100644 --- a/arch/arm/mach-keystone/platsmp.c +++ b/arch/arm/mach-keystone/platsmp.c | |||
@@ -39,6 +39,6 @@ static int keystone_smp_boot_secondary(unsigned int cpu, | |||
39 | return error; | 39 | return error; |
40 | } | 40 | } |
41 | 41 | ||
42 | struct smp_operations keystone_smp_ops __initdata = { | 42 | const struct smp_operations keystone_smp_ops __initconst = { |
43 | .smp_boot_secondary = keystone_smp_boot_secondary, | 43 | .smp_boot_secondary = keystone_smp_boot_secondary, |
44 | }; | 44 | }; |
diff --git a/arch/arm/mach-mediatek/Kconfig b/arch/arm/mach-mediatek/Kconfig index aeece17e5cea..0abcc51afff5 100644 --- a/arch/arm/mach-mediatek/Kconfig +++ b/arch/arm/mach-mediatek/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_MEDIATEK | 1 | menuconfig ARCH_MEDIATEK |
2 | bool "Mediatek MT65xx & MT81xx SoC" if ARCH_MULTI_V7 | 2 | bool "Mediatek MT65xx & MT81xx SoC" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARM_GIC | 4 | select ARM_GIC |
4 | select PINCTRL | 5 | select PINCTRL |
5 | select MTK_TIMER | 6 | select MTK_TIMER |
diff --git a/arch/arm/mach-mediatek/platsmp.c b/arch/arm/mach-mediatek/platsmp.c index 8141f3f8afed..a1b07eeaaf5b 100644 --- a/arch/arm/mach-mediatek/platsmp.c +++ b/arch/arm/mach-mediatek/platsmp.c | |||
@@ -128,13 +128,13 @@ static void __init mtk_smp_prepare_cpus(unsigned int max_cpus) | |||
128 | __mtk_smp_prepare_cpus(max_cpus, 0); | 128 | __mtk_smp_prepare_cpus(max_cpus, 0); |
129 | } | 129 | } |
130 | 130 | ||
131 | static struct smp_operations mt81xx_tz_smp_ops __initdata = { | 131 | static const struct smp_operations mt81xx_tz_smp_ops __initconst = { |
132 | .smp_prepare_cpus = mtk_tz_smp_prepare_cpus, | 132 | .smp_prepare_cpus = mtk_tz_smp_prepare_cpus, |
133 | .smp_boot_secondary = mtk_boot_secondary, | 133 | .smp_boot_secondary = mtk_boot_secondary, |
134 | }; | 134 | }; |
135 | CPU_METHOD_OF_DECLARE(mt81xx_tz_smp, "mediatek,mt81xx-tz-smp", &mt81xx_tz_smp_ops); | 135 | CPU_METHOD_OF_DECLARE(mt81xx_tz_smp, "mediatek,mt81xx-tz-smp", &mt81xx_tz_smp_ops); |
136 | 136 | ||
137 | static struct smp_operations mt6589_smp_ops __initdata = { | 137 | static const struct smp_operations mt6589_smp_ops __initconst = { |
138 | .smp_prepare_cpus = mtk_smp_prepare_cpus, | 138 | .smp_prepare_cpus = mtk_smp_prepare_cpus, |
139 | .smp_boot_secondary = mtk_boot_secondary, | 139 | .smp_boot_secondary = mtk_boot_secondary, |
140 | }; | 140 | }; |
diff --git a/arch/arm/mach-meson/Kconfig b/arch/arm/mach-meson/Kconfig index 5d56f86ae1a4..31bdd91098b6 100644 --- a/arch/arm/mach-meson/Kconfig +++ b/arch/arm/mach-meson/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_MESON | 1 | menuconfig ARCH_MESON |
2 | bool "Amlogic Meson SoCs" if ARCH_MULTI_V7 | 2 | bool "Amlogic Meson SoCs" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARCH_REQUIRE_GPIOLIB | 4 | select ARCH_REQUIRE_GPIOLIB |
4 | select GENERIC_IRQ_CHIP | 5 | select GENERIC_IRQ_CHIP |
5 | select ARM_GIC | 6 | select ARM_GIC |
diff --git a/arch/arm/mach-moxart/Kconfig b/arch/arm/mach-moxart/Kconfig index f49328c39bef..180d9d216719 100644 --- a/arch/arm/mach-moxart/Kconfig +++ b/arch/arm/mach-moxart/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_MOXART | 1 | menuconfig ARCH_MOXART |
2 | bool "MOXA ART SoC" if ARCH_MULTI_V4 | 2 | bool "MOXA ART SoC" |
3 | depends on ARCH_MULTI_V4 | ||
3 | select CPU_FA526 | 4 | select CPU_FA526 |
4 | select ARM_DMA_MEM_BUFFERABLE | 5 | select ARM_DMA_MEM_BUFFERABLE |
5 | select CLKSRC_MMIO | 6 | select CLKSRC_MMIO |
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index e20fc4178b15..64e3d2ce9a07 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_MVEBU | 1 | menuconfig ARCH_MVEBU |
2 | bool "Marvell Engineering Business Unit (MVEBU) SoCs" if (ARCH_MULTI_V7 || ARCH_MULTI_V5) | 2 | bool "Marvell Engineering Business Unit (MVEBU) SoCs" |
3 | depends on ARCH_MULTI_V7 || ARCH_MULTI_V5 | ||
3 | select ARCH_SUPPORTS_BIG_ENDIAN | 4 | select ARCH_SUPPORTS_BIG_ENDIAN |
4 | select CLKSRC_MMIO | 5 | select CLKSRC_MMIO |
5 | select GENERIC_IRQ_CHIP | 6 | select GENERIC_IRQ_CHIP |
@@ -25,7 +26,8 @@ config MACH_MVEBU_V7 | |||
25 | select MACH_MVEBU_ANY | 26 | select MACH_MVEBU_ANY |
26 | 27 | ||
27 | config MACH_ARMADA_370 | 28 | config MACH_ARMADA_370 |
28 | bool "Marvell Armada 370 boards" if ARCH_MULTI_V7 | 29 | bool "Marvell Armada 370 boards" |
30 | depends on ARCH_MULTI_V7 | ||
29 | select ARMADA_370_CLK | 31 | select ARMADA_370_CLK |
30 | select CPU_PJ4B | 32 | select CPU_PJ4B |
31 | select MACH_MVEBU_V7 | 33 | select MACH_MVEBU_V7 |
@@ -35,7 +37,8 @@ config MACH_ARMADA_370 | |||
35 | on the Marvell Armada 370 SoC with device tree. | 37 | on the Marvell Armada 370 SoC with device tree. |
36 | 38 | ||
37 | config MACH_ARMADA_375 | 39 | config MACH_ARMADA_375 |
38 | bool "Marvell Armada 375 boards" if ARCH_MULTI_V7 | 40 | bool "Marvell Armada 375 boards" |
41 | depends on ARCH_MULTI_V7 | ||
39 | select ARM_ERRATA_720789 | 42 | select ARM_ERRATA_720789 |
40 | select ARM_ERRATA_753970 | 43 | select ARM_ERRATA_753970 |
41 | select ARM_GIC | 44 | select ARM_GIC |
@@ -50,7 +53,8 @@ config MACH_ARMADA_375 | |||
50 | on the Marvell Armada 375 SoC with device tree. | 53 | on the Marvell Armada 375 SoC with device tree. |
51 | 54 | ||
52 | config MACH_ARMADA_38X | 55 | config MACH_ARMADA_38X |
53 | bool "Marvell Armada 380/385 boards" if ARCH_MULTI_V7 | 56 | bool "Marvell Armada 380/385 boards" |
57 | depends on ARCH_MULTI_V7 | ||
54 | select ARM_ERRATA_720789 | 58 | select ARM_ERRATA_720789 |
55 | select ARM_ERRATA_753970 | 59 | select ARM_ERRATA_753970 |
56 | select ARM_GIC | 60 | select ARM_GIC |
@@ -65,7 +69,8 @@ config MACH_ARMADA_38X | |||
65 | on the Marvell Armada 380/385 SoC with device tree. | 69 | on the Marvell Armada 380/385 SoC with device tree. |
66 | 70 | ||
67 | config MACH_ARMADA_39X | 71 | config MACH_ARMADA_39X |
68 | bool "Marvell Armada 39x boards" if ARCH_MULTI_V7 | 72 | bool "Marvell Armada 39x boards" |
73 | depends on ARCH_MULTI_V7 | ||
69 | select ARM_GIC | 74 | select ARM_GIC |
70 | select ARMADA_39X_CLK | 75 | select ARMADA_39X_CLK |
71 | select CACHE_L2X0 | 76 | select CACHE_L2X0 |
@@ -79,7 +84,8 @@ config MACH_ARMADA_39X | |||
79 | on the Marvell Armada 39x SoC with device tree. | 84 | on the Marvell Armada 39x SoC with device tree. |
80 | 85 | ||
81 | config MACH_ARMADA_XP | 86 | config MACH_ARMADA_XP |
82 | bool "Marvell Armada XP boards" if ARCH_MULTI_V7 | 87 | bool "Marvell Armada XP boards" |
88 | depends on ARCH_MULTI_V7 | ||
83 | select ARMADA_XP_CLK | 89 | select ARMADA_XP_CLK |
84 | select CPU_PJ4B | 90 | select CPU_PJ4B |
85 | select MACH_MVEBU_V7 | 91 | select MACH_MVEBU_V7 |
@@ -89,7 +95,8 @@ config MACH_ARMADA_XP | |||
89 | on the Marvell Armada XP SoC with device tree. | 95 | on the Marvell Armada XP SoC with device tree. |
90 | 96 | ||
91 | config MACH_DOVE | 97 | config MACH_DOVE |
92 | bool "Marvell Dove boards" if ARCH_MULTI_V7 | 98 | bool "Marvell Dove boards" |
99 | depends on ARCH_MULTI_V7 | ||
93 | select CACHE_L2X0 | 100 | select CACHE_L2X0 |
94 | select CPU_PJ4 | 101 | select CPU_PJ4 |
95 | select DOVE_CLK | 102 | select DOVE_CLK |
@@ -103,7 +110,8 @@ config MACH_DOVE | |||
103 | Marvell Dove using flattened device tree. | 110 | Marvell Dove using flattened device tree. |
104 | 111 | ||
105 | config MACH_KIRKWOOD | 112 | config MACH_KIRKWOOD |
106 | bool "Marvell Kirkwood boards" if ARCH_MULTI_V5 | 113 | bool "Marvell Kirkwood boards" |
114 | depends on ARCH_MULTI_V5 | ||
107 | select ARCH_REQUIRE_GPIOLIB | 115 | select ARCH_REQUIRE_GPIOLIB |
108 | select CPU_FEROCEON | 116 | select CPU_FEROCEON |
109 | select KIRKWOOD_CLK | 117 | select KIRKWOOD_CLK |
diff --git a/arch/arm/mach-mvebu/armada-370-xp.h b/arch/arm/mach-mvebu/armada-370-xp.h index c55bbf81de0e..09413b678409 100644 --- a/arch/arm/mach-mvebu/armada-370-xp.h +++ b/arch/arm/mach-mvebu/armada-370-xp.h | |||
@@ -17,7 +17,7 @@ | |||
17 | 17 | ||
18 | #ifdef CONFIG_SMP | 18 | #ifdef CONFIG_SMP |
19 | void armada_xp_secondary_startup(void); | 19 | void armada_xp_secondary_startup(void); |
20 | extern struct smp_operations armada_xp_smp_ops; | 20 | extern const struct smp_operations armada_xp_smp_ops; |
21 | #endif | 21 | #endif |
22 | 22 | ||
23 | #endif /* __MACH_ARMADA_370_XP_H */ | 23 | #endif /* __MACH_ARMADA_370_XP_H */ |
diff --git a/arch/arm/mach-mvebu/platsmp-a9.c b/arch/arm/mach-mvebu/platsmp-a9.c index 3d5000481c11..d715dec1c197 100644 --- a/arch/arm/mach-mvebu/platsmp-a9.c +++ b/arch/arm/mach-mvebu/platsmp-a9.c | |||
@@ -93,11 +93,11 @@ static int armada_38x_cpu_kill(unsigned int cpu) | |||
93 | } | 93 | } |
94 | #endif | 94 | #endif |
95 | 95 | ||
96 | static struct smp_operations mvebu_cortex_a9_smp_ops __initdata = { | 96 | static const struct smp_operations mvebu_cortex_a9_smp_ops __initconst = { |
97 | .smp_boot_secondary = mvebu_cortex_a9_boot_secondary, | 97 | .smp_boot_secondary = mvebu_cortex_a9_boot_secondary, |
98 | }; | 98 | }; |
99 | 99 | ||
100 | static struct smp_operations armada_38x_smp_ops __initdata = { | 100 | static const struct smp_operations armada_38x_smp_ops __initconst = { |
101 | .smp_boot_secondary = mvebu_cortex_a9_boot_secondary, | 101 | .smp_boot_secondary = mvebu_cortex_a9_boot_secondary, |
102 | .smp_secondary_init = armada_38x_secondary_init, | 102 | .smp_secondary_init = armada_38x_secondary_init, |
103 | #ifdef CONFIG_HOTPLUG_CPU | 103 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c index 58cc8c1575eb..f9597b701028 100644 --- a/arch/arm/mach-mvebu/platsmp.c +++ b/arch/arm/mach-mvebu/platsmp.c | |||
@@ -170,7 +170,7 @@ static int armada_xp_cpu_kill(unsigned int cpu) | |||
170 | } | 170 | } |
171 | #endif | 171 | #endif |
172 | 172 | ||
173 | struct smp_operations armada_xp_smp_ops __initdata = { | 173 | const struct smp_operations armada_xp_smp_ops __initconst = { |
174 | .smp_init_cpus = armada_xp_smp_init_cpus, | 174 | .smp_init_cpus = armada_xp_smp_init_cpus, |
175 | .smp_prepare_cpus = armada_xp_smp_prepare_cpus, | 175 | .smp_prepare_cpus = armada_xp_smp_prepare_cpus, |
176 | .smp_boot_secondary = armada_xp_boot_secondary, | 176 | .smp_boot_secondary = armada_xp_boot_secondary, |
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index 0cba9575d2ca..f7666b9f3b21 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h | |||
@@ -270,7 +270,7 @@ extern u32 omap_read_auxcoreboot0(void); | |||
270 | 270 | ||
271 | extern void omap4_cpu_die(unsigned int cpu); | 271 | extern void omap4_cpu_die(unsigned int cpu); |
272 | 272 | ||
273 | extern struct smp_operations omap4_smp_ops; | 273 | extern const struct smp_operations omap4_smp_ops; |
274 | 274 | ||
275 | extern void omap5_secondary_startup(void); | 275 | extern void omap5_secondary_startup(void); |
276 | extern void omap5_secondary_hyp_startup(void); | 276 | extern void omap5_secondary_hyp_startup(void); |
diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c index 79e1f876d1c9..c625cc10d9f9 100644 --- a/arch/arm/mach-omap2/omap-smp.c +++ b/arch/arm/mach-omap2/omap-smp.c | |||
@@ -241,7 +241,7 @@ static void __init omap4_smp_prepare_cpus(unsigned int max_cpus) | |||
241 | 241 | ||
242 | } | 242 | } |
243 | 243 | ||
244 | struct smp_operations omap4_smp_ops __initdata = { | 244 | const struct smp_operations omap4_smp_ops __initconst = { |
245 | .smp_init_cpus = omap4_smp_init_cpus, | 245 | .smp_init_cpus = omap4_smp_init_cpus, |
246 | .smp_prepare_cpus = omap4_smp_prepare_cpus, | 246 | .smp_prepare_cpus = omap4_smp_prepare_cpus, |
247 | .smp_secondary_init = omap4_secondary_init, | 247 | .smp_secondary_init = omap4_secondary_init, |
diff --git a/arch/arm/mach-picoxcell/Kconfig b/arch/arm/mach-picoxcell/Kconfig index 62240f69b4ee..aef92ba0eacd 100644 --- a/arch/arm/mach-picoxcell/Kconfig +++ b/arch/arm/mach-picoxcell/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | config ARCH_PICOXCELL | 1 | config ARCH_PICOXCELL |
2 | bool "Picochip PicoXcell" if ARCH_MULTI_V6 | 2 | bool "Picochip PicoXcell" |
3 | depends on ARCH_MULTI_V6 | ||
3 | select ARCH_REQUIRE_GPIOLIB | 4 | select ARCH_REQUIRE_GPIOLIB |
4 | select ARM_VIC | 5 | select ARM_VIC |
5 | select DW_APB_TIMER_OF | 6 | select DW_APB_TIMER_OF |
diff --git a/arch/arm/mach-prima2/Kconfig b/arch/arm/mach-prima2/Kconfig index 9ab8932403e5..f998eb1c698e 100644 --- a/arch/arm/mach-prima2/Kconfig +++ b/arch/arm/mach-prima2/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_SIRF | 1 | menuconfig ARCH_SIRF |
2 | bool "CSR SiRF" if ARCH_MULTI_V7 | 2 | bool "CSR SiRF" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARCH_HAS_RESET_CONTROLLER | 4 | select ARCH_HAS_RESET_CONTROLLER |
4 | select ARCH_REQUIRE_GPIOLIB | 5 | select ARCH_REQUIRE_GPIOLIB |
5 | select GENERIC_IRQ_CHIP | 6 | select GENERIC_IRQ_CHIP |
diff --git a/arch/arm/mach-prima2/common.h b/arch/arm/mach-prima2/common.h index 3916a6665100..6d77b622d168 100644 --- a/arch/arm/mach-prima2/common.h +++ b/arch/arm/mach-prima2/common.h | |||
@@ -15,7 +15,7 @@ | |||
15 | #include <asm/mach/time.h> | 15 | #include <asm/mach/time.h> |
16 | #include <asm/exception.h> | 16 | #include <asm/exception.h> |
17 | 17 | ||
18 | extern struct smp_operations sirfsoc_smp_ops; | 18 | extern const struct smp_operations sirfsoc_smp_ops; |
19 | extern void sirfsoc_secondary_startup(void); | 19 | extern void sirfsoc_secondary_startup(void); |
20 | extern void sirfsoc_cpu_die(unsigned int cpu); | 20 | extern void sirfsoc_cpu_die(unsigned int cpu); |
21 | 21 | ||
diff --git a/arch/arm/mach-prima2/platsmp.c b/arch/arm/mach-prima2/platsmp.c index e46c91094dde..0875b99add18 100644 --- a/arch/arm/mach-prima2/platsmp.c +++ b/arch/arm/mach-prima2/platsmp.c | |||
@@ -112,7 +112,7 @@ static int sirfsoc_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
112 | return pen_release != -1 ? -ENOSYS : 0; | 112 | return pen_release != -1 ? -ENOSYS : 0; |
113 | } | 113 | } |
114 | 114 | ||
115 | struct smp_operations sirfsoc_smp_ops __initdata = { | 115 | const struct smp_operations sirfsoc_smp_ops __initconst = { |
116 | .smp_secondary_init = sirfsoc_secondary_init, | 116 | .smp_secondary_init = sirfsoc_secondary_init, |
117 | .smp_boot_secondary = sirfsoc_boot_secondary, | 117 | .smp_boot_secondary = sirfsoc_boot_secondary, |
118 | #ifdef CONFIG_HOTPLUG_CPU | 118 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-qcom/Kconfig b/arch/arm/mach-qcom/Kconfig index 2256cd1e25d1..73494500b51c 100644 --- a/arch/arm/mach-qcom/Kconfig +++ b/arch/arm/mach-qcom/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_QCOM | 1 | menuconfig ARCH_QCOM |
2 | bool "Qualcomm Support" if ARCH_MULTI_V7 | 2 | bool "Qualcomm Support" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARCH_SUPPORTS_BIG_ENDIAN | 4 | select ARCH_SUPPORTS_BIG_ENDIAN |
4 | select ARM_GIC | 5 | select ARM_GIC |
5 | select ARM_AMBA | 6 | select ARM_AMBA |
diff --git a/arch/arm/mach-qcom/platsmp.c b/arch/arm/mach-qcom/platsmp.c index 9b00123a315d..5494c9e0c909 100644 --- a/arch/arm/mach-qcom/platsmp.c +++ b/arch/arm/mach-qcom/platsmp.c | |||
@@ -332,7 +332,7 @@ static void __init qcom_smp_prepare_cpus(unsigned int max_cpus) | |||
332 | } | 332 | } |
333 | } | 333 | } |
334 | 334 | ||
335 | static struct smp_operations smp_msm8660_ops __initdata = { | 335 | static const struct smp_operations smp_msm8660_ops __initconst = { |
336 | .smp_prepare_cpus = qcom_smp_prepare_cpus, | 336 | .smp_prepare_cpus = qcom_smp_prepare_cpus, |
337 | .smp_secondary_init = qcom_secondary_init, | 337 | .smp_secondary_init = qcom_secondary_init, |
338 | .smp_boot_secondary = msm8660_boot_secondary, | 338 | .smp_boot_secondary = msm8660_boot_secondary, |
@@ -342,7 +342,7 @@ static struct smp_operations smp_msm8660_ops __initdata = { | |||
342 | }; | 342 | }; |
343 | CPU_METHOD_OF_DECLARE(qcom_smp, "qcom,gcc-msm8660", &smp_msm8660_ops); | 343 | CPU_METHOD_OF_DECLARE(qcom_smp, "qcom,gcc-msm8660", &smp_msm8660_ops); |
344 | 344 | ||
345 | static struct smp_operations qcom_smp_kpssv1_ops __initdata = { | 345 | static const struct smp_operations qcom_smp_kpssv1_ops __initconst = { |
346 | .smp_prepare_cpus = qcom_smp_prepare_cpus, | 346 | .smp_prepare_cpus = qcom_smp_prepare_cpus, |
347 | .smp_secondary_init = qcom_secondary_init, | 347 | .smp_secondary_init = qcom_secondary_init, |
348 | .smp_boot_secondary = kpssv1_boot_secondary, | 348 | .smp_boot_secondary = kpssv1_boot_secondary, |
@@ -352,7 +352,7 @@ static struct smp_operations qcom_smp_kpssv1_ops __initdata = { | |||
352 | }; | 352 | }; |
353 | CPU_METHOD_OF_DECLARE(qcom_smp_kpssv1, "qcom,kpss-acc-v1", &qcom_smp_kpssv1_ops); | 353 | CPU_METHOD_OF_DECLARE(qcom_smp_kpssv1, "qcom,kpss-acc-v1", &qcom_smp_kpssv1_ops); |
354 | 354 | ||
355 | static struct smp_operations qcom_smp_kpssv2_ops __initdata = { | 355 | static const struct smp_operations qcom_smp_kpssv2_ops __initconst = { |
356 | .smp_prepare_cpus = qcom_smp_prepare_cpus, | 356 | .smp_prepare_cpus = qcom_smp_prepare_cpus, |
357 | .smp_secondary_init = qcom_secondary_init, | 357 | .smp_secondary_init = qcom_secondary_init, |
358 | .smp_boot_secondary = kpssv2_boot_secondary, | 358 | .smp_boot_secondary = kpssv2_boot_secondary, |
diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h index e1640b2f4350..05a995ea16d3 100644 --- a/arch/arm/mach-realview/core.h +++ b/arch/arm/mach-realview/core.h | |||
@@ -52,7 +52,7 @@ extern int realview_usb_register(struct resource *res); | |||
52 | extern void realview_init_early(void); | 52 | extern void realview_init_early(void); |
53 | extern void realview_fixup(struct tag *tags, char **from); | 53 | extern void realview_fixup(struct tag *tags, char **from); |
54 | 54 | ||
55 | extern struct smp_operations realview_smp_ops; | 55 | extern const struct smp_operations realview_smp_ops; |
56 | extern void realview_cpu_die(unsigned int cpu); | 56 | extern void realview_cpu_die(unsigned int cpu); |
57 | 57 | ||
58 | #endif | 58 | #endif |
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c index a2331b36ccce..e8ab69c7abfb 100644 --- a/arch/arm/mach-realview/platsmp.c +++ b/arch/arm/mach-realview/platsmp.c | |||
@@ -75,7 +75,7 @@ static void __init realview_smp_prepare_cpus(unsigned int max_cpus) | |||
75 | __io_address(REALVIEW_SYS_FLAGSSET)); | 75 | __io_address(REALVIEW_SYS_FLAGSSET)); |
76 | } | 76 | } |
77 | 77 | ||
78 | struct smp_operations realview_smp_ops __initdata = { | 78 | const struct smp_operations realview_smp_ops __initconst = { |
79 | .smp_init_cpus = realview_smp_init_cpus, | 79 | .smp_init_cpus = realview_smp_init_cpus, |
80 | .smp_prepare_cpus = realview_smp_prepare_cpus, | 80 | .smp_prepare_cpus = realview_smp_prepare_cpus, |
81 | .smp_secondary_init = versatile_secondary_init, | 81 | .smp_secondary_init = versatile_secondary_init, |
diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig index ae4eb7cc4bcc..cef42fd886d1 100644 --- a/arch/arm/mach-rockchip/Kconfig +++ b/arch/arm/mach-rockchip/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | config ARCH_ROCKCHIP | 1 | config ARCH_ROCKCHIP |
2 | bool "Rockchip RK2928 and RK3xxx SOCs" if ARCH_MULTI_V7 | 2 | bool "Rockchip RK2928 and RK3xxx SOCs" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select PINCTRL | 4 | select PINCTRL |
4 | select PINCTRL_ROCKCHIP | 5 | select PINCTRL_ROCKCHIP |
5 | select ARCH_HAS_RESET_CONTROLLER | 6 | select ARCH_HAS_RESET_CONTROLLER |
diff --git a/arch/arm/mach-rockchip/platsmp.c b/arch/arm/mach-rockchip/platsmp.c index 3e7a4b761a95..938888fc55a1 100644 --- a/arch/arm/mach-rockchip/platsmp.c +++ b/arch/arm/mach-rockchip/platsmp.c | |||
@@ -340,7 +340,7 @@ static void rockchip_cpu_die(unsigned int cpu) | |||
340 | } | 340 | } |
341 | #endif | 341 | #endif |
342 | 342 | ||
343 | static struct smp_operations rockchip_smp_ops __initdata = { | 343 | static const struct smp_operations rockchip_smp_ops __initconst = { |
344 | .smp_prepare_cpus = rockchip_smp_prepare_cpus, | 344 | .smp_prepare_cpus = rockchip_smp_prepare_cpus, |
345 | .smp_boot_secondary = rockchip_boot_secondary, | 345 | .smp_boot_secondary = rockchip_boot_secondary, |
346 | #ifdef CONFIG_HOTPLUG_CPU | 346 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig index 330bfc8fcd52..13bc9820ff22 100644 --- a/arch/arm/mach-s5pv210/Kconfig +++ b/arch/arm/mach-s5pv210/Kconfig | |||
@@ -8,7 +8,8 @@ | |||
8 | # Configuration options for the S5PV210/S5PC110 | 8 | # Configuration options for the S5PV210/S5PC110 |
9 | 9 | ||
10 | config ARCH_S5PV210 | 10 | config ARCH_S5PV210 |
11 | bool "Samsung S5PV210/S5PC110" if ARCH_MULTI_V7 | 11 | bool "Samsung S5PV210/S5PC110" |
12 | depends on ARCH_MULTI_V7 | ||
12 | select ARCH_HAS_HOLES_MEMORYMODEL | 13 | select ARCH_HAS_HOLES_MEMORYMODEL |
13 | select ARCH_REQUIRE_GPIOLIB | 14 | select ARCH_REQUIRE_GPIOLIB |
14 | select ARM_VIC | 15 | select ARM_VIC |
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 88734a5e10ca..0f25f8fa2692 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
@@ -30,8 +30,8 @@ config ARCH_RMOBILE | |||
30 | select SYS_SUPPORTS_SH_TMU | 30 | select SYS_SUPPORTS_SH_TMU |
31 | 31 | ||
32 | menuconfig ARCH_SHMOBILE_MULTI | 32 | menuconfig ARCH_SHMOBILE_MULTI |
33 | bool "Renesas ARM SoCs" if ARCH_MULTI_V7 | 33 | bool "Renesas ARM SoCs" |
34 | depends on MMU | 34 | depends on ARCH_MULTI_V7 && MMU |
35 | select ARCH_SHMOBILE | 35 | select ARCH_SHMOBILE |
36 | select HAVE_ARM_SCU if SMP | 36 | select HAVE_ARM_SCU if SMP |
37 | select HAVE_ARM_TWD if SMP | 37 | select HAVE_ARM_TWD if SMP |
diff --git a/arch/arm/mach-shmobile/r8a7779.h b/arch/arm/mach-shmobile/r8a7779.h index e1aaa2ef9376..2a5f7730a03c 100644 --- a/arch/arm/mach-shmobile/r8a7779.h +++ b/arch/arm/mach-shmobile/r8a7779.h | |||
@@ -3,6 +3,6 @@ | |||
3 | 3 | ||
4 | extern void r8a7779_pm_init(void); | 4 | extern void r8a7779_pm_init(void); |
5 | 5 | ||
6 | extern struct smp_operations r8a7779_smp_ops; | 6 | extern const struct smp_operations r8a7779_smp_ops; |
7 | 7 | ||
8 | #endif /* __ASM_R8A7779_H__ */ | 8 | #endif /* __ASM_R8A7779_H__ */ |
diff --git a/arch/arm/mach-shmobile/r8a7790.h b/arch/arm/mach-shmobile/r8a7790.h index 1a46d026052c..136f3455e9c7 100644 --- a/arch/arm/mach-shmobile/r8a7790.h +++ b/arch/arm/mach-shmobile/r8a7790.h | |||
@@ -1,6 +1,6 @@ | |||
1 | #ifndef __ASM_R8A7790_H__ | 1 | #ifndef __ASM_R8A7790_H__ |
2 | #define __ASM_R8A7790_H__ | 2 | #define __ASM_R8A7790_H__ |
3 | 3 | ||
4 | extern struct smp_operations r8a7790_smp_ops; | 4 | extern const struct smp_operations r8a7790_smp_ops; |
5 | 5 | ||
6 | #endif /* __ASM_R8A7790_H__ */ | 6 | #endif /* __ASM_R8A7790_H__ */ |
diff --git a/arch/arm/mach-shmobile/r8a7791.h b/arch/arm/mach-shmobile/r8a7791.h index 7ca0b7d0f59b..cf7a8405bd7f 100644 --- a/arch/arm/mach-shmobile/r8a7791.h +++ b/arch/arm/mach-shmobile/r8a7791.h | |||
@@ -1,6 +1,6 @@ | |||
1 | #ifndef __ASM_R8A7791_H__ | 1 | #ifndef __ASM_R8A7791_H__ |
2 | #define __ASM_R8A7791_H__ | 2 | #define __ASM_R8A7791_H__ |
3 | 3 | ||
4 | extern struct smp_operations r8a7791_smp_ops; | 4 | extern const struct smp_operations r8a7791_smp_ops; |
5 | 5 | ||
6 | #endif /* __ASM_R8A7791_H__ */ | 6 | #endif /* __ASM_R8A7791_H__ */ |
diff --git a/arch/arm/mach-shmobile/setup-emev2.c b/arch/arm/mach-shmobile/setup-emev2.c index 37f7b15c01bc..10b7cb5dcb3a 100644 --- a/arch/arm/mach-shmobile/setup-emev2.c +++ b/arch/arm/mach-shmobile/setup-emev2.c | |||
@@ -42,7 +42,7 @@ static const char *const emev2_boards_compat_dt[] __initconst = { | |||
42 | NULL, | 42 | NULL, |
43 | }; | 43 | }; |
44 | 44 | ||
45 | extern struct smp_operations emev2_smp_ops; | 45 | extern const struct smp_operations emev2_smp_ops; |
46 | 46 | ||
47 | DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)") | 47 | DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)") |
48 | .smp = smp_ops(emev2_smp_ops), | 48 | .smp = smp_ops(emev2_smp_ops), |
diff --git a/arch/arm/mach-shmobile/sh73a0.h b/arch/arm/mach-shmobile/sh73a0.h index 39646806cf64..50ef24f780b3 100644 --- a/arch/arm/mach-shmobile/sh73a0.h +++ b/arch/arm/mach-shmobile/sh73a0.h | |||
@@ -1,6 +1,6 @@ | |||
1 | #ifndef __ASM_SH73A0_H__ | 1 | #ifndef __ASM_SH73A0_H__ |
2 | #define __ASM_SH73A0_H__ | 2 | #define __ASM_SH73A0_H__ |
3 | 3 | ||
4 | extern struct smp_operations sh73a0_smp_ops; | 4 | extern const struct smp_operations sh73a0_smp_ops; |
5 | 5 | ||
6 | #endif /* __ASM_SH73A0_H__ */ | 6 | #endif /* __ASM_SH73A0_H__ */ |
diff --git a/arch/arm/mach-shmobile/smp-emev2.c b/arch/arm/mach-shmobile/smp-emev2.c index baff3b5efed8..adbac6963f2b 100644 --- a/arch/arm/mach-shmobile/smp-emev2.c +++ b/arch/arm/mach-shmobile/smp-emev2.c | |||
@@ -49,7 +49,7 @@ static void __init emev2_smp_prepare_cpus(unsigned int max_cpus) | |||
49 | shmobile_smp_scu_prepare_cpus(max_cpus); | 49 | shmobile_smp_scu_prepare_cpus(max_cpus); |
50 | } | 50 | } |
51 | 51 | ||
52 | struct smp_operations emev2_smp_ops __initdata = { | 52 | const struct smp_operations emev2_smp_ops __initconst = { |
53 | .smp_prepare_cpus = emev2_smp_prepare_cpus, | 53 | .smp_prepare_cpus = emev2_smp_prepare_cpus, |
54 | .smp_boot_secondary = emev2_boot_secondary, | 54 | .smp_boot_secondary = emev2_boot_secondary, |
55 | }; | 55 | }; |
diff --git a/arch/arm/mach-shmobile/smp-r8a7779.c b/arch/arm/mach-shmobile/smp-r8a7779.c index 353562b8a5ee..b854fe2095ad 100644 --- a/arch/arm/mach-shmobile/smp-r8a7779.c +++ b/arch/arm/mach-shmobile/smp-r8a7779.c | |||
@@ -117,7 +117,7 @@ static int r8a7779_cpu_kill(unsigned int cpu) | |||
117 | } | 117 | } |
118 | #endif /* CONFIG_HOTPLUG_CPU */ | 118 | #endif /* CONFIG_HOTPLUG_CPU */ |
119 | 119 | ||
120 | struct smp_operations r8a7779_smp_ops __initdata = { | 120 | const struct smp_operations r8a7779_smp_ops __initconst = { |
121 | .smp_prepare_cpus = r8a7779_smp_prepare_cpus, | 121 | .smp_prepare_cpus = r8a7779_smp_prepare_cpus, |
122 | .smp_boot_secondary = r8a7779_boot_secondary, | 122 | .smp_boot_secondary = r8a7779_boot_secondary, |
123 | #ifdef CONFIG_HOTPLUG_CPU | 123 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-shmobile/smp-r8a7790.c b/arch/arm/mach-shmobile/smp-r8a7790.c index 4b33d432a364..f6426c6fdefc 100644 --- a/arch/arm/mach-shmobile/smp-r8a7790.c +++ b/arch/arm/mach-shmobile/smp-r8a7790.c | |||
@@ -60,7 +60,7 @@ static void __init r8a7790_smp_prepare_cpus(unsigned int max_cpus) | |||
60 | rcar_sysc_power_up(&r8a7790_ca7_scu); | 60 | rcar_sysc_power_up(&r8a7790_ca7_scu); |
61 | } | 61 | } |
62 | 62 | ||
63 | struct smp_operations r8a7790_smp_ops __initdata = { | 63 | const struct smp_operations r8a7790_smp_ops __initconst = { |
64 | .smp_prepare_cpus = r8a7790_smp_prepare_cpus, | 64 | .smp_prepare_cpus = r8a7790_smp_prepare_cpus, |
65 | .smp_boot_secondary = shmobile_smp_apmu_boot_secondary, | 65 | .smp_boot_secondary = shmobile_smp_apmu_boot_secondary, |
66 | #ifdef CONFIG_HOTPLUG_CPU | 66 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-shmobile/smp-r8a7791.c b/arch/arm/mach-shmobile/smp-r8a7791.c index b2508c0d276b..2d6417af73b5 100644 --- a/arch/arm/mach-shmobile/smp-r8a7791.c +++ b/arch/arm/mach-shmobile/smp-r8a7791.c | |||
@@ -54,7 +54,7 @@ static int r8a7791_smp_boot_secondary(unsigned int cpu, | |||
54 | return shmobile_smp_apmu_boot_secondary(cpu, idle); | 54 | return shmobile_smp_apmu_boot_secondary(cpu, idle); |
55 | } | 55 | } |
56 | 56 | ||
57 | struct smp_operations r8a7791_smp_ops __initdata = { | 57 | const struct smp_operations r8a7791_smp_ops __initconst = { |
58 | .smp_prepare_cpus = r8a7791_smp_prepare_cpus, | 58 | .smp_prepare_cpus = r8a7791_smp_prepare_cpus, |
59 | .smp_boot_secondary = r8a7791_smp_boot_secondary, | 59 | .smp_boot_secondary = r8a7791_smp_boot_secondary, |
60 | #ifdef CONFIG_HOTPLUG_CPU | 60 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c index bc2824a036e1..ee1a4b70604b 100644 --- a/arch/arm/mach-shmobile/smp-sh73a0.c +++ b/arch/arm/mach-shmobile/smp-sh73a0.c | |||
@@ -56,7 +56,7 @@ static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus) | |||
56 | shmobile_smp_scu_prepare_cpus(max_cpus); | 56 | shmobile_smp_scu_prepare_cpus(max_cpus); |
57 | } | 57 | } |
58 | 58 | ||
59 | struct smp_operations sh73a0_smp_ops __initdata = { | 59 | const struct smp_operations sh73a0_smp_ops __initconst = { |
60 | .smp_prepare_cpus = sh73a0_smp_prepare_cpus, | 60 | .smp_prepare_cpus = sh73a0_smp_prepare_cpus, |
61 | .smp_boot_secondary = sh73a0_boot_secondary, | 61 | .smp_boot_secondary = sh73a0_boot_secondary, |
62 | #ifdef CONFIG_HOTPLUG_CPU | 62 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig index 90efdeb56be5..d0f62eacf59d 100644 --- a/arch/arm/mach-socfpga/Kconfig +++ b/arch/arm/mach-socfpga/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_SOCFPGA | 1 | menuconfig ARCH_SOCFPGA |
2 | bool "Altera SOCFPGA family" if ARCH_MULTI_V7 | 2 | bool "Altera SOCFPGA family" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARCH_SUPPORTS_BIG_ENDIAN | 4 | select ARCH_SUPPORTS_BIG_ENDIAN |
4 | select ARM_AMBA | 5 | select ARM_AMBA |
5 | select ARM_GIC | 6 | select ARM_GIC |
diff --git a/arch/arm/mach-socfpga/platsmp.c b/arch/arm/mach-socfpga/platsmp.c index 15c8ce8965f4..cbb0a54df80a 100644 --- a/arch/arm/mach-socfpga/platsmp.c +++ b/arch/arm/mach-socfpga/platsmp.c | |||
@@ -117,7 +117,7 @@ static int socfpga_cpu_kill(unsigned int cpu) | |||
117 | return 1; | 117 | return 1; |
118 | } | 118 | } |
119 | 119 | ||
120 | static struct smp_operations socfpga_smp_ops __initdata = { | 120 | static const struct smp_operations socfpga_smp_ops __initconst = { |
121 | .smp_prepare_cpus = socfpga_smp_prepare_cpus, | 121 | .smp_prepare_cpus = socfpga_smp_prepare_cpus, |
122 | .smp_boot_secondary = socfpga_boot_secondary, | 122 | .smp_boot_secondary = socfpga_boot_secondary, |
123 | #ifdef CONFIG_HOTPLUG_CPU | 123 | #ifdef CONFIG_HOTPLUG_CPU |
@@ -126,7 +126,7 @@ static struct smp_operations socfpga_smp_ops __initdata = { | |||
126 | #endif | 126 | #endif |
127 | }; | 127 | }; |
128 | 128 | ||
129 | static struct smp_operations socfpga_a10_smp_ops __initdata = { | 129 | static const struct smp_operations socfpga_a10_smp_ops __initconst = { |
130 | .smp_prepare_cpus = socfpga_smp_prepare_cpus, | 130 | .smp_prepare_cpus = socfpga_smp_prepare_cpus, |
131 | .smp_boot_secondary = socfpga_a10_boot_secondary, | 131 | .smp_boot_secondary = socfpga_a10_boot_secondary, |
132 | #ifdef CONFIG_HOTPLUG_CPU | 132 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-spear/Kconfig b/arch/arm/mach-spear/Kconfig index b6f4bda273b3..ea9ea95630bd 100644 --- a/arch/arm/mach-spear/Kconfig +++ b/arch/arm/mach-spear/Kconfig | |||
@@ -3,7 +3,8 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | menuconfig PLAT_SPEAR | 5 | menuconfig PLAT_SPEAR |
6 | bool "ST SPEAr Family" if ARCH_MULTI_V7 || ARCH_MULTI_V5 | 6 | bool "ST SPEAr Family" |
7 | depends on ARCH_MULTI_V7 || ARCH_MULTI_V5 | ||
7 | select ARCH_REQUIRE_GPIOLIB | 8 | select ARCH_REQUIRE_GPIOLIB |
8 | select ARM_AMBA | 9 | select ARM_AMBA |
9 | select CLKSRC_MMIO | 10 | select CLKSRC_MMIO |
diff --git a/arch/arm/mach-spear/generic.h b/arch/arm/mach-spear/generic.h index 06640914d9a0..909b97c0b237 100644 --- a/arch/arm/mach-spear/generic.h +++ b/arch/arm/mach-spear/generic.h | |||
@@ -39,7 +39,7 @@ void spear_restart(enum reboot_mode, const char *); | |||
39 | void spear13xx_secondary_startup(void); | 39 | void spear13xx_secondary_startup(void); |
40 | void spear13xx_cpu_die(unsigned int cpu); | 40 | void spear13xx_cpu_die(unsigned int cpu); |
41 | 41 | ||
42 | extern struct smp_operations spear13xx_smp_ops; | 42 | extern const struct smp_operations spear13xx_smp_ops; |
43 | 43 | ||
44 | #ifdef CONFIG_MACH_SPEAR1310 | 44 | #ifdef CONFIG_MACH_SPEAR1310 |
45 | void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base); | 45 | void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base); |
diff --git a/arch/arm/mach-spear/platsmp.c b/arch/arm/mach-spear/platsmp.c index fd4297713d67..8d1e2d551786 100644 --- a/arch/arm/mach-spear/platsmp.c +++ b/arch/arm/mach-spear/platsmp.c | |||
@@ -120,7 +120,7 @@ static void __init spear13xx_smp_prepare_cpus(unsigned int max_cpus) | |||
120 | __raw_writel(virt_to_phys(spear13xx_secondary_startup), SYS_LOCATION); | 120 | __raw_writel(virt_to_phys(spear13xx_secondary_startup), SYS_LOCATION); |
121 | } | 121 | } |
122 | 122 | ||
123 | struct smp_operations spear13xx_smp_ops __initdata = { | 123 | const struct smp_operations spear13xx_smp_ops __initconst = { |
124 | .smp_init_cpus = spear13xx_smp_init_cpus, | 124 | .smp_init_cpus = spear13xx_smp_init_cpus, |
125 | .smp_prepare_cpus = spear13xx_smp_prepare_cpus, | 125 | .smp_prepare_cpus = spear13xx_smp_prepare_cpus, |
126 | .smp_secondary_init = spear13xx_secondary_init, | 126 | .smp_secondary_init = spear13xx_secondary_init, |
diff --git a/arch/arm/mach-sti/Kconfig b/arch/arm/mach-sti/Kconfig index 125865daaf17..736abe6d01dc 100644 --- a/arch/arm/mach-sti/Kconfig +++ b/arch/arm/mach-sti/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_STI | 1 | menuconfig ARCH_STI |
2 | bool "STMicroelectronics Consumer Electronics SOCs" if ARCH_MULTI_V7 | 2 | bool "STMicroelectronics Consumer Electronics SOCs" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARM_GIC | 4 | select ARM_GIC |
4 | select ST_IRQCHIP | 5 | select ST_IRQCHIP |
5 | select ARM_GLOBAL_TIMER | 6 | select ARM_GLOBAL_TIMER |
diff --git a/arch/arm/mach-sti/platsmp.c b/arch/arm/mach-sti/platsmp.c index c4ad6eae67fa..ea5a2277ee46 100644 --- a/arch/arm/mach-sti/platsmp.c +++ b/arch/arm/mach-sti/platsmp.c | |||
@@ -156,7 +156,7 @@ static void __init sti_smp_prepare_cpus(unsigned int max_cpus) | |||
156 | } | 156 | } |
157 | } | 157 | } |
158 | 158 | ||
159 | struct smp_operations __initdata sti_smp_ops = { | 159 | const struct smp_operations sti_smp_ops __initconst = { |
160 | .smp_prepare_cpus = sti_smp_prepare_cpus, | 160 | .smp_prepare_cpus = sti_smp_prepare_cpus, |
161 | .smp_secondary_init = sti_secondary_init, | 161 | .smp_secondary_init = sti_secondary_init, |
162 | .smp_boot_secondary = sti_boot_secondary, | 162 | .smp_boot_secondary = sti_boot_secondary, |
diff --git a/arch/arm/mach-sti/smp.h b/arch/arm/mach-sti/smp.h index ae22707d301f..d8a2f8758490 100644 --- a/arch/arm/mach-sti/smp.h +++ b/arch/arm/mach-sti/smp.h | |||
@@ -12,7 +12,7 @@ | |||
12 | #ifndef __MACH_STI_SMP_H | 12 | #ifndef __MACH_STI_SMP_H |
13 | #define __MACH_STI_SMP_H | 13 | #define __MACH_STI_SMP_H |
14 | 14 | ||
15 | extern struct smp_operations sti_smp_ops; | 15 | extern const struct smp_operations sti_smp_ops; |
16 | 16 | ||
17 | void sti_secondary_startup(void); | 17 | void sti_secondary_startup(void); |
18 | 18 | ||
diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index 4efe2d43a126..c124d658b350 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_SUNXI | 1 | menuconfig ARCH_SUNXI |
2 | bool "Allwinner SoCs" if ARCH_MULTI_V7 | 2 | bool "Allwinner SoCs" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARCH_REQUIRE_GPIOLIB | 4 | select ARCH_REQUIRE_GPIOLIB |
4 | select ARCH_HAS_RESET_CONTROLLER | 5 | select ARCH_HAS_RESET_CONTROLLER |
5 | select CLKSRC_MMIO | 6 | select CLKSRC_MMIO |
diff --git a/arch/arm/mach-sunxi/platsmp.c b/arch/arm/mach-sunxi/platsmp.c index e8483ec79d67..6642267812c9 100644 --- a/arch/arm/mach-sunxi/platsmp.c +++ b/arch/arm/mach-sunxi/platsmp.c | |||
@@ -116,7 +116,7 @@ static int sun6i_smp_boot_secondary(unsigned int cpu, | |||
116 | return 0; | 116 | return 0; |
117 | } | 117 | } |
118 | 118 | ||
119 | static struct smp_operations sun6i_smp_ops __initdata = { | 119 | static const struct smp_operations sun6i_smp_ops __initconst = { |
120 | .smp_prepare_cpus = sun6i_smp_prepare_cpus, | 120 | .smp_prepare_cpus = sun6i_smp_prepare_cpus, |
121 | .smp_boot_secondary = sun6i_smp_boot_secondary, | 121 | .smp_boot_secondary = sun6i_smp_boot_secondary, |
122 | }; | 122 | }; |
@@ -185,7 +185,7 @@ static int sun8i_smp_boot_secondary(unsigned int cpu, | |||
185 | return 0; | 185 | return 0; |
186 | } | 186 | } |
187 | 187 | ||
188 | struct smp_operations sun8i_smp_ops __initdata = { | 188 | static const struct smp_operations sun8i_smp_ops __initconst = { |
189 | .smp_prepare_cpus = sun8i_smp_prepare_cpus, | 189 | .smp_prepare_cpus = sun8i_smp_prepare_cpus, |
190 | .smp_boot_secondary = sun8i_smp_boot_secondary, | 190 | .smp_boot_secondary = sun8i_smp_boot_secondary, |
191 | }; | 191 | }; |
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index 0fa4c5f8b1be..a90f3556017f 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_TEGRA | 1 | menuconfig ARCH_TEGRA |
2 | bool "NVIDIA Tegra" if ARCH_MULTI_V7 | 2 | bool "NVIDIA Tegra" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARCH_REQUIRE_GPIOLIB | 4 | select ARCH_REQUIRE_GPIOLIB |
4 | select ARCH_SUPPORTS_TRUSTED_FOUNDATIONS | 5 | select ARCH_SUPPORTS_TRUSTED_FOUNDATIONS |
5 | select ARM_AMBA | 6 | select ARM_AMBA |
diff --git a/arch/arm/mach-tegra/common.h b/arch/arm/mach-tegra/common.h index 5900cc44f780..1f6fb808e236 100644 --- a/arch/arm/mach-tegra/common.h +++ b/arch/arm/mach-tegra/common.h | |||
@@ -1,4 +1,4 @@ | |||
1 | extern struct smp_operations tegra_smp_ops; | 1 | extern const struct smp_operations tegra_smp_ops; |
2 | 2 | ||
3 | extern int tegra_cpu_kill(unsigned int cpu); | 3 | extern int tegra_cpu_kill(unsigned int cpu); |
4 | extern void tegra_cpu_die(unsigned int cpu); | 4 | extern void tegra_cpu_die(unsigned int cpu); |
diff --git a/arch/arm/mach-tegra/platsmp.c b/arch/arm/mach-tegra/platsmp.c index b45086666648..f3f61dbbda97 100644 --- a/arch/arm/mach-tegra/platsmp.c +++ b/arch/arm/mach-tegra/platsmp.c | |||
@@ -192,7 +192,7 @@ static void __init tegra_smp_prepare_cpus(unsigned int max_cpus) | |||
192 | scu_enable(IO_ADDRESS(scu_a9_get_base())); | 192 | scu_enable(IO_ADDRESS(scu_a9_get_base())); |
193 | } | 193 | } |
194 | 194 | ||
195 | struct smp_operations tegra_smp_ops __initdata = { | 195 | const struct smp_operations tegra_smp_ops __initconst = { |
196 | .smp_prepare_cpus = tegra_smp_prepare_cpus, | 196 | .smp_prepare_cpus = tegra_smp_prepare_cpus, |
197 | .smp_secondary_init = tegra_secondary_init, | 197 | .smp_secondary_init = tegra_secondary_init, |
198 | .smp_boot_secondary = tegra_boot_secondary, | 198 | .smp_boot_secondary = tegra_boot_secondary, |
diff --git a/arch/arm/mach-u300/Kconfig b/arch/arm/mach-u300/Kconfig index bc51a71394af..301a98498453 100644 --- a/arch/arm/mach-u300/Kconfig +++ b/arch/arm/mach-u300/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | menuconfig ARCH_U300 | 1 | menuconfig ARCH_U300 |
2 | bool "ST-Ericsson U300 Series" if ARCH_MULTI_V5 | 2 | bool "ST-Ericsson U300 Series" |
3 | depends on MMU | 3 | depends on ARCH_MULTI_V5 && MMU |
4 | select ARCH_REQUIRE_GPIOLIB | 4 | select ARCH_REQUIRE_GPIOLIB |
5 | select ARM_AMBA | 5 | select ARM_AMBA |
6 | select ARM_VIC | 6 | select ARM_VIC |
diff --git a/arch/arm/mach-uniphier/platsmp.c b/arch/arm/mach-uniphier/platsmp.c index f0577664611c..e1cfc1d6e2f4 100644 --- a/arch/arm/mach-uniphier/platsmp.c +++ b/arch/arm/mach-uniphier/platsmp.c | |||
@@ -201,7 +201,7 @@ static int __init uniphier_smp_boot_secondary(unsigned int cpu, | |||
201 | return 0; | 201 | return 0; |
202 | } | 202 | } |
203 | 203 | ||
204 | static struct smp_operations uniphier_smp_ops __initdata = { | 204 | static const struct smp_operations uniphier_smp_ops __initconst = { |
205 | .smp_prepare_cpus = uniphier_smp_prepare_cpus, | 205 | .smp_prepare_cpus = uniphier_smp_prepare_cpus, |
206 | .smp_boot_secondary = uniphier_smp_boot_secondary, | 206 | .smp_boot_secondary = uniphier_smp_boot_secondary, |
207 | }; | 207 | }; |
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig index c9ac19b24e5a..a5c3373c7f76 100644 --- a/arch/arm/mach-ux500/Kconfig +++ b/arch/arm/mach-ux500/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | menuconfig ARCH_U8500 | 1 | menuconfig ARCH_U8500 |
2 | bool "ST-Ericsson U8500 Series" if ARCH_MULTI_V7 | 2 | bool "ST-Ericsson U8500 Series" |
3 | depends on MMU | 3 | depends on ARCH_MULTI_V7 && MMU |
4 | select AB8500_CORE | 4 | select AB8500_CORE |
5 | select ABX500_CORE | 5 | select ABX500_CORE |
6 | select ARCH_REQUIRE_GPIOLIB | 6 | select ARCH_REQUIRE_GPIOLIB |
diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile index c8643ac5db71..edfff1ae1f8d 100644 --- a/arch/arm/mach-ux500/Makefile +++ b/arch/arm/mach-ux500/Makefile | |||
@@ -2,7 +2,7 @@ | |||
2 | # Makefile for the linux kernel, U8500 machine. | 2 | # Makefile for the linux kernel, U8500 machine. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := cpu.o id.o timer.o pm.o | 5 | obj-y := cpu.o id.o pm.o |
6 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o | 6 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o |
7 | obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o | 7 | obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o |
8 | obj-$(CONFIG_MACH_MOP500) += board-mop500-regulators.o \ | 8 | obj-$(CONFIG_MACH_MOP500) += board-mop500-regulators.o \ |
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index f80560318c58..a0ffaad1fb61 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
@@ -156,8 +156,6 @@ static const char * stericsson_dt_platform_compat[] = { | |||
156 | DT_MACHINE_START(U8500_DT, "ST-Ericsson Ux5x0 platform (Device Tree Support)") | 156 | DT_MACHINE_START(U8500_DT, "ST-Ericsson Ux5x0 platform (Device Tree Support)") |
157 | .map_io = u8500_map_io, | 157 | .map_io = u8500_map_io, |
158 | .init_irq = ux500_init_irq, | 158 | .init_irq = ux500_init_irq, |
159 | /* we re-use nomadik timer here */ | ||
160 | .init_time = ux500_timer_init, | ||
161 | .init_machine = u8500_init_machine, | 159 | .init_machine = u8500_init_machine, |
162 | .init_late = NULL, | 160 | .init_late = NULL, |
163 | .dt_compat = stericsson_dt_platform_compat, | 161 | .dt_compat = stericsson_dt_platform_compat, |
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c index 41b81c4fbe63..82156cbc22ce 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c | |||
@@ -9,7 +9,6 @@ | |||
9 | #include <linux/platform_device.h> | 9 | #include <linux/platform_device.h> |
10 | #include <linux/io.h> | 10 | #include <linux/io.h> |
11 | #include <linux/mfd/dbx500-prcmu.h> | 11 | #include <linux/mfd/dbx500-prcmu.h> |
12 | #include <linux/clksrc-dbx500-prcmu.h> | ||
13 | #include <linux/sys_soc.h> | 12 | #include <linux/sys_soc.h> |
14 | #include <linux/err.h> | 13 | #include <linux/err.h> |
15 | #include <linux/slab.h> | 14 | #include <linux/slab.h> |
diff --git a/arch/arm/mach-ux500/platsmp.c b/arch/arm/mach-ux500/platsmp.c index 70766b963758..88b8ab4f300c 100644 --- a/arch/arm/mach-ux500/platsmp.c +++ b/arch/arm/mach-ux500/platsmp.c | |||
@@ -98,7 +98,7 @@ static int ux500_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
98 | return 0; | 98 | return 0; |
99 | } | 99 | } |
100 | 100 | ||
101 | struct smp_operations ux500_smp_ops __initdata = { | 101 | static const struct smp_operations ux500_smp_ops __initconst = { |
102 | .smp_prepare_cpus = ux500_smp_prepare_cpus, | 102 | .smp_prepare_cpus = ux500_smp_prepare_cpus, |
103 | .smp_boot_secondary = ux500_boot_secondary, | 103 | .smp_boot_secondary = ux500_boot_secondary, |
104 | #ifdef CONFIG_HOTPLUG_CPU | 104 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/arch/arm/mach-ux500/setup.h b/arch/arm/mach-ux500/setup.h index 65876eac0761..c704254ab67c 100644 --- a/arch/arm/mach-ux500/setup.h +++ b/arch/arm/mach-ux500/setup.h | |||
@@ -12,7 +12,6 @@ | |||
12 | #define __ASM_ARCH_SETUP_H | 12 | #define __ASM_ARCH_SETUP_H |
13 | 13 | ||
14 | #include <asm/mach/arch.h> | 14 | #include <asm/mach/arch.h> |
15 | #include <asm/mach/time.h> | ||
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/mfd/abx500/ab8500.h> | 16 | #include <linux/mfd/abx500/ab8500.h> |
18 | 17 | ||
@@ -24,8 +23,6 @@ extern void __init ux500_init_irq(void); | |||
24 | 23 | ||
25 | extern struct device *ux500_soc_device_init(const char *soc_id); | 24 | extern struct device *ux500_soc_device_init(const char *soc_id); |
26 | 25 | ||
27 | extern void ux500_timer_init(void); | ||
28 | |||
29 | extern void ux500_cpu_die(unsigned int cpu); | 26 | extern void ux500_cpu_die(unsigned int cpu); |
30 | 27 | ||
31 | #endif /* __ASM_ARCH_SETUP_H */ | 28 | #endif /* __ASM_ARCH_SETUP_H */ |
diff --git a/arch/arm/mach-ux500/timer.c b/arch/arm/mach-ux500/timer.c deleted file mode 100644 index 8d2d233f8e6c..000000000000 --- a/arch/arm/mach-ux500/timer.c +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson SA 2011 | ||
3 | * | ||
4 | * License Terms: GNU General Public License v2 | ||
5 | * Author: Mattias Wallin <mattias.wallin@stericsson.com> for ST-Ericsson | ||
6 | */ | ||
7 | #include <linux/io.h> | ||
8 | #include <linux/errno.h> | ||
9 | #include <linux/clksrc-dbx500-prcmu.h> | ||
10 | #include <linux/clocksource.h> | ||
11 | #include <linux/of.h> | ||
12 | #include <linux/of_address.h> | ||
13 | |||
14 | #include "setup.h" | ||
15 | |||
16 | #include "db8500-regs.h" | ||
17 | #include "id.h" | ||
18 | |||
19 | static const struct of_device_id prcmu_timer_of_match[] __initconst = { | ||
20 | { .compatible = "stericsson,db8500-prcmu-timer-4", }, | ||
21 | { }, | ||
22 | }; | ||
23 | |||
24 | void __init ux500_timer_init(void) | ||
25 | { | ||
26 | void __iomem *prcmu_timer_base; | ||
27 | void __iomem *tmp_base; | ||
28 | struct device_node *np; | ||
29 | |||
30 | if (cpu_is_u8500_family() || cpu_is_ux540_family()) | ||
31 | prcmu_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE); | ||
32 | else | ||
33 | ux500_unknown_soc(); | ||
34 | |||
35 | np = of_find_matching_node(NULL, prcmu_timer_of_match); | ||
36 | if (!np) | ||
37 | goto dt_fail; | ||
38 | |||
39 | tmp_base = of_iomap(np, 0); | ||
40 | if (!tmp_base) | ||
41 | goto dt_fail; | ||
42 | |||
43 | prcmu_timer_base = tmp_base; | ||
44 | |||
45 | dt_fail: | ||
46 | clksrc_dbx500_prcmu_init(prcmu_timer_base); | ||
47 | clocksource_probe(); | ||
48 | } | ||
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig index 10f9389572da..398a297b7e09 100644 --- a/arch/arm/mach-vexpress/Kconfig +++ b/arch/arm/mach-vexpress/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_VEXPRESS | 1 | menuconfig ARCH_VEXPRESS |
2 | bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 | 2 | bool "ARM Ltd. Versatile Express family" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARCH_REQUIRE_GPIOLIB | 4 | select ARCH_REQUIRE_GPIOLIB |
4 | select ARCH_SUPPORTS_BIG_ENDIAN | 5 | select ARCH_SUPPORTS_BIG_ENDIAN |
5 | select ARM_AMBA | 6 | select ARM_AMBA |
diff --git a/arch/arm/mach-vexpress/core.h b/arch/arm/mach-vexpress/core.h index 2a11d3ac8c68..a162ab46ee02 100644 --- a/arch/arm/mach-vexpress/core.h +++ b/arch/arm/mach-vexpress/core.h | |||
@@ -1,5 +1,5 @@ | |||
1 | bool vexpress_smp_init_ops(void); | 1 | bool vexpress_smp_init_ops(void); |
2 | 2 | ||
3 | extern struct smp_operations vexpress_smp_dt_ops; | 3 | extern const struct smp_operations vexpress_smp_dt_ops; |
4 | 4 | ||
5 | extern void vexpress_cpu_die(unsigned int cpu); | 5 | extern void vexpress_cpu_die(unsigned int cpu); |
diff --git a/arch/arm/mach-vexpress/platsmp.c b/arch/arm/mach-vexpress/platsmp.c index 83188cf1875d..8b8d0724f6c6 100644 --- a/arch/arm/mach-vexpress/platsmp.c +++ b/arch/arm/mach-vexpress/platsmp.c | |||
@@ -64,7 +64,7 @@ static void __init vexpress_smp_dt_prepare_cpus(unsigned int max_cpus) | |||
64 | vexpress_flags_set(virt_to_phys(versatile_secondary_startup)); | 64 | vexpress_flags_set(virt_to_phys(versatile_secondary_startup)); |
65 | } | 65 | } |
66 | 66 | ||
67 | struct smp_operations __initdata vexpress_smp_dt_ops = { | 67 | const struct smp_operations vexpress_smp_dt_ops __initconst = { |
68 | .smp_prepare_cpus = vexpress_smp_dt_prepare_cpus, | 68 | .smp_prepare_cpus = vexpress_smp_dt_prepare_cpus, |
69 | .smp_secondary_init = versatile_secondary_init, | 69 | .smp_secondary_init = versatile_secondary_init, |
70 | .smp_boot_secondary = versatile_boot_secondary, | 70 | .smp_boot_secondary = versatile_boot_secondary, |
diff --git a/arch/arm/mach-zx/Kconfig b/arch/arm/mach-zx/Kconfig index 446334a25cf5..209c97944de2 100644 --- a/arch/arm/mach-zx/Kconfig +++ b/arch/arm/mach-zx/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig ARCH_ZX | 1 | menuconfig ARCH_ZX |
2 | bool "ZTE ZX family" if ARCH_MULTI_V7 | 2 | bool "ZTE ZX family" |
3 | depends on ARCH_MULTI_V7 | ||
3 | help | 4 | help |
4 | Support for ZTE ZX-based family of processors. TV | 5 | Support for ZTE ZX-based family of processors. TV |
5 | set-top-box processor is supported. More will be | 6 | set-top-box processor is supported. More will be |
diff --git a/arch/arm/mach-zx/platsmp.c b/arch/arm/mach-zx/platsmp.c index a3693982d65d..0297f92084e0 100644 --- a/arch/arm/mach-zx/platsmp.c +++ b/arch/arm/mach-zx/platsmp.c | |||
@@ -176,7 +176,7 @@ static void zx_secondary_init(unsigned int cpu) | |||
176 | scu_power_mode(scu_base, SCU_PM_NORMAL); | 176 | scu_power_mode(scu_base, SCU_PM_NORMAL); |
177 | } | 177 | } |
178 | 178 | ||
179 | struct smp_operations zx_smp_ops __initdata = { | 179 | static const struct smp_operations zx_smp_ops __initconst = { |
180 | .smp_prepare_cpus = zx_smp_prepare_cpus, | 180 | .smp_prepare_cpus = zx_smp_prepare_cpus, |
181 | .smp_secondary_init = zx_secondary_init, | 181 | .smp_secondary_init = zx_secondary_init, |
182 | .smp_boot_secondary = zx_boot_secondary, | 182 | .smp_boot_secondary = zx_boot_secondary, |
diff --git a/arch/arm/mach-zynq/Kconfig b/arch/arm/mach-zynq/Kconfig index 78e5e007f52d..f287667e4fc5 100644 --- a/arch/arm/mach-zynq/Kconfig +++ b/arch/arm/mach-zynq/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | config ARCH_ZYNQ | 1 | config ARCH_ZYNQ |
2 | bool "Xilinx Zynq ARM Cortex A9 Platform" if ARCH_MULTI_V7 | 2 | bool "Xilinx Zynq ARM Cortex A9 Platform" |
3 | depends on ARCH_MULTI_V7 | ||
3 | select ARCH_SUPPORTS_BIG_ENDIAN | 4 | select ARCH_SUPPORTS_BIG_ENDIAN |
4 | select ARM_AMBA | 5 | select ARM_AMBA |
5 | select ARM_GIC | 6 | select ARM_GIC |
diff --git a/arch/arm/mach-zynq/common.h b/arch/arm/mach-zynq/common.h index 79cda2e5fa4e..e771933db7e8 100644 --- a/arch/arm/mach-zynq/common.h +++ b/arch/arm/mach-zynq/common.h | |||
@@ -30,7 +30,7 @@ extern char zynq_secondary_trampoline; | |||
30 | extern char zynq_secondary_trampoline_jump; | 30 | extern char zynq_secondary_trampoline_jump; |
31 | extern char zynq_secondary_trampoline_end; | 31 | extern char zynq_secondary_trampoline_end; |
32 | extern int zynq_cpun_start(u32 address, int cpu); | 32 | extern int zynq_cpun_start(u32 address, int cpu); |
33 | extern struct smp_operations zynq_smp_ops __initdata; | 33 | extern const struct smp_operations zynq_smp_ops; |
34 | #endif | 34 | #endif |
35 | 35 | ||
36 | extern void __iomem *zynq_scu_base; | 36 | extern void __iomem *zynq_scu_base; |
diff --git a/arch/arm/mach-zynq/platsmp.c b/arch/arm/mach-zynq/platsmp.c index f66816c49186..7cd9865bdeb7 100644 --- a/arch/arm/mach-zynq/platsmp.c +++ b/arch/arm/mach-zynq/platsmp.c | |||
@@ -157,7 +157,7 @@ static void zynq_cpu_die(unsigned int cpu) | |||
157 | } | 157 | } |
158 | #endif | 158 | #endif |
159 | 159 | ||
160 | struct smp_operations zynq_smp_ops __initdata = { | 160 | const struct smp_operations zynq_smp_ops __initconst = { |
161 | .smp_init_cpus = zynq_smp_init_cpus, | 161 | .smp_init_cpus = zynq_smp_init_cpus, |
162 | .smp_prepare_cpus = zynq_smp_prepare_cpus, | 162 | .smp_prepare_cpus = zynq_smp_prepare_cpus, |
163 | .smp_boot_secondary = zynq_boot_secondary, | 163 | .smp_boot_secondary = zynq_boot_secondary, |
diff --git a/drivers/clocksource/clksrc-dbx500-prcmu.c b/drivers/clocksource/clksrc-dbx500-prcmu.c index b375106844d8..dfad6eb99662 100644 --- a/drivers/clocksource/clksrc-dbx500-prcmu.c +++ b/drivers/clocksource/clksrc-dbx500-prcmu.c | |||
@@ -12,8 +12,9 @@ | |||
12 | * power domain. We use the Timer 4 for our always-on clock | 12 | * power domain. We use the Timer 4 for our always-on clock |
13 | * source on DB8500. | 13 | * source on DB8500. |
14 | */ | 14 | */ |
15 | #include <linux/of.h> | ||
16 | #include <linux/of_address.h> | ||
15 | #include <linux/clockchips.h> | 17 | #include <linux/clockchips.h> |
16 | #include <linux/clksrc-dbx500-prcmu.h> | ||
17 | #include <linux/sched_clock.h> | 18 | #include <linux/sched_clock.h> |
18 | 19 | ||
19 | #define RATE_32K 32768 | 20 | #define RATE_32K 32768 |
@@ -63,9 +64,9 @@ static u64 notrace dbx500_prcmu_sched_clock_read(void) | |||
63 | 64 | ||
64 | #endif | 65 | #endif |
65 | 66 | ||
66 | void __init clksrc_dbx500_prcmu_init(void __iomem *base) | 67 | static void __init clksrc_dbx500_prcmu_init(struct device_node *node) |
67 | { | 68 | { |
68 | clksrc_dbx500_timer_base = base; | 69 | clksrc_dbx500_timer_base = of_iomap(node, 0); |
69 | 70 | ||
70 | /* | 71 | /* |
71 | * The A9 sub system expects the timer to be configured as | 72 | * The A9 sub system expects the timer to be configured as |
@@ -85,3 +86,5 @@ void __init clksrc_dbx500_prcmu_init(void __iomem *base) | |||
85 | #endif | 86 | #endif |
86 | clocksource_register_hz(&clocksource_dbx500_prcmu, RATE_32K); | 87 | clocksource_register_hz(&clocksource_dbx500_prcmu, RATE_32K); |
87 | } | 88 | } |
89 | CLOCKSOURCE_OF_DECLARE(dbx500_prcmu, "stericsson,db8500-prcmu-timer-4", | ||
90 | clksrc_dbx500_prcmu_init); | ||
diff --git a/include/linux/clksrc-dbx500-prcmu.h b/include/linux/clksrc-dbx500-prcmu.h deleted file mode 100644 index 4fb8119c49e4..000000000000 --- a/include/linux/clksrc-dbx500-prcmu.h +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson SA 2011 | ||
3 | * | ||
4 | * License Terms: GNU General Public License v2 | ||
5 | * Author: Mattias Wallin <mattias.wallin@stericsson.com> | ||
6 | * | ||
7 | */ | ||
8 | #ifndef __CLKSRC_DBX500_PRCMU_H | ||
9 | #define __CLKSRC_DBX500_PRCMU_H | ||
10 | |||
11 | #include <linux/init.h> | ||
12 | #include <linux/io.h> | ||
13 | |||
14 | #ifdef CONFIG_CLKSRC_DBX500_PRCMU | ||
15 | void __init clksrc_dbx500_prcmu_init(void __iomem *base); | ||
16 | #else | ||
17 | static inline void __init clksrc_dbx500_prcmu_init(void __iomem *base) {} | ||
18 | #endif | ||
19 | |||
20 | #endif | ||