aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mvebu
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mvebu')
-rw-r--r--target/linux/mvebu/patches-3.18/031-disable_cpu_idle_on_armada_38x.patch62
-rw-r--r--target/linux/mvebu/patches-3.18/060-cpuidle-mvebu-Fix-the-CPU-PM-notifier-usage.patch38
-rw-r--r--target/linux/mvebu/patches-3.18/198-gpio_mvebu_suspend.patch6
-rw-r--r--target/linux/mvebu/patches-3.18/199-gpio_mvebu_drop_owner.patch2
-rw-r--r--target/linux/mvebu/patches-3.18/200-gpio_mvebu_checkpatch_fixes.patch14
-rw-r--r--target/linux/mvebu/patches-3.18/201-gpio_mvebu_fix_probe_cleanup_on_error.patch6
-rw-r--r--target/linux/mvebu/patches-3.18/202-gpio_mvebu_add_limited_pwm_support.patch10
-rw-r--r--target/linux/mvebu/patches-3.18/206-mvebu_wrt1900ac_use_pwm-fan_rather_than_gpio-fan.patch2
8 files changed, 20 insertions, 120 deletions
diff --git a/target/linux/mvebu/patches-3.18/031-disable_cpu_idle_on_armada_38x.patch b/target/linux/mvebu/patches-3.18/031-disable_cpu_idle_on_armada_38x.patch
deleted file mode 100644
index 31a73a504c..0000000000
--- a/target/linux/mvebu/patches-3.18/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-3.18/060-cpuidle-mvebu-Fix-the-CPU-PM-notifier-usage.patch b/target/linux/mvebu/patches-3.18/060-cpuidle-mvebu-Fix-the-CPU-PM-notifier-usage.patch
deleted file mode 100644
index afd66179a4..0000000000
--- a/target/linux/mvebu/patches-3.18/060-cpuidle-mvebu-Fix-the-CPU-PM-notifier-usage.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 43b68879de27b1993518687fbc6013da80cdcbfe Mon Sep 17 00:00:00 2001
-From: Gregory CLEMENT <gregory.clement@free-electrons.com>
-Date: Thu, 26 Feb 2015 18:20:48 +0100
-Subject: [PATCH] cpuidle: mvebu: Fix the CPU PM notifier usage
-
-As stated in kernel/cpu_pm.c, "Platform is responsible for ensuring
-that cpu_pm_enter is not called twice on the same CPU before
-cpu_pm_exit is called.". In the current code in case of failure when
-calling mvebu_v7_cpu_suspend, the function cpu_pm_exit() is never
-called whereas cpu_pm_enter() was called just before.
-
-This patch moves the cpu_pm_exit() in order to balance the
-cpu_pm_enter() calls.
-
-Cc: stable@vger.kernel.org
-Reported-by: Fulvio Benini <fbf@libero.it>
-Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
-Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
----
- drivers/cpuidle/cpuidle-mvebu-v7.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/cpuidle/cpuidle-mvebu-v7.c
-+++ b/drivers/cpuidle/cpuidle-mvebu-v7.c
-@@ -37,11 +37,11 @@ static int mvebu_v7_enter_idle(struct cp
- deepidle = true;
-
- ret = mvebu_v7_cpu_suspend(deepidle);
-+ cpu_pm_exit();
-+
- if (ret)
- return ret;
-
-- cpu_pm_exit();
--
- return index;
- }
-
diff --git a/target/linux/mvebu/patches-3.18/198-gpio_mvebu_suspend.patch b/target/linux/mvebu/patches-3.18/198-gpio_mvebu_suspend.patch
index 7a5c0b6ba6..9ef1815035 100644
--- a/target/linux/mvebu/patches-3.18/198-gpio_mvebu_suspend.patch
+++ b/target/linux/mvebu/patches-3.18/198-gpio_mvebu_suspend.patch
@@ -24,7 +24,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
};
/*
-@@ -554,6 +562,93 @@ static const struct of_device_id mvebu_g
+@@ -562,6 +570,93 @@ static const struct of_device_id mvebu_g
};
MODULE_DEVICE_TABLE(of, mvebu_gpio_of_match);
@@ -118,7 +118,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
static int mvebu_gpio_probe(struct platform_device *pdev)
{
struct mvebu_gpio_chip *mvchip;
-@@ -577,6 +672,8 @@ static int mvebu_gpio_probe(struct platf
+@@ -585,6 +680,8 @@ static int mvebu_gpio_probe(struct platf
if (!mvchip)
return -ENOMEM;
@@ -127,7 +127,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
if (of_property_read_u32(pdev->dev.of_node, "ngpios", &ngpios)) {
dev_err(&pdev->dev, "Missing ngpios OF property\n");
return -ENODEV;
-@@ -735,5 +832,7 @@ static struct platform_driver mvebu_gpio
+@@ -743,5 +840,7 @@ static struct platform_driver mvebu_gpio
.of_match_table = mvebu_gpio_of_match,
},
.probe = mvebu_gpio_probe,
diff --git a/target/linux/mvebu/patches-3.18/199-gpio_mvebu_drop_owner.patch b/target/linux/mvebu/patches-3.18/199-gpio_mvebu_drop_owner.patch
index c52e85e762..fe74199dcc 100644
--- a/target/linux/mvebu/patches-3.18/199-gpio_mvebu_drop_owner.patch
+++ b/target/linux/mvebu/patches-3.18/199-gpio_mvebu_drop_owner.patch
@@ -5,7 +5,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
--- a/drivers/gpio/gpio-mvebu.c
+++ b/drivers/gpio/gpio-mvebu.c
-@@ -828,7 +828,6 @@ static int mvebu_gpio_probe(struct platf
+@@ -836,7 +836,6 @@ static int mvebu_gpio_probe(struct platf
static struct platform_driver mvebu_gpio_driver = {
.driver = {
.name = "mvebu-gpio",
diff --git a/target/linux/mvebu/patches-3.18/200-gpio_mvebu_checkpatch_fixes.patch b/target/linux/mvebu/patches-3.18/200-gpio_mvebu_checkpatch_fixes.patch
index 844df4f6f5..48ab67df3f 100644
--- a/target/linux/mvebu/patches-3.18/200-gpio_mvebu_checkpatch_fixes.patch
+++ b/target/linux/mvebu/patches-3.18/200-gpio_mvebu_checkpatch_fixes.patch
@@ -111,7 +111,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
default:
BUG();
}
-@@ -364,22 +371,22 @@ static void mvebu_gpio_level_irq_unmask(
+@@ -372,22 +379,22 @@ static void mvebu_gpio_level_irq_unmask(
* value of the line or the opposite value.
*
* Level IRQ handlers: DATA_IN is used directly as cause register.
@@ -144,7 +144,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
*
****************************************************************************/
-@@ -394,9 +401,8 @@ static int mvebu_gpio_irq_set_type(struc
+@@ -402,9 +409,8 @@ static int mvebu_gpio_irq_set_type(struc
pin = d->hwirq;
u = readl_relaxed(mvebu_gpioreg_io_conf(mvchip)) & (1 << pin);
@@ -155,7 +155,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
type &= IRQ_TYPE_SENSE_MASK;
if (type == IRQ_TYPE_NONE)
-@@ -529,13 +535,13 @@ static void mvebu_gpio_dbg_show(struct s
+@@ -537,13 +543,13 @@ static void mvebu_gpio_dbg_show(struct s
(data_in ^ in_pol) & msk ? "hi" : "lo",
in_pol & msk ? "lo" : "hi");
if (!((edg_msk | lvl_msk) & msk)) {
@@ -172,7 +172,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
seq_printf(s, " (%s)\n", cause & msk ? "pending" : "clear ");
}
}
-@@ -546,15 +552,15 @@ static void mvebu_gpio_dbg_show(struct s
+@@ -554,15 +560,15 @@ static void mvebu_gpio_dbg_show(struct s
static const struct of_device_id mvebu_gpio_of_match[] = {
{
.compatible = "marvell,orion-gpio",
@@ -191,7 +191,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
},
{
/* sentinel */
-@@ -668,7 +674,8 @@ static int mvebu_gpio_probe(struct platf
+@@ -676,7 +682,8 @@ static int mvebu_gpio_probe(struct platf
else
soc_variant = MVEBU_GPIO_SOC_VARIANT_ORION;
@@ -201,7 +201,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
if (!mvchip)
return -ENOMEM;
-@@ -767,8 +774,8 @@ static int mvebu_gpio_probe(struct platf
+@@ -775,8 +782,8 @@ static int mvebu_gpio_probe(struct platf
* interrupt handlers, with each handler dealing with 8 GPIO
* pins. */
for (i = 0; i < 4; i++) {
@@ -212,7 +212,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
if (irq < 0)
continue;
irq_set_handler_data(irq, mvchip);
-@@ -827,7 +834,7 @@ static int mvebu_gpio_probe(struct platf
+@@ -835,7 +842,7 @@ static int mvebu_gpio_probe(struct platf
static struct platform_driver mvebu_gpio_driver = {
.driver = {
diff --git a/target/linux/mvebu/patches-3.18/201-gpio_mvebu_fix_probe_cleanup_on_error.patch b/target/linux/mvebu/patches-3.18/201-gpio_mvebu_fix_probe_cleanup_on_error.patch
index aecf8e3c12..aeb884a381 100644
--- a/target/linux/mvebu/patches-3.18/201-gpio_mvebu_fix_probe_cleanup_on_error.patch
+++ b/target/linux/mvebu/patches-3.18/201-gpio_mvebu_fix_probe_cleanup_on_error.patch
@@ -8,7 +8,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
--- a/drivers/gpio/gpio-mvebu.c
+++ b/drivers/gpio/gpio-mvebu.c
-@@ -667,6 +667,7 @@ static int mvebu_gpio_probe(struct platf
+@@ -675,6 +675,7 @@ static int mvebu_gpio_probe(struct platf
unsigned int ngpios;
int soc_variant;
int i, cpu, id;
@@ -16,7 +16,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
match = of_match_device(mvebu_gpio_of_match, &pdev->dev);
if (match)
-@@ -785,14 +786,16 @@ static int mvebu_gpio_probe(struct platf
+@@ -793,14 +794,16 @@ static int mvebu_gpio_probe(struct platf
mvchip->irqbase = irq_alloc_descs(-1, 0, ngpios, -1);
if (mvchip->irqbase < 0) {
dev_err(&pdev->dev, "no irqs\n");
@@ -35,7 +35,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
}
gc->private = mvchip;
-@@ -823,13 +826,21 @@ static int mvebu_gpio_probe(struct platf
+@@ -831,13 +834,21 @@ static int mvebu_gpio_probe(struct platf
if (!mvchip->domain) {
dev_err(&pdev->dev, "couldn't allocate irq domain %s (DT).\n",
mvchip->chip.label);
diff --git a/target/linux/mvebu/patches-3.18/202-gpio_mvebu_add_limited_pwm_support.patch b/target/linux/mvebu/patches-3.18/202-gpio_mvebu_add_limited_pwm_support.patch
index 52ae90bb2d..49a8c0aec1 100644
--- a/target/linux/mvebu/patches-3.18/202-gpio_mvebu_add_limited_pwm_support.patch
+++ b/target/linux/mvebu/patches-3.18/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;
}
diff --git a/target/linux/mvebu/patches-3.18/206-mvebu_wrt1900ac_use_pwm-fan_rather_than_gpio-fan.patch b/target/linux/mvebu/patches-3.18/206-mvebu_wrt1900ac_use_pwm-fan_rather_than_gpio-fan.patch
index dddd67a95a..58d8280c3e 100644
--- a/target/linux/mvebu/patches-3.18/206-mvebu_wrt1900ac_use_pwm-fan_rather_than_gpio-fan.patch
+++ b/target/linux/mvebu/patches-3.18/206-mvebu_wrt1900ac_use_pwm-fan_rather_than_gpio-fan.patch
@@ -9,7 +9,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch>
--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
-@@ -407,13 +407,11 @@
+@@ -412,13 +412,11 @@
};
};