mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 10:39:04 +00:00
mvebu: update to 3.8-rc3
Signed-off-by: Florian Fainelli <florian@openwrt.org> SVN-Revision: 35086
This commit is contained in:
parent
548cb59826
commit
ecf230710f
target/linux
generic/patches-3.8
mvebu
@ -1,33 +0,0 @@
|
||||
From 7a70ff39328cd24b9c7db11eb4ae1a18c698a538 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Fainelli <florian@openwrt.org>
|
||||
Date: Mon, 7 Jan 2013 14:26:15 +0100
|
||||
Subject: [PATCH] sctp: fix typo in default SCTP cookie choice
|
||||
|
||||
Commit 0d0863b0 (sctp: Change defaults on cookie hmac selection)
|
||||
introduced a choice configuration option to select the default SCTP
|
||||
cookie hashing algorithm, a typo was introduced for the default choice.
|
||||
This is an issue when running make oldconfig because an explicit choice
|
||||
number must be entered since no default is available. This patch fixes
|
||||
the typo, thus providing a valid default choice.
|
||||
|
||||
Signed-off-by: Florian Fainelli <florian@openwrt.org>
|
||||
---
|
||||
net/sctp/Kconfig | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/sctp/Kconfig b/net/sctp/Kconfig
|
||||
index c262106..7521d94 100644
|
||||
--- a/net/sctp/Kconfig
|
||||
+++ b/net/sctp/Kconfig
|
||||
@@ -68,7 +68,7 @@ config SCTP_DBG_OBJCNT
|
||||
If unsure, say N
|
||||
choice
|
||||
prompt "Default SCTP cookie HMAC encoding"
|
||||
- default SCTP_COOKIE_HMAC_MD5
|
||||
+ default SCTP_DEFAULT_COOKIE_HMAC_MD5
|
||||
help
|
||||
This option sets the default sctp cookie hmac algorithm
|
||||
when in doubt select 'md5'
|
||||
--
|
||||
1.7.10.4
|
||||
|
@ -13,7 +13,7 @@ FEATURES:=targz usb jffs2 pci pcie gpio
|
||||
CFLAGS:=-Os -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp
|
||||
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
|
||||
|
||||
LINUX_VERSION:=3.8-rc2
|
||||
LINUX_VERSION:=3.8-rc3
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -1,28 +0,0 @@
|
||||
From: Joshua Coombs <josh.coombs@gmail.com>
|
||||
|
||||
If the Orion WDT driver is built as a module, an opps occurs during
|
||||
clk lookup when calling mvebu_clk_gating_get_src(). Remove the
|
||||
inappropriate __init tag so the function is available for modules
|
||||
after kernel init.
|
||||
|
||||
Signed-off-by: Joshua Coombs <josh.coombs@gmail.com>
|
||||
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
|
||||
---
|
||||
drivers/clk/mvebu/clk-gating-ctrl.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/clk/mvebu/clk-gating-ctrl.c b/drivers/clk/mvebu/clk-gating-ctrl.c
|
||||
index c6d3c26..8fa5408 100644
|
||||
--- a/drivers/clk/mvebu/clk-gating-ctrl.c
|
||||
+++ b/drivers/clk/mvebu/clk-gating-ctrl.c
|
||||
@@ -32,7 +32,7 @@ struct mvebu_soc_descr {
|
||||
|
||||
#define to_clk_gate(_hw) container_of(_hw, struct clk_gate, hw)
|
||||
|
||||
-static struct clk __init *mvebu_clk_gating_get_src(
|
||||
+static struct clk *mvebu_clk_gating_get_src(
|
||||
struct of_phandle_args *clkspec, void *data)
|
||||
{
|
||||
struct mvebu_gating_ctrl *ctrl = (struct mvebu_gating_ctrl *)data;
|
||||
--
|
||||
1.7.10.4
|
@ -1,38 +0,0 @@
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
When mv_xor_channel_add() fails for one XOR channel, we jump to the
|
||||
err_channel_add label to clean up all previous channels that had been
|
||||
initialized correctly. Unfortunately, while handling this error
|
||||
condition, we were disposing the IRQ mapping before calling
|
||||
mv_xor_channel_remove() (which does the free_irq()), which is
|
||||
incorrect.
|
||||
|
||||
Instead, do things properly in the reverse order of the
|
||||
initialization: first remove the XOR channel (so that free_irq() is
|
||||
done), and then dispose the IRQ mapping.
|
||||
|
||||
This avoids ugly warnings when for some reason one of the XOR channel
|
||||
fails to initialize.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
drivers/dma/mv_xor.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
|
||||
index ac71f55..cc5d23d 100644
|
||||
--- a/drivers/dma/mv_xor.c
|
||||
+++ b/drivers/dma/mv_xor.c
|
||||
@@ -1361,9 +1361,9 @@ static int mv_xor_probe(struct platform_device *pdev)
|
||||
err_channel_add:
|
||||
for (i = 0; i < MV_XOR_MAX_CHANNELS; i++)
|
||||
if (xordev->channels[i]) {
|
||||
+ mv_xor_channel_remove(xordev->channels[i]);
|
||||
if (pdev->dev.of_node)
|
||||
irq_dispose_mapping(xordev->channels[i]->irq);
|
||||
- mv_xor_channel_remove(xordev->channels[i]);
|
||||
}
|
||||
|
||||
clk_disable_unprepare(xordev->clk);
|
||||
--
|
||||
1.7.10.4
|
@ -1,35 +0,0 @@
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
When a channel fails to initialize, we release all ressources,
|
||||
including clocks. However, a XOR unit is not necessarily associated to
|
||||
a clock (some variants of Marvell SoCs have a clock for XOR units,
|
||||
some don't), so we shouldn't unconditionally be releasing the clock.
|
||||
|
||||
Instead, just like we do in the mv_xor_remove() function, we should
|
||||
check if one clock was found before releasing it.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
drivers/dma/mv_xor.c | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
|
||||
index cc5d23d..e17fad0 100644
|
||||
--- a/drivers/dma/mv_xor.c
|
||||
+++ b/drivers/dma/mv_xor.c
|
||||
@@ -1366,8 +1366,11 @@ err_channel_add:
|
||||
irq_dispose_mapping(xordev->channels[i]->irq);
|
||||
}
|
||||
|
||||
- clk_disable_unprepare(xordev->clk);
|
||||
- clk_put(xordev->clk);
|
||||
+ if (!IS_ERR(xordev->clk)) {
|
||||
+ clk_disable_unprepare(xordev->clk);
|
||||
+ clk_put(xordev->clk);
|
||||
+ }
|
||||
+
|
||||
return ret;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.10.4
|
@ -1,52 +0,0 @@
|
||||
From e84ed03e1c5d45305fdd9b872e0b7be97bcfda16 Mon Sep 17 00:00:00 2001
|
||||
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||
Date: Thu, 13 Dec 2012 15:03:27 +0100
|
||||
Subject: [PATCH] arm: cache-l2x0: aurora: Invalidate during clean operation
|
||||
with WT enable
|
||||
|
||||
This patch fixes a bug for Aurora L2 cache controller when the
|
||||
write-through mode is enable. For the clean operation even if we don't
|
||||
have to flush the lines we still need to invalidate them.
|
||||
|
||||
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||
---
|
||||
arch/arm/mm/cache-l2x0.c | 22 ++++++++++++++--------
|
||||
1 file changed, 14 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
|
||||
index 6911b8b..7ffe943 100644
|
||||
--- a/arch/arm/mm/cache-l2x0.c
|
||||
+++ b/arch/arm/mm/cache-l2x0.c
|
||||
@@ -505,15 +505,21 @@ static void aurora_clean_range(unsigned long start, unsigned long end)
|
||||
|
||||
static void aurora_flush_range(unsigned long start, unsigned long end)
|
||||
{
|
||||
- if (!l2_wt_override) {
|
||||
- start &= ~(CACHE_LINE_SIZE - 1);
|
||||
- end = ALIGN(end, CACHE_LINE_SIZE);
|
||||
- while (start != end) {
|
||||
- unsigned long range_end = calc_range_end(start, end);
|
||||
+ start &= ~(CACHE_LINE_SIZE - 1);
|
||||
+ end = ALIGN(end, CACHE_LINE_SIZE);
|
||||
+ while (start != end) {
|
||||
+ unsigned long range_end = calc_range_end(start, end);
|
||||
+ /*
|
||||
+ * If L2 is forced to WT, the L2 will always be clean and we
|
||||
+ * just need to invalidate.
|
||||
+ */
|
||||
+ if (l2_wt_override)
|
||||
aurora_pa_range(start, range_end - CACHE_LINE_SIZE,
|
||||
- AURORA_FLUSH_RANGE_REG);
|
||||
- start = range_end;
|
||||
- }
|
||||
+ AURORA_INVAL_RANGE_REG);
|
||||
+ else
|
||||
+ aurora_pa_range(start, range_end - CACHE_LINE_SIZE,
|
||||
+ AURORA_FLUSH_RANGE_REG);
|
||||
+ start = range_end;
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.7.10.4
|
||||
|
@ -1,45 +0,0 @@
|
||||
From 6c8928f877a1572f16cfc8a0c055d7e16320c741 Mon Sep 17 00:00:00 2001
|
||||
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||
Date: Thu, 13 Dec 2012 18:33:06 +0100
|
||||
Subject: [PATCH] arm: cache-l2x0: aurora: Use writel_relaxed instead of
|
||||
writel
|
||||
|
||||
The use of writel instead of writel_relaxed lead to deadlock in some
|
||||
situation (SMP on Armada 370 for instance). The use of writel_relaxed
|
||||
as it was done in the rest of this driver fixes this bug.
|
||||
|
||||
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||
---
|
||||
arch/arm/mm/cache-l2x0.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
|
||||
index 7ffe943..96a1ae4 100644
|
||||
--- a/arch/arm/mm/cache-l2x0.c
|
||||
+++ b/arch/arm/mm/cache-l2x0.c
|
||||
@@ -459,8 +459,8 @@ static void aurora_pa_range(unsigned long start, unsigned long end,
|
||||
unsigned long flags;
|
||||
|
||||
raw_spin_lock_irqsave(&l2x0_lock, flags);
|
||||
- writel(start, l2x0_base + AURORA_RANGE_BASE_ADDR_REG);
|
||||
- writel(end, l2x0_base + offset);
|
||||
+ writel_relaxed(start, l2x0_base + AURORA_RANGE_BASE_ADDR_REG);
|
||||
+ writel_relaxed(end, l2x0_base + offset);
|
||||
raw_spin_unlock_irqrestore(&l2x0_lock, flags);
|
||||
|
||||
cache_sync();
|
||||
@@ -674,8 +674,9 @@ static void pl310_resume(void)
|
||||
static void aurora_resume(void)
|
||||
{
|
||||
if (!(readl(l2x0_base + L2X0_CTRL) & L2X0_CTRL_EN)) {
|
||||
- writel(l2x0_saved_regs.aux_ctrl, l2x0_base + L2X0_AUX_CTRL);
|
||||
- writel(l2x0_saved_regs.ctrl, l2x0_base + L2X0_CTRL);
|
||||
+ writel_relaxed(l2x0_saved_regs.aux_ctrl,
|
||||
+ l2x0_base + L2X0_AUX_CTRL);
|
||||
+ writel_relaxed(l2x0_saved_regs.ctrl, l2x0_base + L2X0_CTRL);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.7.10.4
|
||||
|
@ -1,88 +0,0 @@
|
||||
From 3487b074a742bc3300683e91e3ade383b659fbe9 Mon Sep 17 00:00:00 2001
|
||||
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||
Date: Tue, 4 Dec 2012 18:04:59 +0100
|
||||
Subject: [PATCH] arm: mvebu: Use dw-apb-uart instead of ns16650 as UART
|
||||
driver
|
||||
|
||||
The UART controller used in the Armada 370 and Armada XP SoCs is the
|
||||
Synopsys DesignWare 8250 (aka Synopsys DesignWare ABP UART). The
|
||||
improper use of the ns16550 can lead to a kernel oops during boot if
|
||||
a character is sent to the UART before the initialization of the
|
||||
driver. The DW APB has an extra interrupt that gets raised when
|
||||
writing to the LCR when busy. This explains why we need to use
|
||||
dw-apb-uart driver to handle this.
|
||||
|
||||
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/armada-370-xp.dtsi | 6 ++++--
|
||||
arch/arm/boot/dts/armada-xp.dtsi | 6 ++++--
|
||||
arch/arm/configs/mvebu_defconfig | 1 +
|
||||
3 files changed, 9 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi
|
||||
index cf6c48a..4c0abe8 100644
|
||||
--- a/arch/arm/boot/dts/armada-370-xp.dtsi
|
||||
+++ b/arch/arm/boot/dts/armada-370-xp.dtsi
|
||||
@@ -50,17 +50,19 @@
|
||||
ranges;
|
||||
|
||||
serial@d0012000 {
|
||||
- compatible = "ns16550";
|
||||
+ compatible = "snps,dw-apb-uart";
|
||||
reg = <0xd0012000 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <41>;
|
||||
+ reg-io-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
serial@d0012100 {
|
||||
- compatible = "ns16550";
|
||||
+ compatible = "snps,dw-apb-uart";
|
||||
reg = <0xd0012100 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <42>;
|
||||
+ reg-io-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi
|
||||
index 367aa3f..8a85ffe 100644
|
||||
--- a/arch/arm/boot/dts/armada-xp.dtsi
|
||||
+++ b/arch/arm/boot/dts/armada-xp.dtsi
|
||||
@@ -42,17 +42,19 @@
|
||||
|
||||
soc {
|
||||
serial@d0012200 {
|
||||
- compatible = "ns16550";
|
||||
+ compatible = "snps,dw-apb-uart";
|
||||
reg = <0xd0012200 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <43>;
|
||||
+ reg-io-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
serial@d0012300 {
|
||||
- compatible = "ns16550";
|
||||
+ compatible = "snps,dw-apb-uart";
|
||||
reg = <0xd0012300 0x100>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <44>;
|
||||
+ reg-io-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
diff --git a/arch/arm/configs/mvebu_defconfig b/arch/arm/configs/mvebu_defconfig
|
||||
index a702fb3..3ba35f1 100644
|
||||
--- a/arch/arm/configs/mvebu_defconfig
|
||||
+++ b/arch/arm/configs/mvebu_defconfig
|
||||
@@ -34,6 +34,7 @@ CONFIG_MARVELL_PHY=y
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
+CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_MV64XXX=y
|
||||
CONFIG_GPIOLIB=y
|
||||
--
|
||||
1.7.10.4
|
||||
|
Loading…
Reference in New Issue
Block a user