From ecf230710f51a442d2bb1b59d43cd6f7335a8e92 Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Thu, 10 Jan 2013 17:20:25 +0000 Subject: [PATCH] mvebu: update to 3.8-rc3 Signed-off-by: Florian Fainelli SVN-Revision: 35086 --- .../001-sctp_fix_default_choice.patch | 33 ------- target/linux/mvebu/Makefile | 2 +- ...bu_remove_inappropriate_init_tagging.patch | 28 ------ .../002-dma_mv_xor_fix_error_handling.patch | 38 -------- ...dma_mv_xor_fix_error_handling_clocks.patch | 35 -------- ...016-arm_cache_l2x0_aurora_invalidate.patch | 52 ----------- ...cache_l2x0_aurora_use_writel_relaxed.patch | 45 ---------- .../018-arm_mvebu_dw_apb_uart.patch | 88 ------------------- 8 files changed, 1 insertion(+), 320 deletions(-) delete mode 100644 target/linux/generic/patches-3.8/001-sctp_fix_default_choice.patch 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 diff --git a/target/linux/generic/patches-3.8/001-sctp_fix_default_choice.patch b/target/linux/generic/patches-3.8/001-sctp_fix_default_choice.patch deleted file mode 100644 index cea064cc51e..00000000000 --- a/target/linux/generic/patches-3.8/001-sctp_fix_default_choice.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 7a70ff39328cd24b9c7db11eb4ae1a18c698a538 Mon Sep 17 00:00:00 2001 -From: Florian Fainelli -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 ---- - 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 - diff --git a/target/linux/mvebu/Makefile b/target/linux/mvebu/Makefile index 4ff5fe20a17..8da089ca352 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 -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 33787f266ba..00000000000 --- a/target/linux/mvebu/patches-3.8/001-clk_mvebu_remove_inappropriate_init_tagging.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Joshua Coombs - -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 -Signed-off-by: Andrew Lunn ---- - 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 f5940fbb1d3..00000000000 --- a/target/linux/mvebu/patches-3.8/002-dma_mv_xor_fix_error_handling.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Thomas Petazzoni - -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 ---- - 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 9bee8acded6..00000000000 --- 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 - -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 ---- - 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 7e7c5fda8ba..00000000000 --- 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 -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 ---- - 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 5f5ba11d793..00000000000 --- 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 -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 ---- - 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 29c199cad4c..00000000000 --- 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 -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 ---- - 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 -