Commit 1d3f41ea authored by Hauke Mehrtens's avatar Hauke Mehrtens Committed by David S. Miller

b44: always set duplex mode why phy changes

Without this patch b44_check_phy() was called when the phy called the
adjust callback. This method only change the mac duplex mode when the
carrier was off. When the phy changed the duplex mode after the carrier
was on the mac was not changed. This happened when an external phy was
used.
Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 25d54fe5
...@@ -2229,7 +2229,12 @@ static void b44_adjust_link(struct net_device *dev) ...@@ -2229,7 +2229,12 @@ static void b44_adjust_link(struct net_device *dev)
} }
if (status_changed) { if (status_changed) {
b44_check_phy(bp); u32 val = br32(bp, B44_TX_CTRL);
if (bp->flags & B44_FLAG_FULL_DUPLEX)
val |= TX_CTRL_DUPLEX;
else
val &= ~TX_CTRL_DUPLEX;
bw32(bp, B44_TX_CTRL, val);
phy_print_status(phydev); phy_print_status(phydev);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment