bcm53xx: 3.18: add early support for Buffalo WZR-900DHP
[openwrt/svn-archive/archive.git] / target / linux / brcm47xx / patches-3.10 / 211-b44-start_phy.patch
1 --- a/drivers/net/ethernet/broadcom/b44.c
2 +++ b/drivers/net/ethernet/broadcom/b44.c
3 @@ -576,7 +576,6 @@ static void b44_check_phy(struct b44 *bp
4 else
5 val &= ~TX_CTRL_DUPLEX;
6 bw32(bp, B44_TX_CTRL, val);
7 - netif_carrier_on(bp->dev);
8 b44_link_report(bp);
9 }
10 return;
11 @@ -1511,6 +1510,10 @@ static int b44_open(struct net_device *d
12 add_timer(&bp->timer);
13
14 b44_enable_ints(bp);
15 +
16 + if (bp->flags & B44_FLAG_EXTERNAL_PHY)
17 + phy_start(bp->phydev);
18 +
19 netif_start_queue(dev);
20 out:
21 return err;
22 @@ -1673,6 +1676,9 @@ static int b44_close(struct net_device *
23
24 netif_stop_queue(dev);
25
26 + if (bp->flags & B44_FLAG_EXTERNAL_PHY)
27 + phy_stop(bp->phydev);
28 +
29 napi_disable(&bp->napi);
30
31 del_timer_sync(&bp->timer);
32 @@ -2251,8 +2257,13 @@ static void b44_adjust_link(struct net_d
33 }
34
35 if (status_changed) {
36 - b44_check_phy(bp);
37 - phy_print_status(phydev);
38 + u32 val = br32(bp, B44_TX_CTRL);
39 + if (bp->flags & B44_FLAG_FULL_DUPLEX)
40 + val |= TX_CTRL_DUPLEX;
41 + else
42 + val &= ~TX_CTRL_DUPLEX;
43 + bw32(bp, B44_TX_CTRL, val);
44 + b44_link_report(bp);
45 }
46 }
47