diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-05 17:19:54 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-05 17:19:54 -0400 |
commit | ff050ad12c551233e546506409c89eb2f640d9f3 (patch) | |
tree | 8ae29fece122a91cbd6160fb2ca34c0ea82c3df9 /arch/arm/include | |
parent | dfc25e4503aef6b82a1de4a0fbe19aafa8648fbe (diff) | |
parent | 9233087dc468f75bdeb7830c694c09dc74be88c4 (diff) |
Merge tag 'soc-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC specific changes from Arnd Bergmann:
"Lots of changes specific to one of the SoC families. Some that stick
out are:
- mach-qcom gains new features, most importantly SMP support for the
newer chips (Stephen Boyd, Rohit Vaswani)
- mvebu gains support for three new SoCs: Armada 375, 380 and 385
(Thomas Petazzoni and Free-electrons team)
- SMP support for Rockchips (Heiko Stübner)
- Lots of i.MX changes (Shawn Guo)
- Added support for BCM5301x SoC (Hauke Mehrtens)
- Multiplatform support for Marvell Kirkwood and Dove (Andrew Lunn
and Sebastian Hesselbarth doing the final part of a long journey)
- Unify davinci platforms and remove obsolete ones (Sekhar Nori, Arnd
Bergmann)"
* tag 'soc-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (126 commits)
ARM: sunxi: Select HAVE_ARM_ARCH_TIMER
ARM: cache-tauros2: remove ARMv6 code
ARM: mvebu: don't select CONFIG_NEON
ARM: davinci: fix DT booting with default defconfig
ARM: configs: bcm_defconfig: enable bcm590xx regulator support
ARM: davinci: remove tnetv107x support
MAINTAINERS: Update ARM STi maintainers
ARM: restrict BCM_KONA_UART to ARCH_BCM_MOBILE
ARM: bcm21664: Add board support.
ARM: sunxi: Add the new watchog compatibles to the reboot code
ARM: enable ARM_HAS_SG_CHAIN for multiplatform
ARM: davinci: remove da8xx_omapl_defconfig
ARM: davinci: da8xx: fix multiple watchdog device registration
ARM: davinci: add da8xx specific configs to davinci_all_defconfig
ARM: davinci: enable da8xx build concurrently with older devices
ARM: BCM5301X: workaround suppress fault
ARM: BCM5301X: add early debugging support
ARM: BCM5301X: initial support for the BCM5301X/BCM470X SoCs with ARM CPU
ARM: mach-bcm: Remove GENERIC_TIME
ARM: shmobile: APMU: Fix warnings due to improper printk formats
...
Diffstat (limited to 'arch/arm/include')
-rw-r--r-- | arch/arm/include/asm/firmware.h | 4 | ||||
-rw-r--r-- | arch/arm/include/asm/hardware/cache-feroceon-l2.h | 13 | ||||
-rw-r--r-- | arch/arm/include/asm/smp.h | 9 | ||||
-rw-r--r-- | arch/arm/include/asm/trusted_foundations.h | 13 |
4 files changed, 35 insertions, 4 deletions
diff --git a/arch/arm/include/asm/firmware.h b/arch/arm/include/asm/firmware.h index 15631300c238..2c9f10df7568 100644 --- a/arch/arm/include/asm/firmware.h +++ b/arch/arm/include/asm/firmware.h | |||
@@ -22,6 +22,10 @@ | |||
22 | */ | 22 | */ |
23 | struct firmware_ops { | 23 | struct firmware_ops { |
24 | /* | 24 | /* |
25 | * Inform the firmware we intend to enter CPU idle mode | ||
26 | */ | ||
27 | int (*prepare_idle)(void); | ||
28 | /* | ||
25 | * Enters CPU idle mode | 29 | * Enters CPU idle mode |
26 | */ | 30 | */ |
27 | int (*do_idle)(void); | 31 | int (*do_idle)(void); |
diff --git a/arch/arm/include/asm/hardware/cache-feroceon-l2.h b/arch/arm/include/asm/hardware/cache-feroceon-l2.h new file mode 100644 index 000000000000..12e1588dc4f1 --- /dev/null +++ b/arch/arm/include/asm/hardware/cache-feroceon-l2.h | |||
@@ -0,0 +1,13 @@ | |||
1 | /* | ||
2 | * arch/arm/include/asm/hardware/cache-feroceon-l2.h | ||
3 | * | ||
4 | * Copyright (C) 2008 Marvell Semiconductor | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | ||
7 | * License version 2. This program is licensed "as is" without any | ||
8 | * warranty of any kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | extern void __init feroceon_l2_init(int l2_wt_override); | ||
12 | extern int __init feroceon_of_init(void); | ||
13 | |||
diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h index 4157aec4e307..2ec765c39ab4 100644 --- a/arch/arm/include/asm/smp.h +++ b/arch/arm/include/asm/smp.h | |||
@@ -115,6 +115,15 @@ struct smp_operations { | |||
115 | #endif | 115 | #endif |
116 | }; | 116 | }; |
117 | 117 | ||
118 | struct of_cpu_method { | ||
119 | const char *method; | ||
120 | struct smp_operations *ops; | ||
121 | }; | ||
122 | |||
123 | #define CPU_METHOD_OF_DECLARE(name, _method, _ops) \ | ||
124 | static const struct of_cpu_method __cpu_method_of_table_##name \ | ||
125 | __used __section(__cpu_method_of_table) \ | ||
126 | = { .method = _method, .ops = _ops } | ||
118 | /* | 127 | /* |
119 | * set platform specific SMP operations | 128 | * set platform specific SMP operations |
120 | */ | 129 | */ |
diff --git a/arch/arm/include/asm/trusted_foundations.h b/arch/arm/include/asm/trusted_foundations.h index 3bd36e2c5f2e..b5f7705abcb0 100644 --- a/arch/arm/include/asm/trusted_foundations.h +++ b/arch/arm/include/asm/trusted_foundations.h | |||
@@ -30,6 +30,8 @@ | |||
30 | #include <linux/printk.h> | 30 | #include <linux/printk.h> |
31 | #include <linux/bug.h> | 31 | #include <linux/bug.h> |
32 | #include <linux/of.h> | 32 | #include <linux/of.h> |
33 | #include <linux/cpu.h> | ||
34 | #include <linux/smp.h> | ||
33 | 35 | ||
34 | struct trusted_foundations_platform_data { | 36 | struct trusted_foundations_platform_data { |
35 | unsigned int version_major; | 37 | unsigned int version_major; |
@@ -47,10 +49,13 @@ static inline void register_trusted_foundations( | |||
47 | struct trusted_foundations_platform_data *pd) | 49 | struct trusted_foundations_platform_data *pd) |
48 | { | 50 | { |
49 | /* | 51 | /* |
50 | * If we try to register TF, this means the system needs it to continue. | 52 | * If the system requires TF and we cannot provide it, continue booting |
51 | * Its absence if thus a fatal error. | 53 | * but disable features that cannot be provided. |
52 | */ | 54 | */ |
53 | panic("No support for Trusted Foundations, stopping...\n"); | 55 | pr_err("No support for Trusted Foundations, continuing in degraded mode.\n"); |
56 | pr_err("Secondary processors as well as CPU PM will be disabled.\n"); | ||
57 | setup_max_cpus = 0; | ||
58 | cpu_idle_poll_ctrl(true); | ||
54 | } | 59 | } |
55 | 60 | ||
56 | static inline void of_register_trusted_foundations(void) | 61 | static inline void of_register_trusted_foundations(void) |
@@ -59,7 +64,7 @@ static inline void of_register_trusted_foundations(void) | |||
59 | * If we find the target should enable TF but does not support it, | 64 | * If we find the target should enable TF but does not support it, |
60 | * fail as the system won't be able to do much anyway | 65 | * fail as the system won't be able to do much anyway |
61 | */ | 66 | */ |
62 | if (of_find_compatible_node(NULL, NULL, "tl,trusted-foundations")) | 67 | if (of_find_compatible_node(NULL, NULL, "tlm,trusted-foundations")) |
63 | register_trusted_foundations(NULL); | 68 | register_trusted_foundations(NULL); |
64 | } | 69 | } |
65 | #endif /* CONFIG_TRUSTED_FOUNDATIONS */ | 70 | #endif /* CONFIG_TRUSTED_FOUNDATIONS */ |