]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.8-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Mar 2013 22:17:59 +0000 (15:17 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Mar 2013 22:17:59 +0000 (15:17 -0700)
added patches:
arm-kirkwood-fix-to-retain-gbe-mac-addresses-for-dt-kernels.patch

queue-3.8/arm-kirkwood-fix-to-retain-gbe-mac-addresses-for-dt-kernels.patch [new file with mode: 0644]
queue-3.8/series

diff --git a/queue-3.8/arm-kirkwood-fix-to-retain-gbe-mac-addresses-for-dt-kernels.patch b/queue-3.8/arm-kirkwood-fix-to-retain-gbe-mac-addresses-for-dt-kernels.patch
new file mode 100644 (file)
index 0000000..ee95982
--- /dev/null
@@ -0,0 +1,77 @@
+From 7bf5b408b419fc849578e6e9fbd221bf43638eb6 Mon Sep 17 00:00:00 2001
+From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
+Date: Wed, 30 Jan 2013 21:29:58 +0100
+Subject: ARM: kirkwood: fix to retain gbe MAC addresses for DT kernels
+
+From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
+
+commit 7bf5b408b419fc849578e6e9fbd221bf43638eb6 upstream.
+
+The ethernet controller used on kirkwood looses its MAC address
+register contents when the corresponding clock is gated. As soon as
+mv643xx_eth is built as module, the clock gets gated and when loading
+the module, the MAC address is gone.
+
+Proper DT support for the mv643xx_eth driver is expected soon, so we add
+a workaround to always enable ge0/ge1 clocks on kirkwood. This workaround
+is also already used on non-DT kirkwood kernels.
+
+Reported-by: Simon Baatz <gmbnomis@gmail.com>
+Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
+Tested-by: Simon Baatz <gmbnomis@gmail.com>
+Signed-off-by: Jason Cooper <jason@lakedaemon.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-kirkwood/board-dt.c |   24 +++++++++++++++---------
+ 1 file changed, 15 insertions(+), 9 deletions(-)
+
+--- a/arch/arm/mach-kirkwood/board-dt.c
++++ b/arch/arm/mach-kirkwood/board-dt.c
+@@ -41,16 +41,12 @@ static void __init kirkwood_legacy_clk_i
+       struct device_node *np = of_find_compatible_node(
+               NULL, NULL, "marvell,kirkwood-gating-clock");
+-
+       struct of_phandle_args clkspec;
++      struct clk *clk;
+       clkspec.np = np;
+       clkspec.args_count = 1;
+-      clkspec.args[0] = CGC_BIT_GE0;
+-      orion_clkdev_add(NULL, "mv643xx_eth_port.0",
+-                       of_clk_get_from_provider(&clkspec));
+-
+       clkspec.args[0] = CGC_BIT_PEX0;
+       orion_clkdev_add("0", "pcie",
+                        of_clk_get_from_provider(&clkspec));
+@@ -63,14 +59,24 @@ static void __init kirkwood_legacy_clk_i
+       orion_clkdev_add("1", "pcie",
+                        of_clk_get_from_provider(&clkspec));
+-      clkspec.args[0] = CGC_BIT_GE1;
+-      orion_clkdev_add(NULL, "mv643xx_eth_port.1",
+-                       of_clk_get_from_provider(&clkspec));
+-
+       clkspec.args[0] = CGC_BIT_SDIO;
+       orion_clkdev_add(NULL, "mvsdio",
+                        of_clk_get_from_provider(&clkspec));
++      /*
++       * The ethernet interfaces forget the MAC address assigned by
++       * u-boot if the clocks are turned off. Until proper DT support
++       * is available we always enable them for now.
++       */
++      clkspec.args[0] = CGC_BIT_GE0;
++      clk = of_clk_get_from_provider(&clkspec);
++      orion_clkdev_add(NULL, "mv643xx_eth_port.0", clk);
++      clk_prepare_enable(clk);
++
++      clkspec.args[0] = CGC_BIT_GE1;
++      clk = of_clk_get_from_provider(&clkspec);
++      orion_clkdev_add(NULL, "mv643xx_eth_port.1", clk);
++      clk_prepare_enable(clk);
+ }
+ static void __init kirkwood_of_clk_init(void)
index 6e6909347f1b78f5dc88fd1de0698467daa4c4f4..c57910c8c6ff640e9ed8b72fff25e76f9e5200fb 100644 (file)
@@ -25,3 +25,4 @@ tty-serial-add-support-for-altera-serial-port.patch
 tty-disable-debugging-warning.patch
 tty-do-not-reset-master-s-packet-mode.patch
 fix-4-port-and-add-support-for-8-port-unknown-pci-serial-port-cards.patch
+arm-kirkwood-fix-to-retain-gbe-mac-addresses-for-dt-kernels.patch