aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregory CLEMENT <gregory.clement@free-electrons.com>2014-07-23 09:00:42 -0400
committerJason Cooper <jason@lakedaemon.net>2014-07-24 07:46:13 -0400
commit898ef3e9bfc7f5c94a1e67d0a540e224e2496909 (patch)
tree546715f351e1d1e293301f2352940b2923f34565
parent305969fb629284bcd35065911179a79f41954b9a (diff)
ARM: mvebu: rename the armada_370_xp symbols to mvebu_v7 in pmsu.c
Most of the function related to the PMSU are not specific to the Armada 370 or Armada XP SoCs. They can also be used for most of the other mvebu ARMv7 SoCs, and will actually be used to support cpuidle on Armada 38x. Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Link: https://lkml.kernel.org/r/1406120453-29291-6-git-send-email-thomas.petazzoni@free-electrons.com Signed-off-by: Jason Cooper <jason@lakedaemon.net>
-rw-r--r--arch/arm/mach-mvebu/armada-370-xp.h1
-rw-r--r--arch/arm/mach-mvebu/platsmp.c2
-rw-r--r--arch/arm/mach-mvebu/pmsu.c34
-rw-r--r--arch/arm/mach-mvebu/pmsu.h2
4 files changed, 20 insertions, 19 deletions
diff --git a/arch/arm/mach-mvebu/armada-370-xp.h b/arch/arm/mach-mvebu/armada-370-xp.h
index 52c1603a4f92..84cd90d9b860 100644
--- a/arch/arm/mach-mvebu/armada-370-xp.h
+++ b/arch/arm/mach-mvebu/armada-370-xp.h
@@ -25,6 +25,5 @@ extern struct smp_operations armada_xp_smp_ops;
25#endif 25#endif
26 26
27int armada_370_xp_pmsu_idle_enter(unsigned long deepidle); 27int armada_370_xp_pmsu_idle_enter(unsigned long deepidle);
28void armada_370_xp_pmsu_idle_exit(void);
29 28
30#endif /* __MACH_ARMADA_370_XP_H */ 29#endif /* __MACH_ARMADA_370_XP_H */
diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c
index b6fa9f0c98b8..6da2b723d374 100644
--- a/arch/arm/mach-mvebu/platsmp.c
+++ b/arch/arm/mach-mvebu/platsmp.c
@@ -108,7 +108,7 @@ static int armada_xp_boot_secondary(unsigned int cpu, struct task_struct *idle)
108 */ 108 */
109static void armada_xp_secondary_init(unsigned int cpu) 109static void armada_xp_secondary_init(unsigned int cpu)
110{ 110{
111 armada_370_xp_pmsu_idle_exit(); 111 mvebu_v7_pmsu_idle_exit();
112} 112}
113 113
114static void __init armada_xp_smp_init_cpus(void) 114static void __init armada_xp_smp_init_cpus(void)
diff --git a/arch/arm/mach-mvebu/pmsu.c b/arch/arm/mach-mvebu/pmsu.c
index 272a9c0565b2..501d4503d859 100644
--- a/arch/arm/mach-mvebu/pmsu.c
+++ b/arch/arm/mach-mvebu/pmsu.c
@@ -73,7 +73,7 @@ extern void ll_enable_coherency(void);
73 73
74extern void armada_370_xp_cpu_resume(void); 74extern void armada_370_xp_cpu_resume(void);
75 75
76static struct platform_device armada_xp_cpuidle_device = { 76static struct platform_device mvebu_v7_cpuidle_device = {
77 .name = "cpuidle-armada-370-xp", 77 .name = "cpuidle-armada-370-xp",
78}; 78};
79 79
@@ -132,7 +132,7 @@ int mvebu_setup_boot_addr_wa(unsigned int crypto_eng_target,
132 return 0; 132 return 0;
133} 133}
134 134
135static int __init armada_370_xp_pmsu_init(void) 135static int __init mvebu_v7_pmsu_init(void)
136{ 136{
137 struct device_node *np; 137 struct device_node *np;
138 struct resource res; 138 struct resource res;
@@ -176,7 +176,7 @@ static int __init armada_370_xp_pmsu_init(void)
176 return ret; 176 return ret;
177} 177}
178 178
179static void armada_370_xp_pmsu_enable_l2_powerdown_onidle(void) 179static void mvebu_v7_pmsu_enable_l2_powerdown_onidle(void)
180{ 180{
181 u32 reg; 181 u32 reg;
182 182
@@ -190,7 +190,7 @@ static void armada_370_xp_pmsu_enable_l2_powerdown_onidle(void)
190} 190}
191 191
192/* No locking is needed because we only access per-CPU registers */ 192/* No locking is needed because we only access per-CPU registers */
193static int armada_370_xp_prepare(unsigned long deepidle) 193static int mvebu_v7_pmsu_idle_prepare(bool deepidle)
194{ 194{
195 unsigned int hw_cpu = cpu_logical_map(smp_processor_id()); 195 unsigned int hw_cpu = cpu_logical_map(smp_processor_id());
196 u32 reg; 196 u32 reg;
@@ -233,7 +233,7 @@ int armada_370_xp_pmsu_idle_enter(unsigned long deepidle)
233{ 233{
234 int ret; 234 int ret;
235 235
236 ret = armada_370_xp_prepare(deepidle); 236 ret = mvebu_v7_pmsu_idle_prepare(deepidle);
237 if (ret) 237 if (ret)
238 return ret; 238 return ret;
239 239
@@ -272,7 +272,7 @@ static int armada_370_xp_cpu_suspend(unsigned long deepidle)
272} 272}
273 273
274/* No locking is needed because we only access per-CPU registers */ 274/* No locking is needed because we only access per-CPU registers */
275void armada_370_xp_pmsu_idle_exit(void) 275void mvebu_v7_pmsu_idle_exit(void)
276{ 276{
277 unsigned int hw_cpu = cpu_logical_map(smp_processor_id()); 277 unsigned int hw_cpu = cpu_logical_map(smp_processor_id());
278 u32 reg; 278 u32 reg;
@@ -294,24 +294,24 @@ void armada_370_xp_pmsu_idle_exit(void)
294 writel(reg, pmsu_mp_base + PMSU_STATUS_AND_MASK(hw_cpu)); 294 writel(reg, pmsu_mp_base + PMSU_STATUS_AND_MASK(hw_cpu));
295} 295}
296 296
297static int armada_370_xp_cpu_pm_notify(struct notifier_block *self, 297static int mvebu_v7_cpu_pm_notify(struct notifier_block *self,
298 unsigned long action, void *hcpu) 298 unsigned long action, void *hcpu)
299{ 299{
300 if (action == CPU_PM_ENTER) { 300 if (action == CPU_PM_ENTER) {
301 unsigned int hw_cpu = cpu_logical_map(smp_processor_id()); 301 unsigned int hw_cpu = cpu_logical_map(smp_processor_id());
302 mvebu_pmsu_set_cpu_boot_addr(hw_cpu, armada_370_xp_cpu_resume); 302 mvebu_pmsu_set_cpu_boot_addr(hw_cpu, armada_370_xp_cpu_resume);
303 } else if (action == CPU_PM_EXIT) { 303 } else if (action == CPU_PM_EXIT) {
304 armada_370_xp_pmsu_idle_exit(); 304 mvebu_v7_pmsu_idle_exit();
305 } 305 }
306 306
307 return NOTIFY_OK; 307 return NOTIFY_OK;
308} 308}
309 309
310static struct notifier_block armada_370_xp_cpu_pm_notifier = { 310static struct notifier_block mvebu_v7_cpu_pm_notifier = {
311 .notifier_call = armada_370_xp_cpu_pm_notify, 311 .notifier_call = mvebu_v7_cpu_pm_notify,
312}; 312};
313 313
314static int __init armada_370_xp_cpu_pm_init(void) 314static int __init mvebu_v7_cpu_pm_init(void)
315{ 315{
316 struct device_node *np; 316 struct device_node *np;
317 317
@@ -334,13 +334,13 @@ static int __init armada_370_xp_cpu_pm_init(void)
334 return 0; 334 return 0;
335 of_node_put(np); 335 of_node_put(np);
336 336
337 armada_370_xp_pmsu_enable_l2_powerdown_onidle(); 337 mvebu_v7_pmsu_enable_l2_powerdown_onidle();
338 armada_xp_cpuidle_device.dev.platform_data = armada_370_xp_cpu_suspend; 338 mvebu_v7_cpuidle_device.dev.platform_data = armada_370_xp_cpu_suspend;
339 platform_device_register(&armada_xp_cpuidle_device); 339 platform_device_register(&mvebu_v7_cpuidle_device);
340 cpu_pm_register_notifier(&armada_370_xp_cpu_pm_notifier); 340 cpu_pm_register_notifier(&mvebu_v7_cpu_pm_notifier);
341 341
342 return 0; 342 return 0;
343} 343}
344 344
345arch_initcall(armada_370_xp_cpu_pm_init); 345arch_initcall(mvebu_v7_cpu_pm_init);
346early_initcall(armada_370_xp_pmsu_init); 346early_initcall(mvebu_v7_pmsu_init);
diff --git a/arch/arm/mach-mvebu/pmsu.h b/arch/arm/mach-mvebu/pmsu.h
index ae501948ec73..6b58c1fe2b0d 100644
--- a/arch/arm/mach-mvebu/pmsu.h
+++ b/arch/arm/mach-mvebu/pmsu.h
@@ -16,4 +16,6 @@ int mvebu_setup_boot_addr_wa(unsigned int crypto_eng_target,
16 unsigned int crypto_eng_attribute, 16 unsigned int crypto_eng_attribute,
17 phys_addr_t resume_addr_reg); 17 phys_addr_t resume_addr_reg);
18 18
19void mvebu_v7_pmsu_idle_exit(void);
20
19#endif /* __MACH_370_XP_PMSU_H */ 21#endif /* __MACH_370_XP_PMSU_H */