]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Dec 2013 00:19:30 +0000 (16:19 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Dec 2013 00:19:30 +0000 (16:19 -0800)
added patches:
net-mv643xx_eth-add-missing-phy_addr_set-in-dt-mode.patch

queue-3.12/net-mv643xx_eth-add-missing-phy_addr_set-in-dt-mode.patch [new file with mode: 0644]
queue-3.12/series [new file with mode: 0644]

diff --git a/queue-3.12/net-mv643xx_eth-add-missing-phy_addr_set-in-dt-mode.patch b/queue-3.12/net-mv643xx_eth-add-missing-phy_addr_set-in-dt-mode.patch
new file mode 100644 (file)
index 0000000..88beb0a
--- /dev/null
@@ -0,0 +1,43 @@
+From foo@baz Thu Dec  5 16:16:37 PST 2013
+From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
+Date: Mon, 4 Nov 2013 17:27:19 -0700
+Subject: net: mv643xx_eth: Add missing phy_addr_set in DT mode
+
+From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
+
+Commit cc9d4598 'net: mv643xx_eth: use of_phy_connect if phy_node
+present' made the call to phy_scan optional, if the DT has a link to
+the phy node.
+
+However phy_scan has the side effect of calling phy_addr_set, which
+writes the phy MDIO address to the ethernet controller. If phy_addr_set
+is not called, and the bootloader has not set the correct address then
+the driver will fail to function.
+
+Tested on Kirkwood.
+
+Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
+Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
+Tested-by: Arnaud Ebalard <arno@natisbad.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/ethernet/marvell/mv643xx_eth.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
+index 2c210ec..00e43b5 100644
+--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
++++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
+@@ -2890,6 +2890,7 @@ static int mv643xx_eth_probe(struct platform_device *pdev)
+                                        PHY_INTERFACE_MODE_GMII);
+               if (!mp->phy)
+                       err = -ENODEV;
++              phy_addr_set(mp, mp->phy->addr);
+       } else if (pd->phy_addr != MV643XX_ETH_PHY_NONE) {
+               mp->phy = phy_scan(mp, pd->phy_addr);
+-- 
+1.7.11.7
+
+
diff --git a/queue-3.12/series b/queue-3.12/series
new file mode 100644 (file)
index 0000000..0325c5c
--- /dev/null
@@ -0,0 +1 @@
+net-mv643xx_eth-add-missing-phy_addr_set-in-dt-mode.patch