brcm47xx: b44: start the phy
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 23 Feb 2014 16:58:12 +0000 (16:58 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 23 Feb 2014 16:58:12 +0000 (16:58 +0000)
We did not start the PHY when an external phy was in use. Without this
patch the driver uses half duplex mode and the switch uses full duplex
mode, which causes problems.
Thank you fback for spotting this problem.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39719 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/brcm47xx/patches-3.10/211-b44-start_phy.patch [new file with mode: 0644]

diff --git a/target/linux/brcm47xx/patches-3.10/211-b44-start_phy.patch b/target/linux/brcm47xx/patches-3.10/211-b44-start_phy.patch
new file mode 100644 (file)
index 0000000..4668f16
--- /dev/null
@@ -0,0 +1,23 @@
+--- a/drivers/net/ethernet/broadcom/b44.c
++++ b/drivers/net/ethernet/broadcom/b44.c
+@@ -1511,6 +1511,10 @@ static int b44_open(struct net_device *d
+       add_timer(&bp->timer);
+       b44_enable_ints(bp);
++
++      if (bp->flags & B44_FLAG_EXTERNAL_PHY)
++              phy_start(bp->phydev);
++
+       netif_start_queue(dev);
+ out:
+       return err;
+@@ -1673,6 +1677,9 @@ static int b44_close(struct net_device *
+       netif_stop_queue(dev);
++      if (bp->flags & B44_FLAG_EXTERNAL_PHY)
++              phy_stop(bp->phydev);
++
+       napi_disable(&bp->napi);
+       del_timer_sync(&bp->timer);