From ecf230710f51a442d2bb1b59d43cd6f7335a8e92 Mon Sep 17 00:00:00 2001
From: Florian Fainelli <florian@openwrt.org>
Date: Thu, 10 Jan 2013 17:20:25 +0000
Subject: mvebu: update to 3.8-rc3

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 35086
---
 ...k_mvebu_remove_inappropriate_init_tagging.patch | 28 -------
 .../002-dma_mv_xor_fix_error_handling.patch        | 38 ----------
 .../003-dma_mv_xor_fix_error_handling_clocks.patch | 35 ---------
 .../016-arm_cache_l2x0_aurora_invalidate.patch     | 52 -------------
 ...-arm_cache_l2x0_aurora_use_writel_relaxed.patch | 45 -----------
 .../patches-3.8/018-arm_mvebu_dw_apb_uart.patch    | 88 ----------------------
 6 files changed, 286 deletions(-)
 delete mode 100644 target/linux/mvebu/patches-3.8/001-clk_mvebu_remove_inappropriate_init_tagging.patch
 delete mode 100644 target/linux/mvebu/patches-3.8/002-dma_mv_xor_fix_error_handling.patch
 delete mode 100644 target/linux/mvebu/patches-3.8/003-dma_mv_xor_fix_error_handling_clocks.patch
 delete mode 100644 target/linux/mvebu/patches-3.8/016-arm_cache_l2x0_aurora_invalidate.patch
 delete mode 100644 target/linux/mvebu/patches-3.8/017-arm_cache_l2x0_aurora_use_writel_relaxed.patch
 delete mode 100644 target/linux/mvebu/patches-3.8/018-arm_mvebu_dw_apb_uart.patch

(limited to 'target/linux/mvebu/patches-3.8')

diff --git a/target/linux/mvebu/patches-3.8/001-clk_mvebu_remove_inappropriate_init_tagging.patch b/target/linux/mvebu/patches-3.8/001-clk_mvebu_remove_inappropriate_init_tagging.patch
deleted file mode 100644
index 33787f266b..0000000000
--- a/target/linux/mvebu/patches-3.8/001-clk_mvebu_remove_inappropriate_init_tagging.patch
+++ /dev/null
@@ -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
diff --git a/target/linux/mvebu/patches-3.8/002-dma_mv_xor_fix_error_handling.patch b/target/linux/mvebu/patches-3.8/002-dma_mv_xor_fix_error_handling.patch
deleted file mode 100644
index f5940fbb1d..0000000000
--- a/target/linux/mvebu/patches-3.8/002-dma_mv_xor_fix_error_handling.patch
+++ /dev/null
@@ -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
diff --git a/target/linux/mvebu/patches-3.8/003-dma_mv_xor_fix_error_handling_clocks.patch b/target/linux/mvebu/patches-3.8/003-dma_mv_xor_fix_error_handling_clocks.patch
deleted file mode 100644
index 9bee8acded..0000000000
--- a/target/linux/mvebu/patches-3.8/003-dma_mv_xor_fix_error_handling_clocks.patch
+++ /dev/null
@@ -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
diff --git a/target/linux/mvebu/patches-3.8/016-arm_cache_l2x0_aurora_invalidate.patch b/target/linux/mvebu/patches-3.8/016-arm_cache_l2x0_aurora_invalidate.patch
deleted file mode 100644
index 7e7c5fda8b..0000000000
--- a/target/linux/mvebu/patches-3.8/016-arm_cache_l2x0_aurora_invalidate.patch
+++ /dev/null
@@ -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
-
diff --git a/target/linux/mvebu/patches-3.8/017-arm_cache_l2x0_aurora_use_writel_relaxed.patch b/target/linux/mvebu/patches-3.8/017-arm_cache_l2x0_aurora_use_writel_relaxed.patch
deleted file mode 100644
index 5f5ba11d79..0000000000
--- a/target/linux/mvebu/patches-3.8/017-arm_cache_l2x0_aurora_use_writel_relaxed.patch
+++ /dev/null
@@ -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
-
diff --git a/target/linux/mvebu/patches-3.8/018-arm_mvebu_dw_apb_uart.patch b/target/linux/mvebu/patches-3.8/018-arm_mvebu_dw_apb_uart.patch
deleted file mode 100644
index 29c199cad4..0000000000
--- a/target/linux/mvebu/patches-3.8/018-arm_mvebu_dw_apb_uart.patch
+++ /dev/null
@@ -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
-
-- 
cgit v1.2.3