]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - drivers/net/ethernet/amd/xgbe/xgbe-drv.c
amd-xgbe: Add PCI device support
[thirdparty/kernel/stable.git] / drivers / net / ethernet / amd / xgbe / xgbe-drv.c
index a43e9303be90675a8c3a6e2c02330400d700f60f..efa01a5a81b66647b92cbe68a79bb6f38a795498 100644 (file)
@@ -374,6 +374,10 @@ static irqreturn_t xgbe_isr(int irq, void *data)
                }
        }
 
+       /* If there is not a separate AN irq, handle it here */
+       if (pdata->dev_irq == pdata->an_irq)
+               pdata->phy_if.an_isr(irq, pdata);
+
 isr_done:
        return IRQ_HANDLED;
 }
@@ -864,16 +868,16 @@ static int xgbe_start(struct xgbe_prv_data *pdata)
 
        hw_if->init(pdata);
 
-       ret = phy_if->phy_start(pdata);
-       if (ret)
-               goto err_phy;
-
        xgbe_napi_enable(pdata, 1);
 
        ret = xgbe_request_irqs(pdata);
        if (ret)
                goto err_napi;
 
+       ret = phy_if->phy_start(pdata);
+       if (ret)
+               goto err_irqs;
+
        hw_if->enable_tx(pdata);
        hw_if->enable_rx(pdata);
 
@@ -886,12 +890,12 @@ static int xgbe_start(struct xgbe_prv_data *pdata)
 
        return 0;
 
+err_irqs:
+       xgbe_free_irqs(pdata);
+
 err_napi:
        xgbe_napi_disable(pdata, 1);
 
-       phy_if->phy_stop(pdata);
-
-err_phy:
        hw_if->exit(pdata);
 
        return ret;