[mcs814x] nuport-mac: rework PHY interrupt configuration to avoid races
authorflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 8 Aug 2012 21:51:18 +0000 (21:51 +0000)
committerflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 8 Aug 2012 21:51:18 +0000 (21:51 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33070 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/mcs814x/files-3.3/drivers/net/ethernet/mcs8140/nuport_mac.c

index 8cd3d0e..833e6fa 100644 (file)
@@ -765,7 +765,12 @@ static int nuport_mac_open(struct net_device *dev)
                goto out_emac_clk;
        }
 
-       phy_start(priv->phydev);
+       ret = request_irq(priv->tx_irq, &nuport_mac_tx_interrupt,
+                               0, dev->name, dev);
+       if (ret) {
+               netdev_err(dev, "unable to request rx interrupt\n");
+               goto out_link_irq;
+       }
 
        /* Enable link interrupt monitoring for our PHY address */
        reg = LINK_INT_EN | (priv->phydev->addr << LINK_PHY_ADDR_SHIFT);
@@ -779,12 +784,7 @@ static int nuport_mac_open(struct net_device *dev)
        nuport_mac_writel(LINK_POLL_MASK, LINK_INT_POLL_TIME);
        spin_unlock_irqrestore(&priv->lock, flags);
 
-       ret = request_irq(priv->tx_irq, &nuport_mac_tx_interrupt,
-                               0, dev->name, dev);
-       if (ret) {
-               netdev_err(dev, "unable to request rx interrupt\n");
-               goto out_link_irq;
-       }
+       phy_start(priv->phydev);
 
        napi_enable(&priv->napi);