sh_eth: use EDMR_SRST_GETHER in sh_eth_check_reset()
[cascardo/linux.git] / drivers / net / ethernet / renesas / sh_eth.c
index 004e2d7..3d7a40a 100644 (file)
@@ -899,7 +899,7 @@ static int sh_eth_check_reset(struct net_device *ndev)
        int cnt = 100;
 
        while (cnt > 0) {
-               if (!(sh_eth_read(ndev, EDMR) & 0x3))
+               if (!(sh_eth_read(ndev, EDMR) & EDMR_SRST_GETHER))
                        break;
                mdelay(1);
                cnt--;
@@ -1229,7 +1229,7 @@ ring_free:
        return -ENOMEM;
 }
 
-static int sh_eth_dev_init(struct net_device *ndev, bool start)
+static int sh_eth_dev_init(struct net_device *ndev)
 {
        struct sh_eth_private *mdp = netdev_priv(ndev);
        int ret;
@@ -1279,10 +1279,8 @@ static int sh_eth_dev_init(struct net_device *ndev, bool start)
                     RFLR);
 
        sh_eth_modify(ndev, EESR, 0, 0);
-       if (start) {
-               mdp->irq_enabled = true;
-               sh_eth_write(ndev, mdp->cd->eesipr_value, EESIPR);
-       }
+       mdp->irq_enabled = true;
+       sh_eth_write(ndev, mdp->cd->eesipr_value, EESIPR);
 
        /* PAUSE Prohibition */
        sh_eth_write(ndev, ECMR_ZPF | (mdp->duplex ? ECMR_DM : 0) |
@@ -1295,8 +1293,7 @@ static int sh_eth_dev_init(struct net_device *ndev, bool start)
        sh_eth_write(ndev, mdp->cd->ecsr_value, ECSR);
 
        /* E-MAC Interrupt Enable register */
-       if (start)
-               sh_eth_write(ndev, mdp->cd->ecsipr_value, ECSIPR);
+       sh_eth_write(ndev, mdp->cd->ecsipr_value, ECSIPR);
 
        /* Set MAC address */
        update_mac_address(ndev);
@@ -1309,10 +1306,8 @@ static int sh_eth_dev_init(struct net_device *ndev, bool start)
        if (mdp->cd->tpauser)
                sh_eth_write(ndev, TPAUSER_UNLIMITED, TPAUSER);
 
-       if (start) {
-               /* Setting the Rx mode will start the Rx process. */
-               sh_eth_write(ndev, EDRRR_R, EDRRR);
-       }
+       /* Setting the Rx mode will start the Rx process. */
+       sh_eth_write(ndev, EDRRR_R, EDRRR);
 
        return ret;
 }
@@ -2194,17 +2189,13 @@ static int sh_eth_set_ringparam(struct net_device *ndev,
                                   __func__);
                        return ret;
                }
-               ret = sh_eth_dev_init(ndev, false);
+               ret = sh_eth_dev_init(ndev);
                if (ret < 0) {
                        netdev_err(ndev, "%s: sh_eth_dev_init failed.\n",
                                   __func__);
                        return ret;
                }
 
-               mdp->irq_enabled = true;
-               sh_eth_write(ndev, mdp->cd->eesipr_value, EESIPR);
-               /* Setting the Rx mode will start the Rx process. */
-               sh_eth_write(ndev, EDRRR_R, EDRRR);
                netif_device_attach(ndev);
        }
 
@@ -2250,7 +2241,7 @@ static int sh_eth_open(struct net_device *ndev)
                goto out_free_irq;
 
        /* device init */
-       ret = sh_eth_dev_init(ndev, true);
+       ret = sh_eth_dev_init(ndev);
        if (ret)
                goto out_free_irq;
 
@@ -2303,7 +2294,7 @@ static void sh_eth_tx_timeout(struct net_device *ndev)
        }
 
        /* device init */
-       sh_eth_dev_init(ndev, true);
+       sh_eth_dev_init(ndev);
 
        netif_start_queue(ndev);
 }