diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 34e1569a11ee322a0a020bdfe0c9b801b6b58c12..e803304f4afa8d9aa1bd1fafec2c49b2e47938d3 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -796,7 +796,8 @@ config ARCH_MULTI_CPU_AUTO endmenu config ARCH_VIRT - bool "Dummy Virtual Machine" if ARCH_MULTI_V7 + bool "Dummy Virtual Machine" + depends on ARCH_MULTI_V7 select ARM_AMBA select ARM_GIC select ARM_GIC_V3 diff --git a/arch/arm/common/mcpm_platsmp.c b/arch/arm/common/mcpm_platsmp.c index 2b25b6038f6694287a038f7ba5264e4f380380c9..c773157646d3c89da89ac2f2f8de8b70c1236ba3 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) #endif -static struct smp_operations __initdata mcpm_smp_ops = { +static const struct smp_operations mcpm_smp_ops __initconst = { .smp_boot_secondary = mcpm_boot_secondary, .smp_secondary_init = mcpm_secondary_init, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/include/asm/psci.h b/arch/arm/include/asm/psci.h index 68ee3ce17b820e9c3cc6b77d0645cb68f6276988..97735a8ff4512c42a4b9dbfc8dcbb38bf8482332 100644 --- a/arch/arm/include/asm/psci.h +++ b/arch/arm/include/asm/psci.h @@ -14,7 +14,7 @@ #ifndef __ASM_ARM_PSCI_H #define __ASM_ARM_PSCI_H -extern struct smp_operations psci_smp_ops; +extern const struct smp_operations psci_smp_ops; #ifdef CONFIG_ARM_PSCI bool psci_smp_available(void); diff --git a/arch/arm/kernel/psci_smp.c b/arch/arm/kernel/psci_smp.c index 9d479b2ea40dc016bda2a0d74e194d36859ceb37..cb3fcaeb2233eb1f9bee78bc1bfff9848b1b56dc 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) return (psci_ops.cpu_on != NULL); } -struct smp_operations __initdata psci_smp_ops = { +const struct smp_operations psci_smp_ops __initconst = { .smp_boot_secondary = psci_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU .cpu_disable = psci_cpu_disable, diff --git a/arch/arm/mach-alpine/Kconfig b/arch/arm/mach-alpine/Kconfig index 2c44b930505a27d49bfe743f9ede46e8cbe7dfe5..5c2d54f59f537de391c9425102aca0092d3d3bb1 100644 --- a/arch/arm/mach-alpine/Kconfig +++ b/arch/arm/mach-alpine/Kconfig @@ -1,5 +1,6 @@ config ARCH_ALPINE - bool "Annapurna Labs Alpine platform" if ARCH_MULTI_V7 + bool "Annapurna Labs Alpine platform" + depends on ARCH_MULTI_V7 select ARM_AMBA select ARM_GIC select GENERIC_IRQ_CHIP diff --git a/arch/arm/mach-alpine/platsmp.c b/arch/arm/mach-alpine/platsmp.c index f78429f48bd6527ce8d833dc2707e55c57c71be0..dd77ea25e7ca9f6ff0cdb215fd5d190fbcfa6d11 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) alpine_cpu_pm_init(); } -static struct smp_operations alpine_smp_ops __initdata = { +static const struct smp_operations alpine_smp_ops __initconst = { .smp_prepare_cpus = alpine_smp_prepare_cpus, .smp_boot_secondary = alpine_boot_secondary, }; diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index 92673006e55c410ad27f60675c8e74bbf1433861..8649f033e2bfb6bef1b7abac466853830cec67f6 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig @@ -9,7 +9,8 @@ menuconfig ARCH_AT91 if ARCH_AT91 config SOC_SAMA5D2 - bool "SAMA5D2 family" if ARCH_MULTI_V7 + bool "SAMA5D2 family" + depends on ARCH_MULTI_V7 select SOC_SAMA5 select CACHE_L2X0 select HAVE_FB_ATMEL @@ -21,7 +22,8 @@ config SOC_SAMA5D2 Select this if ou are using one of Atmel's SAMA5D2 family SoC. config SOC_SAMA5D3 - bool "SAMA5D3 family" if ARCH_MULTI_V7 + bool "SAMA5D3 family" + depends on ARCH_MULTI_V7 select SOC_SAMA5 select HAVE_FB_ATMEL select HAVE_AT91_UTMI @@ -32,7 +34,8 @@ config SOC_SAMA5D3 This support covers SAMA5D31, SAMA5D33, SAMA5D34, SAMA5D35, SAMA5D36. config SOC_SAMA5D4 - bool "SAMA5D4 family" if ARCH_MULTI_V7 + bool "SAMA5D4 family" + depends on ARCH_MULTI_V7 select SOC_SAMA5 select CACHE_L2X0 select HAVE_FB_ATMEL @@ -44,7 +47,8 @@ config SOC_SAMA5D4 Select this if you are using one of Atmel's SAMA5D4 family SoC. config SOC_AT91RM9200 - bool "AT91RM9200" if ARCH_MULTI_V4T + bool "AT91RM9200" + depends on ARCH_MULTI_V4T select ATMEL_AIC_IRQ select ATMEL_ST select CPU_ARM920T @@ -56,7 +60,8 @@ config SOC_AT91RM9200 Select this if you are using Atmel's AT91RM9200 SoC. config SOC_AT91SAM9 - bool "AT91SAM9" if ARCH_MULTI_V5 + bool "AT91SAM9" + depends on ARCH_MULTI_V5 select ATMEL_AIC_IRQ select ATMEL_SDRAMC select CPU_ARM926T diff --git a/arch/arm/mach-axxia/Kconfig b/arch/arm/mach-axxia/Kconfig index 8be7e0ae1922998ee7871e668662a9f495b8e239..6c6d5e76565b71afc0d7b7a0e21e86da2188fec1 100644 --- a/arch/arm/mach-axxia/Kconfig +++ b/arch/arm/mach-axxia/Kconfig @@ -1,5 +1,6 @@ config ARCH_AXXIA - bool "LSI Axxia platforms" if (ARCH_MULTI_V7 && ARM_LPAE) + bool "LSI Axxia platforms" + depends on ARCH_MULTI_V7 && ARM_LPAE select ARCH_DMA_ADDR_T_64BIT select ARM_AMBA select ARM_GIC diff --git a/arch/arm/mach-axxia/platsmp.c b/arch/arm/mach-axxia/platsmp.c index 959d4df3d2b6c7eee03c28ef2934a943e227e164..ffbd71d45008a00639d8a496605150a3755caac0 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) } } -static struct smp_operations axxia_smp_ops __initdata = { +static const struct smp_operations axxia_smp_ops __initconst = { .smp_prepare_cpus = axxia_smp_prepare_cpus, .smp_boot_secondary = axxia_boot_secondary, }; diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig index 0207736674d6bbc2099d367e6e658e1bb1fcdee9..c9723d82cb301c26f4e66dfbfe36adeaac2b3177 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_BCM - bool "Broadcom SoC Support" if ARCH_MULTI_V6_V7 + bool "Broadcom SoC Support" + depends on ARCH_MULTI_V6_V7 help This enables support for Broadcom ARM based SoC chips @@ -27,7 +28,8 @@ config ARCH_BCM_IPROC Currently supported SoCs are Cygnus. config ARCH_BCM_CYGNUS - bool "Broadcom Cygnus Support" if ARCH_MULTI_V7 + bool "Broadcom Cygnus Support" + depends on ARCH_MULTI_V7 select ARCH_BCM_IPROC help Enable support for the Cygnus family, @@ -36,7 +38,8 @@ config ARCH_BCM_CYGNUS BCM58300, BCM58302, BCM58303, BCM58305. config ARCH_BCM_NSP - bool "Broadcom Northstar Plus SoC Support" if ARCH_MULTI_V7 + bool "Broadcom Northstar Plus SoC Support" + depends on ARCH_MULTI_V7 select ARCH_BCM_IPROC select ARM_ERRATA_754322 select ARM_ERRATA_775420 @@ -52,7 +55,8 @@ config ARCH_BCM_NSP NAND flash, SATA and several other IO controllers. config ARCH_BCM_5301X - bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7 + bool "Broadcom BCM470X / BCM5301X ARM SoC" + depends on ARCH_MULTI_V7 select ARCH_BCM_IPROC select ARM_ERRATA_754322 select ARM_ERRATA_775420 @@ -89,7 +93,8 @@ config ARCH_BCM_MOBILE This enables support for systems based on Broadcom mobile SoCs. config ARCH_BCM_281XX - bool "Broadcom BCM281XX SoC family" if ARCH_MULTI_V7 + bool "Broadcom BCM281XX SoC family" + depends on ARCH_MULTI_V7 select ARCH_BCM_MOBILE select HAVE_SMP help @@ -98,7 +103,8 @@ config ARCH_BCM_281XX variants. config ARCH_BCM_21664 - bool "Broadcom BCM21664 SoC family" if ARCH_MULTI_V7 + bool "Broadcom BCM21664 SoC family" + depends on ARCH_MULTI_V7 select ARCH_BCM_MOBILE select HAVE_SMP help @@ -129,7 +135,8 @@ config ARCH_BCM_MOBILE_SMP comment "Other Architectures" config ARCH_BCM2835 - bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 + bool "Broadcom BCM2835 family" + depends on ARCH_MULTI_V6 select ARCH_REQUIRE_GPIOLIB select ARM_AMBA select ARM_ERRATA_411920 @@ -142,7 +149,8 @@ config ARCH_BCM2835 used in the Raspberry Pi and Roku 2 devices. config ARCH_BCM_63XX - bool "Broadcom BCM63xx DSL SoC" if ARCH_MULTI_V7 + bool "Broadcom BCM63xx DSL SoC" + depends on ARCH_MULTI_V7 depends on MMU select ARM_ERRATA_754322 select ARM_ERRATA_764369 if SMP @@ -159,7 +167,8 @@ config ARCH_BCM_63XX the BCM63138 variant. config ARCH_BRCMSTB - bool "Broadcom BCM7XXX based boards" if ARCH_MULTI_V7 + bool "Broadcom BCM7XXX based boards" + depends on ARCH_MULTI_V7 select ARM_GIC select ARM_ERRATA_798181 if SMP select HAVE_ARM_ARCH_TIMER diff --git a/arch/arm/mach-bcm/bcm63xx_smp.c b/arch/arm/mach-bcm/bcm63xx_smp.c index 19be90421f4d9be0b592ac44151474686f24cf84..9b6727ed68cd711632f6dd9fb53d9519f0d02683 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) } } -struct smp_operations bcm63138_smp_ops __initdata = { +static const struct smp_operations bcm63138_smp_ops __initconst = { .smp_prepare_cpus = bcm63138_smp_prepare_cpus, .smp_boot_secondary = bcm63138_smp_boot_secondary, }; diff --git a/arch/arm/mach-bcm/platsmp-brcmstb.c b/arch/arm/mach-bcm/platsmp-brcmstb.c index 44d6bddf7a4e788044da329ce79f4a66ae6b07ed..40dc8448445e6e2741c8c9a91ac5cd7768809bd2 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) return 0; } -static struct smp_operations brcmstb_smp_ops __initdata = { +static const struct smp_operations brcmstb_smp_ops __initconst = { .smp_prepare_cpus = brcmstb_cpu_ctrl_setup, .smp_boot_secondary = brcmstb_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/mach-bcm/platsmp.c b/arch/arm/mach-bcm/platsmp.c index ea4201e6d0c956cf14eb973e98fadcd97281ecdf..575defcc53f932f9af463805dc88cf327802df2e 100644 --- a/arch/arm/mach-bcm/platsmp.c +++ b/arch/arm/mach-bcm/platsmp.c @@ -276,7 +276,7 @@ static int nsp_boot_secondary(unsigned int cpu, struct task_struct *idle) return ret; } -static struct smp_operations bcm_smp_ops __initdata = { +static const struct smp_operations bcm_smp_ops __initconst = { .smp_prepare_cpus = bcm_smp_prepare_cpus, .smp_boot_secondary = kona_boot_secondary, }; diff --git a/arch/arm/mach-berlin/Kconfig b/arch/arm/mach-berlin/Kconfig index 742d53a5f7f94fc8ee58ed3fdd69a2e4c49f75b6..ffbfa0bd091b0022a22ba1d71a8d5f3f1605e85b 100644 --- a/arch/arm/mach-berlin/Kconfig +++ b/arch/arm/mach-berlin/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_BERLIN - bool "Marvell Berlin SoCs" if ARCH_MULTI_V7 + bool "Marvell Berlin SoCs" + depends on ARCH_MULTI_V7 select ARCH_HAS_RESET_CONTROLLER select ARCH_REQUIRE_GPIOLIB select ARM_GIC diff --git a/arch/arm/mach-berlin/platsmp.c b/arch/arm/mach-berlin/platsmp.c index 405cd37e4fba59d1010b14e1e1e11db069ef75b8..93f90688db18301b081d045a1089fe14e63ac2c1 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) } #endif -static struct smp_operations berlin_smp_ops __initdata = { +static const struct smp_operations berlin_smp_ops __initconst = { .smp_prepare_cpus = berlin_smp_prepare_cpus, .smp_boot_secondary = berlin_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/mach-cns3xxx/Kconfig b/arch/arm/mach-cns3xxx/Kconfig index 3c22a1990ecd0ff2830dcb8bdf6b33a88685bda7..eb14a0ff0093848faee161b9f7ae5749e1b3ae86 100644 --- a/arch/arm/mach-cns3xxx/Kconfig +++ b/arch/arm/mach-cns3xxx/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_CNS3XXX - bool "Cavium Networks CNS3XXX family" if ARCH_MULTI_V6 + bool "Cavium Networks CNS3XXX family" + depends on ARCH_MULTI_V6 select ARM_GIC select PCI_DOMAINS if PCI help diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index d279edf9b10d574d1e1efceed958fc5fe784c6c7..ed02905eb67ad7f3ad4a50e26e023103d4ede8cb 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig @@ -8,7 +8,8 @@ # Configuration options for the EXYNOS4 menuconfig ARCH_EXYNOS - bool "Samsung EXYNOS" if ARCH_MULTI_V7 + bool "Samsung EXYNOS" + depends on ARCH_MULTI_V7 select ARCH_HAS_BANDGAP select ARCH_HAS_HOLES_MEMORYMODEL select ARCH_REQUIRE_GPIOLIB diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h index 153492513c409acec9493c015d34009b67cda6a9..e349a038976d6172079af5433584803edbb3498b 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) {} extern void exynos_cpu_resume(void); extern void exynos_cpu_resume_ns(void); -extern struct smp_operations exynos_smp_ops; +extern const struct smp_operations exynos_smp_ops; extern void exynos_cpu_power_down(int cpu); 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 98a2c0cbb833490077675200d3283f2084233f66..5bd9559786ba77d2eade9c29ab1983e8746f4e54 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) } #endif /* CONFIG_HOTPLUG_CPU */ -struct smp_operations exynos_smp_ops __initdata = { +const struct smp_operations exynos_smp_ops __initconst = { .smp_init_cpus = exynos_smp_init_cpus, .smp_prepare_cpus = exynos_smp_prepare_cpus, .smp_secondary_init = exynos_secondary_init, diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig index 31aa866c33171aa107075e39d03551824a7fb51a..81110ec34226232ce1c33921804019925d9478d4 100644 --- a/arch/arm/mach-highbank/Kconfig +++ b/arch/arm/mach-highbank/Kconfig @@ -1,5 +1,6 @@ config ARCH_HIGHBANK - bool "Calxeda ECX-1000/2000 (Highbank/Midway)" if ARCH_MULTI_V7 + bool "Calxeda ECX-1000/2000 (Highbank/Midway)" + depends on ARCH_MULTI_V7 select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE select ARCH_HAS_HOLES_MEMORYMODEL select ARCH_SUPPORTS_BIG_ENDIAN diff --git a/arch/arm/mach-hisi/Kconfig b/arch/arm/mach-hisi/Kconfig index 83061ad0e28232cfe227d21ccf3c8905f2b909b3..a3b091a4d344a43d2a903b5ffaaa672bf742db4a 100644 --- a/arch/arm/mach-hisi/Kconfig +++ b/arch/arm/mach-hisi/Kconfig @@ -13,7 +13,8 @@ if ARCH_HISI menu "Hisilicon platform type" config ARCH_HI3xxx - bool "Hisilicon Hi36xx family" if ARCH_MULTI_V7 + bool "Hisilicon Hi36xx family" + depends on ARCH_MULTI_V7 select CACHE_L2X0 select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP @@ -23,7 +24,8 @@ config ARCH_HI3xxx Support for Hisilicon Hi36xx SoC family config ARCH_HIP01 - bool "Hisilicon HIP01 family" if ARCH_MULTI_V7 + bool "Hisilicon HIP01 family" + depends on ARCH_MULTI_V7 select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP select ARM_GLOBAL_TIMER @@ -31,7 +33,8 @@ config ARCH_HIP01 Support for Hisilicon HIP01 SoC family config ARCH_HIP04 - bool "Hisilicon HiP04 Cortex A15 family" if ARCH_MULTI_V7 + bool "Hisilicon HiP04 Cortex A15 family" + depends on ARCH_MULTI_V7 select ARM_ERRATA_798181 if SMP select HAVE_ARM_ARCH_TIMER select MCPM if SMP @@ -40,7 +43,8 @@ config ARCH_HIP04 Support for Hisilicon HiP04 SoC family config ARCH_HIX5HD2 - bool "Hisilicon X5HD2 family" if ARCH_MULTI_V7 + bool "Hisilicon X5HD2 family" + depends on ARCH_MULTI_V7 select CACHE_L2X0 select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP diff --git a/arch/arm/mach-hisi/core.h b/arch/arm/mach-hisi/core.h index c7648ef1825c70283b3a8d1e123176cb71dafd22..e883583a23f175550529c26fd8c4b9d8ec7c47e1 100644 --- a/arch/arm/mach-hisi/core.h +++ b/arch/arm/mach-hisi/core.h @@ -6,17 +6,14 @@ extern void hi3xxx_set_cpu_jump(int cpu, void *jump_addr); extern int hi3xxx_get_cpu_jump(int cpu); extern void secondary_startup(void); -extern struct smp_operations hi3xxx_smp_ops; extern void hi3xxx_cpu_die(unsigned int cpu); extern int hi3xxx_cpu_kill(unsigned int cpu); extern void hi3xxx_set_cpu(int cpu, bool enable); -extern struct smp_operations hix5hd2_smp_ops; extern void hix5hd2_set_cpu(int cpu, bool enable); extern void hix5hd2_cpu_die(unsigned int cpu); -extern struct smp_operations hip01_smp_ops; extern void hip01_set_cpu(int cpu, bool enable); extern void hip01_cpu_die(unsigned int cpu); #endif diff --git a/arch/arm/mach-hisi/platmcpm.c b/arch/arm/mach-hisi/platmcpm.c index b5f8f5ffda7948645d18856d523108b7653ad0f2..4b653a8cb75ce82f2a5ff163bec263591c1a2983 100644 --- a/arch/arm/mach-hisi/platmcpm.c +++ b/arch/arm/mach-hisi/platmcpm.c @@ -239,7 +239,7 @@ static int hip04_cpu_kill(unsigned int l_cpu) } #endif -static struct smp_operations __initdata hip04_smp_ops = { +static const struct smp_operations hip04_smp_ops __initconst = { .smp_boot_secondary = hip04_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU .cpu_die = hip04_cpu_die, diff --git a/arch/arm/mach-hisi/platsmp.c b/arch/arm/mach-hisi/platsmp.c index 51744127db666baee8d140876586bfd5990fb504..47ed32cf57ccac6c3c4aa5ab66df4967d335274b 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) return 0; } -struct smp_operations hi3xxx_smp_ops __initdata = { +static const struct smp_operations hi3xxx_smp_ops __initconst = { .smp_prepare_cpus = hi3xxx_smp_prepare_cpus, .smp_boot_secondary = hi3xxx_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU @@ -126,7 +126,7 @@ static int hix5hd2_boot_secondary(unsigned int cpu, struct task_struct *idle) } -struct smp_operations hix5hd2_smp_ops __initdata = { +static const struct smp_operations hix5hd2_smp_ops __initconst = { .smp_prepare_cpus = hisi_common_smp_prepare_cpus, .smp_boot_secondary = hix5hd2_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU @@ -176,7 +176,7 @@ static int hip01_boot_secondary(unsigned int cpu, struct task_struct *idle) return 0; } -struct smp_operations hip01_smp_ops __initdata = { +static const struct smp_operations hip01_smp_ops __initconst = { .smp_prepare_cpus = hisi_common_smp_prepare_cpus, .smp_boot_secondary = hip01_boot_secondary, }; diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 8ceda2844c4ffee32405d85a48c8bdcd86272591..0ac180f7b3304a92e607502ca37a6e1104de4996 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_MXC - bool "Freescale i.MX family" if ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M + bool "Freescale i.MX family" + depends on ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M select ARCH_REQUIRE_GPIOLIB select ARM_CPU_SUSPEND if PM select CLKSRC_IMX_GPT @@ -596,7 +597,8 @@ choice default VF_USE_ARM_GLOBAL_TIMER config VF_USE_ARM_GLOBAL_TIMER - bool "Use ARM Global Timer" if ARCH_MULTI_V7 + bool "Use ARM Global Timer" + depends on ARCH_MULTI_V7 select ARM_GLOBAL_TIMER select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK help diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index e2d53839fceb632214a9dbe8deade9a9ed618e08..32b83f09da18bd9e136e6db58704d526f5b105b1 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h @@ -153,7 +153,7 @@ void imx_init_l2cache(void); static inline void imx_init_l2cache(void) {} #endif -extern struct smp_operations imx_smp_ops; -extern struct smp_operations ls1021a_smp_ops; +extern const struct smp_operations imx_smp_ops; +extern const struct smp_operations ls1021a_smp_ops; #endif diff --git a/arch/arm/mach-imx/platsmp.c b/arch/arm/mach-imx/platsmp.c index 7f270015fe5803dcf5e66e6f6e905abdfa3d876b..711dbbd5baddaac8953d2d90ac1232776efd9f16 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) sync_cache_w(&g_diag_reg); } -struct smp_operations imx_smp_ops __initdata = { +const struct smp_operations imx_smp_ops __initconst = { .smp_init_cpus = imx_smp_init_cpus, .smp_prepare_cpus = imx_smp_prepare_cpus, .smp_boot_secondary = imx_boot_secondary, @@ -123,7 +123,7 @@ static void __init ls1021a_smp_prepare_cpus(unsigned int max_cpus) iounmap(dcfg_base); } -struct smp_operations ls1021a_smp_ops __initdata = { +const struct smp_operations ls1021a_smp_ops __initconst = { .smp_prepare_cpus = ls1021a_smp_prepare_cpus, .smp_boot_secondary = ls1021a_boot_secondary, }; diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig index 02d083489a2641ac5f9d71ca390e53a4965c1570..2fa9d11c9d141625f088332bf89fecf2d645f1de 100644 --- a/arch/arm/mach-integrator/Kconfig +++ b/arch/arm/mach-integrator/Kconfig @@ -1,5 +1,6 @@ config ARCH_INTEGRATOR - bool "ARM Ltd. Integrator family" if (ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6) + bool "ARM Ltd. Integrator family" + depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6 select ARM_AMBA select ARM_PATCH_PHYS_VIRT if MMU select AUTO_ZRELADDR diff --git a/arch/arm/mach-keystone/keystone.h b/arch/arm/mach-keystone/keystone.h index cd04a1c14de8034b8c27dc5c5f9dbf7f0f31b64a..33eaa037af5aac2ab5c6c0c150cdd6d8098e9263 100644 --- a/arch/arm/mach-keystone/keystone.h +++ b/arch/arm/mach-keystone/keystone.h @@ -15,7 +15,7 @@ #ifndef __ASSEMBLER__ -extern struct smp_operations keystone_smp_ops; +extern const struct smp_operations keystone_smp_ops; extern void secondary_startup(void); extern u32 keystone_cpu_smc(u32 command, u32 cpu, u32 addr); extern int keystone_pm_runtime_init(void); diff --git a/arch/arm/mach-keystone/platsmp.c b/arch/arm/mach-keystone/platsmp.c index 4bbb18463bfdf0d8a1922471eaeccd11d96c5fed..5665276972ecf945dfc0fa0c42f9317a8bcab818 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, return error; } -struct smp_operations keystone_smp_ops __initdata = { +const struct smp_operations keystone_smp_ops __initconst = { .smp_boot_secondary = keystone_smp_boot_secondary, }; diff --git a/arch/arm/mach-mediatek/Kconfig b/arch/arm/mach-mediatek/Kconfig index aeece17e5ceaa4da09276c38cab1cf2ce24d9311..0abcc51afff5303bce4cd054251c09be2b10a4ae 100644 --- a/arch/arm/mach-mediatek/Kconfig +++ b/arch/arm/mach-mediatek/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_MEDIATEK - bool "Mediatek MT65xx & MT81xx SoC" if ARCH_MULTI_V7 + bool "Mediatek MT65xx & MT81xx SoC" + depends on ARCH_MULTI_V7 select ARM_GIC select PINCTRL select MTK_TIMER diff --git a/arch/arm/mach-mediatek/platsmp.c b/arch/arm/mach-mediatek/platsmp.c index 8141f3f8afed160fb3a6216eb5726c91a2688a2e..a1b07eeaaf5b6a42bceac6c3dd62425002c9c95d 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) __mtk_smp_prepare_cpus(max_cpus, 0); } -static struct smp_operations mt81xx_tz_smp_ops __initdata = { +static const struct smp_operations mt81xx_tz_smp_ops __initconst = { .smp_prepare_cpus = mtk_tz_smp_prepare_cpus, .smp_boot_secondary = mtk_boot_secondary, }; CPU_METHOD_OF_DECLARE(mt81xx_tz_smp, "mediatek,mt81xx-tz-smp", &mt81xx_tz_smp_ops); -static struct smp_operations mt6589_smp_ops __initdata = { +static const struct smp_operations mt6589_smp_ops __initconst = { .smp_prepare_cpus = mtk_smp_prepare_cpus, .smp_boot_secondary = mtk_boot_secondary, }; diff --git a/arch/arm/mach-meson/Kconfig b/arch/arm/mach-meson/Kconfig index 5d56f86ae1a4b1c96871e05c69eafd5bac5f7b26..31bdd91098b637fa4f9314f649ada051e89a7f95 100644 --- a/arch/arm/mach-meson/Kconfig +++ b/arch/arm/mach-meson/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_MESON - bool "Amlogic Meson SoCs" if ARCH_MULTI_V7 + bool "Amlogic Meson SoCs" + depends on ARCH_MULTI_V7 select ARCH_REQUIRE_GPIOLIB select GENERIC_IRQ_CHIP select ARM_GIC diff --git a/arch/arm/mach-moxart/Kconfig b/arch/arm/mach-moxart/Kconfig index f49328c39befe73f91d20380272f65bff9bae4f2..180d9d2167195936ccb2062b1e8035a8adefef78 100644 --- a/arch/arm/mach-moxart/Kconfig +++ b/arch/arm/mach-moxart/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_MOXART - bool "MOXA ART SoC" if ARCH_MULTI_V4 + bool "MOXA ART SoC" + depends on ARCH_MULTI_V4 select CPU_FA526 select ARM_DMA_MEM_BUFFERABLE select CLKSRC_MMIO diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index e20fc4178b15b029f098690f0bc9420be170c141..64e3d2ce9a076650b7eb3056cd4194419ae7d3dd 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_MVEBU - bool "Marvell Engineering Business Unit (MVEBU) SoCs" if (ARCH_MULTI_V7 || ARCH_MULTI_V5) + bool "Marvell Engineering Business Unit (MVEBU) SoCs" + depends on ARCH_MULTI_V7 || ARCH_MULTI_V5 select ARCH_SUPPORTS_BIG_ENDIAN select CLKSRC_MMIO select GENERIC_IRQ_CHIP @@ -25,7 +26,8 @@ config MACH_MVEBU_V7 select MACH_MVEBU_ANY config MACH_ARMADA_370 - bool "Marvell Armada 370 boards" if ARCH_MULTI_V7 + bool "Marvell Armada 370 boards" + depends on ARCH_MULTI_V7 select ARMADA_370_CLK select CPU_PJ4B select MACH_MVEBU_V7 @@ -35,7 +37,8 @@ config MACH_ARMADA_370 on the Marvell Armada 370 SoC with device tree. config MACH_ARMADA_375 - bool "Marvell Armada 375 boards" if ARCH_MULTI_V7 + bool "Marvell Armada 375 boards" + depends on ARCH_MULTI_V7 select ARM_ERRATA_720789 select ARM_ERRATA_753970 select ARM_GIC @@ -50,7 +53,8 @@ config MACH_ARMADA_375 on the Marvell Armada 375 SoC with device tree. config MACH_ARMADA_38X - bool "Marvell Armada 380/385 boards" if ARCH_MULTI_V7 + bool "Marvell Armada 380/385 boards" + depends on ARCH_MULTI_V7 select ARM_ERRATA_720789 select ARM_ERRATA_753970 select ARM_GIC @@ -65,7 +69,8 @@ config MACH_ARMADA_38X on the Marvell Armada 380/385 SoC with device tree. config MACH_ARMADA_39X - bool "Marvell Armada 39x boards" if ARCH_MULTI_V7 + bool "Marvell Armada 39x boards" + depends on ARCH_MULTI_V7 select ARM_GIC select ARMADA_39X_CLK select CACHE_L2X0 @@ -79,7 +84,8 @@ config MACH_ARMADA_39X on the Marvell Armada 39x SoC with device tree. config MACH_ARMADA_XP - bool "Marvell Armada XP boards" if ARCH_MULTI_V7 + bool "Marvell Armada XP boards" + depends on ARCH_MULTI_V7 select ARMADA_XP_CLK select CPU_PJ4B select MACH_MVEBU_V7 @@ -89,7 +95,8 @@ config MACH_ARMADA_XP on the Marvell Armada XP SoC with device tree. config MACH_DOVE - bool "Marvell Dove boards" if ARCH_MULTI_V7 + bool "Marvell Dove boards" + depends on ARCH_MULTI_V7 select CACHE_L2X0 select CPU_PJ4 select DOVE_CLK @@ -103,7 +110,8 @@ config MACH_DOVE Marvell Dove using flattened device tree. config MACH_KIRKWOOD - bool "Marvell Kirkwood boards" if ARCH_MULTI_V5 + bool "Marvell Kirkwood boards" + depends on ARCH_MULTI_V5 select ARCH_REQUIRE_GPIOLIB select CPU_FEROCEON select KIRKWOOD_CLK diff --git a/arch/arm/mach-mvebu/armada-370-xp.h b/arch/arm/mach-mvebu/armada-370-xp.h index c55bbf81de0ec5a09f4c53e25ff5b3f12b8fabbd..09413b67840996f05c78fb82cb89d45247475835 100644 --- a/arch/arm/mach-mvebu/armada-370-xp.h +++ b/arch/arm/mach-mvebu/armada-370-xp.h @@ -17,7 +17,7 @@ #ifdef CONFIG_SMP void armada_xp_secondary_startup(void); -extern struct smp_operations armada_xp_smp_ops; +extern const struct smp_operations armada_xp_smp_ops; #endif #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 3d5000481c112dda6c0ee32a0ce036f3b08c9b53..d715dec1c197df51f8955a112e0bdf9740866f93 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) } #endif -static struct smp_operations mvebu_cortex_a9_smp_ops __initdata = { +static const struct smp_operations mvebu_cortex_a9_smp_ops __initconst = { .smp_boot_secondary = mvebu_cortex_a9_boot_secondary, }; -static struct smp_operations armada_38x_smp_ops __initdata = { +static const struct smp_operations armada_38x_smp_ops __initconst = { .smp_boot_secondary = mvebu_cortex_a9_boot_secondary, .smp_secondary_init = armada_38x_secondary_init, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c index 58cc8c1575eb7e5f8139b69dd7c658f3d50e2efd..f9597b701028a107d6acc11ce481fcaddc5e0411 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) } #endif -struct smp_operations armada_xp_smp_ops __initdata = { +const struct smp_operations armada_xp_smp_ops __initconst = { .smp_init_cpus = armada_xp_smp_init_cpus, .smp_prepare_cpus = armada_xp_smp_prepare_cpus, .smp_boot_secondary = armada_xp_boot_secondary, diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index 0cba9575d2cac3c0a658d0b6fc40edbd4ea50dcd..f7666b9f3b21c2256aafeedb932eee6027b90700 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); extern void omap4_cpu_die(unsigned int cpu); -extern struct smp_operations omap4_smp_ops; +extern const struct smp_operations omap4_smp_ops; extern void omap5_secondary_startup(void); 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 79e1f876d1c9b9f28dc862e013e7bc657153fd4f..c625cc10d9f98aefc844329c4e730f0682358038 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) } -struct smp_operations omap4_smp_ops __initdata = { +const struct smp_operations omap4_smp_ops __initconst = { .smp_init_cpus = omap4_smp_init_cpus, .smp_prepare_cpus = omap4_smp_prepare_cpus, .smp_secondary_init = omap4_secondary_init, diff --git a/arch/arm/mach-picoxcell/Kconfig b/arch/arm/mach-picoxcell/Kconfig index 62240f69b4ee8b1e62c0a94cc936e6fdcb52bd5b..aef92ba0eacd9bf5e04611814739b4032bedf2ab 100644 --- a/arch/arm/mach-picoxcell/Kconfig +++ b/arch/arm/mach-picoxcell/Kconfig @@ -1,5 +1,6 @@ config ARCH_PICOXCELL - bool "Picochip PicoXcell" if ARCH_MULTI_V6 + bool "Picochip PicoXcell" + depends on ARCH_MULTI_V6 select ARCH_REQUIRE_GPIOLIB select ARM_VIC select DW_APB_TIMER_OF diff --git a/arch/arm/mach-prima2/Kconfig b/arch/arm/mach-prima2/Kconfig index 9ab8932403e5dede46f37dabfd5d8658b01a405e..f998eb1c698ec69bb18735c60ce4660f680db272 100644 --- a/arch/arm/mach-prima2/Kconfig +++ b/arch/arm/mach-prima2/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_SIRF - bool "CSR SiRF" if ARCH_MULTI_V7 + bool "CSR SiRF" + depends on ARCH_MULTI_V7 select ARCH_HAS_RESET_CONTROLLER select ARCH_REQUIRE_GPIOLIB select GENERIC_IRQ_CHIP diff --git a/arch/arm/mach-prima2/common.h b/arch/arm/mach-prima2/common.h index 3916a6665100efb798655174a9b0d1bf3edf4e0f..6d77b622d168502978369df3613abf0763e0563f 100644 --- a/arch/arm/mach-prima2/common.h +++ b/arch/arm/mach-prima2/common.h @@ -15,7 +15,7 @@ #include #include -extern struct smp_operations sirfsoc_smp_ops; +extern const struct smp_operations sirfsoc_smp_ops; extern void sirfsoc_secondary_startup(void); extern void sirfsoc_cpu_die(unsigned int cpu); diff --git a/arch/arm/mach-prima2/platsmp.c b/arch/arm/mach-prima2/platsmp.c index e46c91094dde3c66065b4d7e040ef7a057d9d04a..0875b99add1870dab41b3b6b029a9a1ef61f708d 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) return pen_release != -1 ? -ENOSYS : 0; } -struct smp_operations sirfsoc_smp_ops __initdata = { +const struct smp_operations sirfsoc_smp_ops __initconst = { .smp_secondary_init = sirfsoc_secondary_init, .smp_boot_secondary = sirfsoc_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/mach-qcom/Kconfig b/arch/arm/mach-qcom/Kconfig index 2256cd1e25d156cfd7e40d6c86cd8a9a1b104997..73494500b51cbb79b2a1aa025f5ad54f5cf60276 100644 --- a/arch/arm/mach-qcom/Kconfig +++ b/arch/arm/mach-qcom/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_QCOM - bool "Qualcomm Support" if ARCH_MULTI_V7 + bool "Qualcomm Support" + depends on ARCH_MULTI_V7 select ARCH_SUPPORTS_BIG_ENDIAN select ARM_GIC select ARM_AMBA diff --git a/arch/arm/mach-qcom/platsmp.c b/arch/arm/mach-qcom/platsmp.c index 9b00123a315d253daa5183058f919f7fff98e41c..5494c9e0c909b549ec696a9482852c339a4039a9 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) } } -static struct smp_operations smp_msm8660_ops __initdata = { +static const struct smp_operations smp_msm8660_ops __initconst = { .smp_prepare_cpus = qcom_smp_prepare_cpus, .smp_secondary_init = qcom_secondary_init, .smp_boot_secondary = msm8660_boot_secondary, @@ -342,7 +342,7 @@ static struct smp_operations smp_msm8660_ops __initdata = { }; CPU_METHOD_OF_DECLARE(qcom_smp, "qcom,gcc-msm8660", &smp_msm8660_ops); -static struct smp_operations qcom_smp_kpssv1_ops __initdata = { +static const struct smp_operations qcom_smp_kpssv1_ops __initconst = { .smp_prepare_cpus = qcom_smp_prepare_cpus, .smp_secondary_init = qcom_secondary_init, .smp_boot_secondary = kpssv1_boot_secondary, @@ -352,7 +352,7 @@ static struct smp_operations qcom_smp_kpssv1_ops __initdata = { }; CPU_METHOD_OF_DECLARE(qcom_smp_kpssv1, "qcom,kpss-acc-v1", &qcom_smp_kpssv1_ops); -static struct smp_operations qcom_smp_kpssv2_ops __initdata = { +static const struct smp_operations qcom_smp_kpssv2_ops __initconst = { .smp_prepare_cpus = qcom_smp_prepare_cpus, .smp_secondary_init = qcom_secondary_init, .smp_boot_secondary = kpssv2_boot_secondary, diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h index 868ece22197855a47a245748fead72543f481ee3..670ee0eb844a8844e76ffc33d0264d7bfa029cf1 100644 --- a/arch/arm/mach-realview/core.h +++ b/arch/arm/mach-realview/core.h @@ -54,7 +54,7 @@ extern int realview_usb_register(struct resource *res); extern void realview_init_early(void); extern void realview_fixup(struct tag *tags, char **from); -extern struct smp_operations realview_smp_ops; +extern const struct smp_operations realview_smp_ops; extern void realview_cpu_die(unsigned int cpu); #endif diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c index 98e3052b793322134509ccea9978e31f94ab62b7..dc2902911dce9b7d01a03d1b1b746757185ee2b4 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) __io_address(REALVIEW_SYS_FLAGSSET)); } -struct smp_operations realview_smp_ops __initdata = { +const struct smp_operations realview_smp_ops __initconst = { .smp_init_cpus = realview_smp_init_cpus, .smp_prepare_cpus = realview_smp_prepare_cpus, .smp_secondary_init = versatile_secondary_init, diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig index ae4eb7cc4bcc5a1c5dffa8a26f98e5c58b6cf3f8..cef42fd886d1064d514b20482dce7e41a1a0aaeb 100644 --- a/arch/arm/mach-rockchip/Kconfig +++ b/arch/arm/mach-rockchip/Kconfig @@ -1,5 +1,6 @@ config ARCH_ROCKCHIP - bool "Rockchip RK2928 and RK3xxx SOCs" if ARCH_MULTI_V7 + bool "Rockchip RK2928 and RK3xxx SOCs" + depends on ARCH_MULTI_V7 select PINCTRL select PINCTRL_ROCKCHIP select ARCH_HAS_RESET_CONTROLLER diff --git a/arch/arm/mach-rockchip/platsmp.c b/arch/arm/mach-rockchip/platsmp.c index 9a5b2e0502f360d51c4a7e93456461f4314bedad..d42a07e334822bfabbda05e3fa8f2dbe0c3a2093 100644 --- a/arch/arm/mach-rockchip/platsmp.c +++ b/arch/arm/mach-rockchip/platsmp.c @@ -360,7 +360,7 @@ static const struct smp_operations rk3036_smp_ops __initconst = { #endif }; -static struct smp_operations rockchip_smp_ops __initdata = { +static const struct smp_operations rockchip_smp_ops __initconst = { .smp_prepare_cpus = rockchip_smp_prepare_cpus, .smp_boot_secondary = rockchip_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig index 330bfc8fcd52d2c74e796e4bdb1d5d2d90a884e0..13bc9820ff226cd89d5ff6c75b72220ea6c74adc 100644 --- a/arch/arm/mach-s5pv210/Kconfig +++ b/arch/arm/mach-s5pv210/Kconfig @@ -8,7 +8,8 @@ # Configuration options for the S5PV210/S5PC110 config ARCH_S5PV210 - bool "Samsung S5PV210/S5PC110" if ARCH_MULTI_V7 + bool "Samsung S5PV210/S5PC110" + depends on ARCH_MULTI_V7 select ARCH_HAS_HOLES_MEMORYMODEL select ARCH_REQUIRE_GPIOLIB select ARM_VIC diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 88734a5e10ca518be58b4217e22adab218e05d62..0f25f8fa269284a96d22e7501a26b6e2bc8cab5c 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -30,8 +30,8 @@ config ARCH_RMOBILE select SYS_SUPPORTS_SH_TMU menuconfig ARCH_SHMOBILE_MULTI - bool "Renesas ARM SoCs" if ARCH_MULTI_V7 - depends on MMU + bool "Renesas ARM SoCs" + depends on ARCH_MULTI_V7 && MMU select ARCH_SHMOBILE select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if SMP diff --git a/arch/arm/mach-shmobile/r8a7779.h b/arch/arm/mach-shmobile/r8a7779.h index e1aaa2ef9376c91de1696ce0b475387af6390012..2a5f7730a03cd428f079707e640fe2e2450ab89d 100644 --- a/arch/arm/mach-shmobile/r8a7779.h +++ b/arch/arm/mach-shmobile/r8a7779.h @@ -3,6 +3,6 @@ extern void r8a7779_pm_init(void); -extern struct smp_operations r8a7779_smp_ops; +extern const struct smp_operations r8a7779_smp_ops; #endif /* __ASM_R8A7779_H__ */ diff --git a/arch/arm/mach-shmobile/r8a7790.h b/arch/arm/mach-shmobile/r8a7790.h index 1a46d026052c012a4e52967a7c49bec27a64f604..136f3455e9c7b6182009cbffbd26120f4ce03c01 100644 --- a/arch/arm/mach-shmobile/r8a7790.h +++ b/arch/arm/mach-shmobile/r8a7790.h @@ -1,6 +1,6 @@ #ifndef __ASM_R8A7790_H__ #define __ASM_R8A7790_H__ -extern struct smp_operations r8a7790_smp_ops; +extern const struct smp_operations r8a7790_smp_ops; #endif /* __ASM_R8A7790_H__ */ diff --git a/arch/arm/mach-shmobile/r8a7791.h b/arch/arm/mach-shmobile/r8a7791.h index 7ca0b7d0f59bac6595ddeb8f817aa58ea695f476..cf7a8405bd7fb91c8da1a096bf8c1f59de3fa93e 100644 --- a/arch/arm/mach-shmobile/r8a7791.h +++ b/arch/arm/mach-shmobile/r8a7791.h @@ -1,6 +1,6 @@ #ifndef __ASM_R8A7791_H__ #define __ASM_R8A7791_H__ -extern struct smp_operations r8a7791_smp_ops; +extern const struct smp_operations r8a7791_smp_ops; #endif /* __ASM_R8A7791_H__ */ diff --git a/arch/arm/mach-shmobile/setup-emev2.c b/arch/arm/mach-shmobile/setup-emev2.c index 37f7b15c01bc073678b49189c4b9d4a5a9aacd63..10b7cb5dcb3af1e3553761eb5d2f0dbbc33d8bf4 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 = { NULL, }; -extern struct smp_operations emev2_smp_ops; +extern const struct smp_operations emev2_smp_ops; DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)") .smp = smp_ops(emev2_smp_ops), diff --git a/arch/arm/mach-shmobile/sh73a0.h b/arch/arm/mach-shmobile/sh73a0.h index 39646806cf64646b3d233ed2d68ba620deff70e2..50ef24f780b30ec3da1e0c89c02118379ec3ac60 100644 --- a/arch/arm/mach-shmobile/sh73a0.h +++ b/arch/arm/mach-shmobile/sh73a0.h @@ -1,6 +1,6 @@ #ifndef __ASM_SH73A0_H__ #define __ASM_SH73A0_H__ -extern struct smp_operations sh73a0_smp_ops; +extern const struct smp_operations sh73a0_smp_ops; #endif /* __ASM_SH73A0_H__ */ diff --git a/arch/arm/mach-shmobile/smp-emev2.c b/arch/arm/mach-shmobile/smp-emev2.c index baff3b5efed8c31b5e1c5cd18e21e4348dcc1360..adbac6963f2b962e2350ecff5638271d55cf5046 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) shmobile_smp_scu_prepare_cpus(max_cpus); } -struct smp_operations emev2_smp_ops __initdata = { +const struct smp_operations emev2_smp_ops __initconst = { .smp_prepare_cpus = emev2_smp_prepare_cpus, .smp_boot_secondary = emev2_boot_secondary, }; diff --git a/arch/arm/mach-shmobile/smp-r8a7779.c b/arch/arm/mach-shmobile/smp-r8a7779.c index 353562b8a5eeb243f79b990c13f7eee26d9448cd..b854fe2095ad14616b7c4aae209b47f7e4f7ded3 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) } #endif /* CONFIG_HOTPLUG_CPU */ -struct smp_operations r8a7779_smp_ops __initdata = { +const struct smp_operations r8a7779_smp_ops __initconst = { .smp_prepare_cpus = r8a7779_smp_prepare_cpus, .smp_boot_secondary = r8a7779_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/mach-shmobile/smp-r8a7790.c b/arch/arm/mach-shmobile/smp-r8a7790.c index 4b33d432a364085983afab3ebc481f75b6d141a2..f6426c6fdefcb489e08dd2c69e47c16d5fc22d59 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) rcar_sysc_power_up(&r8a7790_ca7_scu); } -struct smp_operations r8a7790_smp_ops __initdata = { +const struct smp_operations r8a7790_smp_ops __initconst = { .smp_prepare_cpus = r8a7790_smp_prepare_cpus, .smp_boot_secondary = shmobile_smp_apmu_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/mach-shmobile/smp-r8a7791.c b/arch/arm/mach-shmobile/smp-r8a7791.c index b2508c0d276b46d56daeac18d2e6842202b5d8f8..2d6417af73b5b722fe85da8b0f19c98d53a09b56 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, return shmobile_smp_apmu_boot_secondary(cpu, idle); } -struct smp_operations r8a7791_smp_ops __initdata = { +const struct smp_operations r8a7791_smp_ops __initconst = { .smp_prepare_cpus = r8a7791_smp_prepare_cpus, .smp_boot_secondary = r8a7791_smp_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c index bc2824a036e12955d4a306e3137e080b296247b9..ee1a4b70604bd6eaca0245c10bb6f8e6ec6391d5 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) shmobile_smp_scu_prepare_cpus(max_cpus); } -struct smp_operations sh73a0_smp_ops __initdata = { +const struct smp_operations sh73a0_smp_ops __initconst = { .smp_prepare_cpus = sh73a0_smp_prepare_cpus, .smp_boot_secondary = sh73a0_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig index 90efdeb56be50450dd978e47bbcb9ed5854384d8..d0f62eacf59da510388dd206d2673eb1b6aa84e3 100644 --- a/arch/arm/mach-socfpga/Kconfig +++ b/arch/arm/mach-socfpga/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_SOCFPGA - bool "Altera SOCFPGA family" if ARCH_MULTI_V7 + bool "Altera SOCFPGA family" + depends on ARCH_MULTI_V7 select ARCH_SUPPORTS_BIG_ENDIAN select ARM_AMBA select ARM_GIC diff --git a/arch/arm/mach-socfpga/platsmp.c b/arch/arm/mach-socfpga/platsmp.c index 15c8ce8965f43c3997e37e9d093e4675ae9bd589..cbb0a54df80ac6e4eff2d463b7ae7634f363959f 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) return 1; } -static struct smp_operations socfpga_smp_ops __initdata = { +static const struct smp_operations socfpga_smp_ops __initconst = { .smp_prepare_cpus = socfpga_smp_prepare_cpus, .smp_boot_secondary = socfpga_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU @@ -126,7 +126,7 @@ static struct smp_operations socfpga_smp_ops __initdata = { #endif }; -static struct smp_operations socfpga_a10_smp_ops __initdata = { +static const struct smp_operations socfpga_a10_smp_ops __initconst = { .smp_prepare_cpus = socfpga_smp_prepare_cpus, .smp_boot_secondary = socfpga_a10_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/mach-spear/Kconfig b/arch/arm/mach-spear/Kconfig index b6f4bda273b347556c8685c398727d983836a1ac..ea9ea95630bdb7ee04a638377958a5c429a50ba7 100644 --- a/arch/arm/mach-spear/Kconfig +++ b/arch/arm/mach-spear/Kconfig @@ -3,7 +3,8 @@ # menuconfig PLAT_SPEAR - bool "ST SPEAr Family" if ARCH_MULTI_V7 || ARCH_MULTI_V5 + bool "ST SPEAr Family" + depends on ARCH_MULTI_V7 || ARCH_MULTI_V5 select ARCH_REQUIRE_GPIOLIB select ARM_AMBA select CLKSRC_MMIO diff --git a/arch/arm/mach-spear/generic.h b/arch/arm/mach-spear/generic.h index 06640914d9a08c79da2d04eb1d42d10577ec9798..909b97c0b23719010d4950532bcfada3f5ea1c30 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 *); void spear13xx_secondary_startup(void); void spear13xx_cpu_die(unsigned int cpu); -extern struct smp_operations spear13xx_smp_ops; +extern const struct smp_operations spear13xx_smp_ops; #ifdef CONFIG_MACH_SPEAR1310 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 fd4297713d679c477b6b623c1162eff03c402f82..8d1e2d55178684cd96c49828eb5390e24286ff7c 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) __raw_writel(virt_to_phys(spear13xx_secondary_startup), SYS_LOCATION); } -struct smp_operations spear13xx_smp_ops __initdata = { +const struct smp_operations spear13xx_smp_ops __initconst = { .smp_init_cpus = spear13xx_smp_init_cpus, .smp_prepare_cpus = spear13xx_smp_prepare_cpus, .smp_secondary_init = spear13xx_secondary_init, diff --git a/arch/arm/mach-sti/Kconfig b/arch/arm/mach-sti/Kconfig index 125865daaf1719e931cb051b9039292799b8e930..736abe6d01dcba858793b2d9408a59ed21251763 100644 --- a/arch/arm/mach-sti/Kconfig +++ b/arch/arm/mach-sti/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_STI - bool "STMicroelectronics Consumer Electronics SOCs" if ARCH_MULTI_V7 + bool "STMicroelectronics Consumer Electronics SOCs" + depends on ARCH_MULTI_V7 select ARM_GIC select ST_IRQCHIP select ARM_GLOBAL_TIMER diff --git a/arch/arm/mach-sti/platsmp.c b/arch/arm/mach-sti/platsmp.c index c4ad6eae67faf52b785fa822b548c11ea076db38..ea5a2277ee46b4132edfea00fd6e6c07a91be630 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) } } -struct smp_operations __initdata sti_smp_ops = { +const struct smp_operations sti_smp_ops __initconst = { .smp_prepare_cpus = sti_smp_prepare_cpus, .smp_secondary_init = sti_secondary_init, .smp_boot_secondary = sti_boot_secondary, diff --git a/arch/arm/mach-sti/smp.h b/arch/arm/mach-sti/smp.h index ae22707d301fa1c2070ca03dafae1aa3e0a59d16..d8a2f8758490dc5aa6dc937cb117cf60a4a5b826 100644 --- a/arch/arm/mach-sti/smp.h +++ b/arch/arm/mach-sti/smp.h @@ -12,7 +12,7 @@ #ifndef __MACH_STI_SMP_H #define __MACH_STI_SMP_H -extern struct smp_operations sti_smp_ops; +extern const struct smp_operations sti_smp_ops; void sti_secondary_startup(void); diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index 4efe2d43a126b4ca13c42aa08fc67ce11c898d35..c124d658b3506d36d8070bcb4cdf1e22a86ef607 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_SUNXI - bool "Allwinner SoCs" if ARCH_MULTI_V7 + bool "Allwinner SoCs" + depends on ARCH_MULTI_V7 select ARCH_REQUIRE_GPIOLIB select ARCH_HAS_RESET_CONTROLLER select CLKSRC_MMIO diff --git a/arch/arm/mach-sunxi/platsmp.c b/arch/arm/mach-sunxi/platsmp.c index e8483ec79d6706c0994b2dcd71a8183cd1e6a787..6642267812c96fc3f2b0e1f694b5bf3667dd20ed 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, return 0; } -static struct smp_operations sun6i_smp_ops __initdata = { +static const struct smp_operations sun6i_smp_ops __initconst = { .smp_prepare_cpus = sun6i_smp_prepare_cpus, .smp_boot_secondary = sun6i_smp_boot_secondary, }; @@ -185,7 +185,7 @@ static int sun8i_smp_boot_secondary(unsigned int cpu, return 0; } -struct smp_operations sun8i_smp_ops __initdata = { +static const struct smp_operations sun8i_smp_ops __initconst = { .smp_prepare_cpus = sun8i_smp_prepare_cpus, .smp_boot_secondary = sun8i_smp_boot_secondary, }; diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index 0fa4c5f8b1beb31abfa6f26745143a1693a8725c..a90f3556017fe80ae3d2587e54e063cd619c0e6a 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_TEGRA - bool "NVIDIA Tegra" if ARCH_MULTI_V7 + bool "NVIDIA Tegra" + depends on ARCH_MULTI_V7 select ARCH_REQUIRE_GPIOLIB select ARCH_SUPPORTS_TRUSTED_FOUNDATIONS select ARM_AMBA diff --git a/arch/arm/mach-tegra/common.h b/arch/arm/mach-tegra/common.h index 5900cc44f780d33ab84434d3d4393643bab4e541..1f6fb808e2363e2c44f9be364252b9a070668aae 100644 --- a/arch/arm/mach-tegra/common.h +++ b/arch/arm/mach-tegra/common.h @@ -1,4 +1,4 @@ -extern struct smp_operations tegra_smp_ops; +extern const struct smp_operations tegra_smp_ops; extern int tegra_cpu_kill(unsigned int cpu); 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 b45086666648b893b2ca622abe16c629893b1858..f3f61dbbda97b8f4fd09b42c34fd79903955ad34 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) scu_enable(IO_ADDRESS(scu_a9_get_base())); } -struct smp_operations tegra_smp_ops __initdata = { +const struct smp_operations tegra_smp_ops __initconst = { .smp_prepare_cpus = tegra_smp_prepare_cpus, .smp_secondary_init = tegra_secondary_init, .smp_boot_secondary = tegra_boot_secondary, diff --git a/arch/arm/mach-u300/Kconfig b/arch/arm/mach-u300/Kconfig index bc51a71394af722a5ba577863cdc28d87d0d61a3..301a98498453d40915c2292da3d844d38bcce3e5 100644 --- a/arch/arm/mach-u300/Kconfig +++ b/arch/arm/mach-u300/Kconfig @@ -1,6 +1,6 @@ menuconfig ARCH_U300 - bool "ST-Ericsson U300 Series" if ARCH_MULTI_V5 - depends on MMU + bool "ST-Ericsson U300 Series" + depends on ARCH_MULTI_V5 && MMU select ARCH_REQUIRE_GPIOLIB select ARM_AMBA select ARM_VIC diff --git a/arch/arm/mach-uniphier/platsmp.c b/arch/arm/mach-uniphier/platsmp.c index f0577664611c9a6456c8d371ff80955e2d19e011..e1cfc1d6e2f471385bb06e9c3e6cb45a19015fb9 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, return 0; } -static struct smp_operations uniphier_smp_ops __initdata = { +static const struct smp_operations uniphier_smp_ops __initconst = { .smp_prepare_cpus = uniphier_smp_prepare_cpus, .smp_boot_secondary = uniphier_smp_boot_secondary, }; diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig index c9ac19b24e5a5da7bbfbf7aa7afcaff34f067e96..a5c3373c7f76db116f4e9cfd117e0f818e51094c 100644 --- a/arch/arm/mach-ux500/Kconfig +++ b/arch/arm/mach-ux500/Kconfig @@ -1,6 +1,6 @@ menuconfig ARCH_U8500 - bool "ST-Ericsson U8500 Series" if ARCH_MULTI_V7 - depends on MMU + bool "ST-Ericsson U8500 Series" + depends on ARCH_MULTI_V7 && MMU select AB8500_CORE select ABX500_CORE select ARCH_REQUIRE_GPIOLIB diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile index c8643ac5db712b17847b7f429312b147c7d6ad52..edfff1ae1f8d888d9c12a21b30f24af4281e4ab0 100644 --- a/arch/arm/mach-ux500/Makefile +++ b/arch/arm/mach-ux500/Makefile @@ -2,7 +2,7 @@ # Makefile for the linux kernel, U8500 machine. # -obj-y := cpu.o id.o timer.o pm.o +obj-y := cpu.o id.o pm.o obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o 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 f80560318c58ca2b53458afb0e71127c14fb52e3..a0ffaad1fb612fe42b059c2e99313d0d30a0d9f6 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[] = { DT_MACHINE_START(U8500_DT, "ST-Ericsson Ux5x0 platform (Device Tree Support)") .map_io = u8500_map_io, .init_irq = ux500_init_irq, - /* we re-use nomadik timer here */ - .init_time = ux500_timer_init, .init_machine = u8500_init_machine, .init_late = NULL, .dt_compat = stericsson_dt_platform_compat, diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c index 41b81c4fbe636593ef26f1dc2de110b435ff61cf..82156cbc22cec46499d187bc45517b60d62fb01e 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include diff --git a/arch/arm/mach-ux500/platsmp.c b/arch/arm/mach-ux500/platsmp.c index 70766b963758d1c12e97e2a7335dd1f1454863fe..88b8ab4f300ceb7fabf8a1e66c29b4964385d8b2 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) return 0; } -struct smp_operations ux500_smp_ops __initdata = { +static const struct smp_operations ux500_smp_ops __initconst = { .smp_prepare_cpus = ux500_smp_prepare_cpus, .smp_boot_secondary = ux500_boot_secondary, #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/arm/mach-ux500/setup.h b/arch/arm/mach-ux500/setup.h index 65876eac0761a232ab570b52040590abb488028c..c704254ab67c68b833b1a919072ed6fc56463078 100644 --- a/arch/arm/mach-ux500/setup.h +++ b/arch/arm/mach-ux500/setup.h @@ -12,7 +12,6 @@ #define __ASM_ARCH_SETUP_H #include -#include #include #include @@ -24,8 +23,6 @@ extern void __init ux500_init_irq(void); extern struct device *ux500_soc_device_init(const char *soc_id); -extern void ux500_timer_init(void); - extern void ux500_cpu_die(unsigned int cpu); #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 8d2d233f8e6cfaa248801c69033b511d7adef5af..0000000000000000000000000000000000000000 --- a/arch/arm/mach-ux500/timer.c +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) ST-Ericsson SA 2011 - * - * License Terms: GNU General Public License v2 - * Author: Mattias Wallin for ST-Ericsson - */ -#include -#include -#include -#include -#include -#include - -#include "setup.h" - -#include "db8500-regs.h" -#include "id.h" - -static const struct of_device_id prcmu_timer_of_match[] __initconst = { - { .compatible = "stericsson,db8500-prcmu-timer-4", }, - { }, -}; - -void __init ux500_timer_init(void) -{ - void __iomem *prcmu_timer_base; - void __iomem *tmp_base; - struct device_node *np; - - if (cpu_is_u8500_family() || cpu_is_ux540_family()) - prcmu_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE); - else - ux500_unknown_soc(); - - np = of_find_matching_node(NULL, prcmu_timer_of_match); - if (!np) - goto dt_fail; - - tmp_base = of_iomap(np, 0); - if (!tmp_base) - goto dt_fail; - - prcmu_timer_base = tmp_base; - -dt_fail: - clksrc_dbx500_prcmu_init(prcmu_timer_base); - clocksource_probe(); -} diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig index 10f9389572da2e8a6fb9fb59824f3b8d3fea4c64..398a297b7e0959c08a085e29875320320f95f816 100644 --- a/arch/arm/mach-vexpress/Kconfig +++ b/arch/arm/mach-vexpress/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_VEXPRESS - bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 + bool "ARM Ltd. Versatile Express family" + depends on ARCH_MULTI_V7 select ARCH_REQUIRE_GPIOLIB select ARCH_SUPPORTS_BIG_ENDIAN select ARM_AMBA diff --git a/arch/arm/mach-vexpress/core.h b/arch/arm/mach-vexpress/core.h index 2a11d3ac8c68b5b74db8da21bca2744a9864f756..a162ab46ee0253d4493873676b0f1758e3130c1f 100644 --- a/arch/arm/mach-vexpress/core.h +++ b/arch/arm/mach-vexpress/core.h @@ -1,5 +1,5 @@ bool vexpress_smp_init_ops(void); -extern struct smp_operations vexpress_smp_dt_ops; +extern const struct smp_operations vexpress_smp_dt_ops; 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 83188cf1875d3e4fb5cfca9f637c75a74da1b2f4..8b8d0724f6c6db3663bb02b3cfad3c93e0670479 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) vexpress_flags_set(virt_to_phys(versatile_secondary_startup)); } -struct smp_operations __initdata vexpress_smp_dt_ops = { +const struct smp_operations vexpress_smp_dt_ops __initconst = { .smp_prepare_cpus = vexpress_smp_dt_prepare_cpus, .smp_secondary_init = versatile_secondary_init, .smp_boot_secondary = versatile_boot_secondary, diff --git a/arch/arm/mach-zx/Kconfig b/arch/arm/mach-zx/Kconfig index 446334a25cf5c6f0db61a9c10558e6c1e57b7823..209c97944de22028bdafbcb4f78107bb734335ec 100644 --- a/arch/arm/mach-zx/Kconfig +++ b/arch/arm/mach-zx/Kconfig @@ -1,5 +1,6 @@ menuconfig ARCH_ZX - bool "ZTE ZX family" if ARCH_MULTI_V7 + bool "ZTE ZX family" + depends on ARCH_MULTI_V7 help Support for ZTE ZX-based family of processors. TV 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 a3693982d65d867e7edbf5db43de0b4f9246f8b3..0297f92084e048234ed557443983735079d7ac2a 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) scu_power_mode(scu_base, SCU_PM_NORMAL); } -struct smp_operations zx_smp_ops __initdata = { +static const struct smp_operations zx_smp_ops __initconst = { .smp_prepare_cpus = zx_smp_prepare_cpus, .smp_secondary_init = zx_secondary_init, .smp_boot_secondary = zx_boot_secondary, diff --git a/arch/arm/mach-zynq/Kconfig b/arch/arm/mach-zynq/Kconfig index 77d7df75e2a037a600c0091a9751b99532274066..fd0aeeb098817fbd5c715b71a0c898ceae9e4840 100644 --- a/arch/arm/mach-zynq/Kconfig +++ b/arch/arm/mach-zynq/Kconfig @@ -1,5 +1,6 @@ config ARCH_ZYNQ - bool "Xilinx Zynq ARM Cortex A9 Platform" if ARCH_MULTI_V7 + bool "Xilinx Zynq ARM Cortex A9 Platform" + depends on ARCH_MULTI_V7 select ARCH_HAS_RESET_CONTROLLER select ARCH_SUPPORTS_BIG_ENDIAN select ARM_AMBA diff --git a/arch/arm/mach-zynq/common.h b/arch/arm/mach-zynq/common.h index 79cda2e5fa4ec4e214c2cdf5a5cb6d79b12d719b..e771933db7e8a35a0bc19913315c05faf0a998c3 100644 --- a/arch/arm/mach-zynq/common.h +++ b/arch/arm/mach-zynq/common.h @@ -30,7 +30,7 @@ extern char zynq_secondary_trampoline; extern char zynq_secondary_trampoline_jump; extern char zynq_secondary_trampoline_end; extern int zynq_cpun_start(u32 address, int cpu); -extern struct smp_operations zynq_smp_ops __initdata; +extern const struct smp_operations zynq_smp_ops; #endif extern void __iomem *zynq_scu_base; diff --git a/arch/arm/mach-zynq/platsmp.c b/arch/arm/mach-zynq/platsmp.c index f66816c4918695a6f2000d3813a870645429f7d9..7cd9865bdeb7bed3c46c575fb5fea5a022ac251b 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) } #endif -struct smp_operations zynq_smp_ops __initdata = { +const struct smp_operations zynq_smp_ops __initconst = { .smp_init_cpus = zynq_smp_init_cpus, .smp_prepare_cpus = zynq_smp_prepare_cpus, .smp_boot_secondary = zynq_boot_secondary, diff --git a/drivers/clocksource/clksrc-dbx500-prcmu.c b/drivers/clocksource/clksrc-dbx500-prcmu.c index b375106844d83e6bb2321e8768b02b92e2031efa..dfad6eb9966289831330e5cd13979a74d5eec9ea 100644 --- a/drivers/clocksource/clksrc-dbx500-prcmu.c +++ b/drivers/clocksource/clksrc-dbx500-prcmu.c @@ -12,8 +12,9 @@ * power domain. We use the Timer 4 for our always-on clock * source on DB8500. */ +#include +#include #include -#include #include #define RATE_32K 32768 @@ -63,9 +64,9 @@ static u64 notrace dbx500_prcmu_sched_clock_read(void) #endif -void __init clksrc_dbx500_prcmu_init(void __iomem *base) +static void __init clksrc_dbx500_prcmu_init(struct device_node *node) { - clksrc_dbx500_timer_base = base; + clksrc_dbx500_timer_base = of_iomap(node, 0); /* * The A9 sub system expects the timer to be configured as @@ -85,3 +86,5 @@ void __init clksrc_dbx500_prcmu_init(void __iomem *base) #endif clocksource_register_hz(&clocksource_dbx500_prcmu, RATE_32K); } +CLOCKSOURCE_OF_DECLARE(dbx500_prcmu, "stericsson,db8500-prcmu-timer-4", + 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 4fb8119c49e46444080605bc7b46ac2e34674c1e..0000000000000000000000000000000000000000 --- a/include/linux/clksrc-dbx500-prcmu.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (C) ST-Ericsson SA 2011 - * - * License Terms: GNU General Public License v2 - * Author: Mattias Wallin - * - */ -#ifndef __CLKSRC_DBX500_PRCMU_H -#define __CLKSRC_DBX500_PRCMU_H - -#include -#include - -#ifdef CONFIG_CLKSRC_DBX500_PRCMU -void __init clksrc_dbx500_prcmu_init(void __iomem *base); -#else -static inline void __init clksrc_dbx500_prcmu_init(void __iomem *base) {} -#endif - -#endif