aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-04-05 17:19:54 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-04-05 17:19:54 -0400
commitff050ad12c551233e546506409c89eb2f640d9f3 (patch)
tree8ae29fece122a91cbd6160fb2ca34c0ea82c3df9 /arch/arm/include
parentdfc25e4503aef6b82a1de4a0fbe19aafa8648fbe (diff)
parent9233087dc468f75bdeb7830c694c09dc74be88c4 (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.h4
-rw-r--r--arch/arm/include/asm/hardware/cache-feroceon-l2.h13
-rw-r--r--arch/arm/include/asm/smp.h9
-rw-r--r--arch/arm/include/asm/trusted_foundations.h13
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 */
23struct firmware_ops { 23struct 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
11extern void __init feroceon_l2_init(int l2_wt_override);
12extern 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
118struct 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
34struct trusted_foundations_platform_data { 36struct 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
56static inline void of_register_trusted_foundations(void) 61static 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 */