diff options
author | Olof Johansson <olof@lixom.net> | 2015-04-03 13:55:38 -0700 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2015-04-03 13:55:38 -0700 |
commit | 1eddf578e25521267cf734935b2a856ed2be28fc (patch) | |
tree | f02f12f710502c1fc6afdd7c0b014d360ef9adb2 | |
parent | 77479b38e2f58890eb221a0418357502a5b41cd6 (diff) | |
parent | 548ae94c1cc7fc120848757249b9a542b1080ffb (diff) | |
download | op-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.c | 16 |
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; |