net: sh_eth: fix cannot work half-duplex mode
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Tue, 5 Jul 2011 20:33:51 +0000 (20:33 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 Jul 2011 06:41:17 +0000 (23:41 -0700)
When link was down, the bit of DM in ECMR was always set.
So, we could not use half-duplex mode on the controller.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sh_eth.c

index 8a72a979ee711262a613ddbe6e0fd3276b6f77d4..35bbc2718c13a72aed23b222568892651c92e765 100644 (file)
@@ -1184,8 +1184,8 @@ static void sh_eth_adjust_link(struct net_device *ndev)
                                mdp->cd->set_rate(ndev);
                }
                if (mdp->link == PHY_DOWN) {
-                       sh_eth_write(ndev, (sh_eth_read(ndev, ECMR) & ~ECMR_TXF)
-                                       | ECMR_DM, ECMR);
+                       sh_eth_write(ndev,
+                               (sh_eth_read(ndev, ECMR) & ~ECMR_TXF), ECMR);
                        new_state = 1;
                        mdp->link = phydev->link;
                }