summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2015-04-03 13:55:38 -0700
committerOlof Johansson <olof@lixom.net>2015-04-03 13:55:38 -0700
commit1eddf578e25521267cf734935b2a856ed2be28fc (patch)
treef02f12f710502c1fc6afdd7c0b014d360ef9adb2
parent77479b38e2f58890eb221a0418357502a5b41cd6 (diff)
parent548ae94c1cc7fc120848757249b9a542b1080ffb (diff)
downloadop-kernel-dev-1eddf578e25521267cf734935b2a856ed2be28fc.zip
op-kernel-dev-1eddf578e25521267cf734935b2a856ed2be28fc.tar.gz
Merge tag 'mvebu-fixes-4.0' of git://git.infradead.org/linux-mvebu into fixes
Merge "ARM: mvebu: fixes for v4.0" from Gregory Clement: mvebu fix for 4.0 Disable CPU Idle on Armada 38x * tag 'mvebu-fixes-4.0' of git://git.infradead.org/linux-mvebu: ARM: mvebu: Disable CPU Idle on Armada 38x Signed-off-by: Olof Johansson <olof@lixom.net>
-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 8b9f5e2..4f4e222 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)
void __iomem *mpsoc_base;
u32 reg;
+ pr_warn("CPU idle is currently broken on Armada 38x: disabling");
+ return 0;
+
np = of_find_compatible_node(NULL, NULL,
"marvell,armada-380-coherency-fabric");
if (!np)
@@ -476,6 +479,16 @@ static int __init mvebu_v7_cpu_pm_init(void)
return 0;
of_node_put(np);
+ /*
+ * Currently the CPU idle support for Armada 38x is broken, as
+ * the CPU hotplug uses some of the CPU idle functions it is
+ * broken too, so let's disable it
+ */
+ if (of_machine_is_compatible("marvell,armada380")) {
+ cpu_hotplug_disable();
+ pr_warn("CPU hotplug support is currently broken on Armada 38x: disabling");
+ }
+
if (of_machine_is_compatible("marvell,armadaxp"))
ret = armada_xp_cpuidle_init();
else if (of_machine_is_compatible("marvell,armada370"))
@@ -489,7 +502,8 @@ static int __init mvebu_v7_cpu_pm_init(void)
return ret;
mvebu_v7_pmsu_enable_l2_powerdown_onidle();
- platform_device_register(&mvebu_v7_cpuidle_device);
+ if (mvebu_v7_cpuidle_device.name)
+ platform_device_register(&mvebu_v7_cpuidle_device);
cpu_pm_register_notifier(&mvebu_v7_cpu_pm_notifier);
return 0;
OpenPOWER on IntegriCloud