diff options
-rw-r--r-- | target/linux/mvebu/patches-4.0/031-disable_cpu_idle_on_armada_38x.patch | 62 | ||||
-rw-r--r-- | target/linux/mvebu/patches-4.0/202-gpio_mvebu_add_limited_pwm_support.patch | 10 |
2 files changed, 5 insertions, 67 deletions
diff --git a/target/linux/mvebu/patches-4.0/031-disable_cpu_idle_on_armada_38x.patch b/target/linux/mvebu/patches-4.0/031-disable_cpu_idle_on_armada_38x.patch deleted file mode 100644 index 31a73a504c..0000000000 --- a/target/linux/mvebu/patches-4.0/031-disable_cpu_idle_on_armada_38x.patch +++ /dev/null @@ -1,62 +0,0 @@ -On Armada 38x SoCs, under heavy I/O load, the system hangs when CPU -Idle is enabled. Waiting for a solution to this issue, this patch -disables the CPU Idle support for this SoC. - -As CPU Hot plug support also uses some of the CPU Idle functions it is -also affected by the same issue. This patch disables it also for the -Armada 38x SoCs. - -Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> -Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Cc: <stable@vger.kernel.org> # v3.17 + ---- -Hi, - -In this version I removed the unneeded initialization of the ret -variable, I also fixed the warning message, and finally I added the -Tested-by from Thomas. - -Gregory - - arch/arm/mach-mvebu/pmsu.c | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - ---- a/arch/arm/mach-mvebu/pmsu.c -+++ b/arch/arm/mach-mvebu/pmsu.c -@@ -415,6 +415,9 @@ static __init int armada_38x_cpuidle_ini - 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(v - 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(v - 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; diff --git a/target/linux/mvebu/patches-4.0/202-gpio_mvebu_add_limited_pwm_support.patch b/target/linux/mvebu/patches-4.0/202-gpio_mvebu_add_limited_pwm_support.patch index 535901dcd5..f1b868851a 100644 --- a/target/linux/mvebu/patches-4.0/202-gpio_mvebu_add_limited_pwm_support.patch +++ b/target/linux/mvebu/patches-4.0/202-gpio_mvebu_add_limited_pwm_support.patch @@ -299,7 +299,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> { struct mvebu_gpio_chip *mvchip = container_of(chip, struct mvebu_gpio_chip, chip); -@@ -609,6 +592,8 @@ static int mvebu_gpio_suspend(struct pla +@@ -617,6 +600,8 @@ static int mvebu_gpio_suspend(struct pla BUG(); } @@ -308,7 +308,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> return 0; } -@@ -652,6 +637,8 @@ static int mvebu_gpio_resume(struct plat +@@ -660,6 +645,8 @@ static int mvebu_gpio_resume(struct plat BUG(); } @@ -317,7 +317,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> return 0; } -@@ -663,7 +650,6 @@ static int mvebu_gpio_probe(struct platf +@@ -671,7 +658,6 @@ static int mvebu_gpio_probe(struct platf struct resource *res; struct irq_chip_generic *gc; struct irq_chip_type *ct; @@ -325,7 +325,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> unsigned int ngpios; int soc_variant; int i, cpu, id; -@@ -693,10 +679,10 @@ static int mvebu_gpio_probe(struct platf +@@ -701,10 +687,10 @@ static int mvebu_gpio_probe(struct platf return id; } @@ -339,7 +339,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> mvchip->soc_variant = soc_variant; mvchip->chip.label = dev_name(&pdev->dev); -@@ -830,7 +816,8 @@ static int mvebu_gpio_probe(struct platf +@@ -838,7 +824,8 @@ static int mvebu_gpio_probe(struct platf goto err_generic_chip; } |