aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/apm/xgene/xgene_enet_hw.c3
-rw-r--r--drivers/net/ethernet/apm/xgene/xgene_enet_main.c5
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_hw.c b/drivers/net/ethernet/apm/xgene/xgene_enet_hw.c
index a626c4315a89..cfa37041ab71 100644
--- a/drivers/net/ethernet/apm/xgene/xgene_enet_hw.c
+++ b/drivers/net/ethernet/apm/xgene/xgene_enet_hw.c
@@ -801,6 +801,9 @@ int xgene_enet_mdio_config(struct xgene_enet_pdata *pdata)
801 801
802void xgene_enet_mdio_remove(struct xgene_enet_pdata *pdata) 802void xgene_enet_mdio_remove(struct xgene_enet_pdata *pdata)
803{ 803{
804 if (pdata->phy_dev)
805 phy_disconnect(pdata->phy_dev);
806
804 mdiobus_unregister(pdata->mdio_bus); 807 mdiobus_unregister(pdata->mdio_bus);
805 mdiobus_free(pdata->mdio_bus); 808 mdiobus_free(pdata->mdio_bus);
806 pdata->mdio_bus = NULL; 809 pdata->mdio_bus = NULL;
diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
index 299eb4315fe6..a02ea7f8fdae 100644
--- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
+++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
@@ -1277,9 +1277,10 @@ static int xgene_enet_remove(struct platform_device *pdev)
1277 mac_ops->tx_disable(pdata); 1277 mac_ops->tx_disable(pdata);
1278 1278
1279 xgene_enet_napi_del(pdata); 1279 xgene_enet_napi_del(pdata);
1280 xgene_enet_mdio_remove(pdata); 1280 if (pdata->phy_mode == PHY_INTERFACE_MODE_RGMII)
1281 xgene_enet_delete_desc_rings(pdata); 1281 xgene_enet_mdio_remove(pdata);
1282 unregister_netdev(ndev); 1282 unregister_netdev(ndev);
1283 xgene_enet_delete_desc_rings(pdata);
1283 pdata->port_ops->shutdown(pdata); 1284 pdata->port_ops->shutdown(pdata);
1284 free_netdev(ndev); 1285 free_netdev(ndev);
1285 1286