summaryrefslogtreecommitdiffstats
path: root/target/linux/mvebu
diff options
context:
space:
mode:
authorflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-01-10 17:20:25 +0000
committerflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-01-10 17:20:25 +0000
commit4847eb75fcc03dd6cdba637bc00c0d55c0864fc5 (patch)
tree252c444261e29b4a36e08604d35479928ddd0ae0 /target/linux/mvebu
parent8e11ab7f8c9f48deec7eedea2dac06301383ca0c (diff)
mvebu: update to 3.8-rc3
Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35086 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/mvebu')
-rw-r--r--target/linux/mvebu/Makefile2
-rw-r--r--target/linux/mvebu/patches-3.8/001-clk_mvebu_remove_inappropriate_init_tagging.patch28
-rw-r--r--target/linux/mvebu/patches-3.8/002-dma_mv_xor_fix_error_handling.patch38
-rw-r--r--target/linux/mvebu/patches-3.8/003-dma_mv_xor_fix_error_handling_clocks.patch35
-rw-r--r--target/linux/mvebu/patches-3.8/016-arm_cache_l2x0_aurora_invalidate.patch52
-rw-r--r--target/linux/mvebu/patches-3.8/017-arm_cache_l2x0_aurora_use_writel_relaxed.patch45
-rw-r--r--target/linux/mvebu/patches-3.8/018-arm_mvebu_dw_apb_uart.patch88
7 files changed, 1 insertions, 287 deletions
diff --git a/target/linux/mvebu/Makefile b/target/linux/mvebu/Makefile
index 4ff5fe20a..8da089ca3 100644
--- a/target/linux/mvebu/Makefile
+++ b/target/linux/mvebu/Makefile
@@ -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
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 33787f266..000000000
--- 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 f5940fbb1..000000000
--- 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 9bee8acde..000000000
--- 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 7e7c5fda8..000000000
--- 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 5f5ba11d7..000000000
--- 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 29c199cad..000000000
--- 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
-