aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mvebu/pmsu.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-mvebu/pmsu.c')
-rw-r--r--arch/arm/mach-mvebu/pmsu.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/arch/arm/mach-mvebu/pmsu.c b/arch/arm/mach-mvebu/pmsu.c
index 8b9f5e202ccf..4f4e22206ae5 100644
--- a/arch/arm/mach-mvebu/pmsu.c
+++ b/arch/arm/mach-mvebu/pmsu.c
@@ -415,6 +415,9 @@ static __init int armada_38x_cpuidle_init(void)
415 void __iomem *mpsoc_base; 415 void __iomem *mpsoc_base;
416 u32 reg; 416 u32 reg;
417 417
418 pr_warn("CPU idle is currently broken on Armada 38x: disabling");
419 return 0;
420
418 np = of_find_compatible_node(NULL, NULL, 421 np = of_find_compatible_node(NULL, NULL,
419 "marvell,armada-380-coherency-fabric"); 422 "marvell,armada-380-coherency-fabric");
420 if (!np) 423 if (!np)
@@ -476,6 +479,16 @@ static int __init mvebu_v7_cpu_pm_init(void)
476 return 0; 479 return 0;
477 of_node_put(np); 480 of_node_put(np);
478 481
482 /*
483 * Currently the CPU idle support for Armada 38x is broken, as
484 * the CPU hotplug uses some of the CPU idle functions it is
485 * broken too, so let's disable it
486 */
487 if (of_machine_is_compatible("marvell,armada380")) {
488 cpu_hotplug_disable();
489 pr_warn("CPU hotplug support is currently broken on Armada 38x: disabling");
490 }
491
479 if (of_machine_is_compatible("marvell,armadaxp")) 492 if (of_machine_is_compatible("marvell,armadaxp"))
480 ret = armada_xp_cpuidle_init(); 493 ret = armada_xp_cpuidle_init();
481 else if (of_machine_is_compatible("marvell,armada370")) 494 else if (of_machine_is_compatible("marvell,armada370"))
@@ -489,7 +502,8 @@ static int __init mvebu_v7_cpu_pm_init(void)
489 return ret; 502 return ret;
490 503
491 mvebu_v7_pmsu_enable_l2_powerdown_onidle(); 504 mvebu_v7_pmsu_enable_l2_powerdown_onidle();
492 platform_device_register(&mvebu_v7_cpuidle_device); 505 if (mvebu_v7_cpuidle_device.name)
506 platform_device_register(&mvebu_v7_cpuidle_device);
493 cpu_pm_register_notifier(&mvebu_v7_cpu_pm_notifier); 507 cpu_pm_register_notifier(&mvebu_v7_cpu_pm_notifier);
494 508
495 return 0; 509 return 0;