sh_eth: stop reading ECMR in sh_eth_dev_init()
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Sun, 10 Jan 2016 21:28:14 +0000 (00:28 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Jan 2016 22:31:09 +0000 (17:31 -0500)
The code in sh_eth_dev_init()  twiddling the ECMR bits always looked a bit
strange to me:  if one intends to respect 'mdp->duplex', why save old value
of the ECMR.DM bit? As all the other bits are zeroed anyway, we don't really
need to read ECMR before writing to it.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/renesas/sh_eth.c

index 6a8fc0f..9c1e290 100644 (file)
@@ -1289,7 +1289,6 @@ static int sh_eth_dev_init(struct net_device *ndev, bool start)
 {
        int ret = 0;
        struct sh_eth_private *mdp = netdev_priv(ndev);
-       u32 val;
 
        /* Soft Reset */
        ret = sh_eth_reset(ndev);
@@ -1342,10 +1341,8 @@ static int sh_eth_dev_init(struct net_device *ndev, bool start)
        }
 
        /* PAUSE Prohibition */
-       val = (sh_eth_read(ndev, ECMR) & ECMR_DM) |
-               ECMR_ZPF | (mdp->duplex ? ECMR_DM : 0) | ECMR_TE | ECMR_RE;
-
-       sh_eth_write(ndev, val, ECMR);
+       sh_eth_write(ndev, ECMR_ZPF | (mdp->duplex ? ECMR_DM : 0) |
+                    ECMR_TE | ECMR_RE, ECMR);
 
        if (mdp->cd->set_rate)
                mdp->cd->set_rate(ndev);