|
@@ -3475,6 +3475,8 @@ failed_regulator:
|
|
|
failed_clk_ipg:
|
|
|
fec_enet_clk_enable(ndev, false);
|
|
|
failed_clk:
|
|
|
+ if (of_phy_is_fixed_link(np))
|
|
|
+ of_phy_deregister_fixed_link(np);
|
|
|
failed_phy:
|
|
|
of_node_put(phy_node);
|
|
|
failed_ioremap:
|
|
@@ -3488,6 +3490,7 @@ fec_drv_remove(struct platform_device *pdev)
|
|
|
{
|
|
|
struct net_device *ndev = platform_get_drvdata(pdev);
|
|
|
struct fec_enet_private *fep = netdev_priv(ndev);
|
|
|
+ struct device_node *np = pdev->dev.of_node;
|
|
|
|
|
|
cancel_work_sync(&fep->tx_timeout_work);
|
|
|
fec_ptp_stop(pdev);
|
|
@@ -3495,6 +3498,8 @@ fec_drv_remove(struct platform_device *pdev)
|
|
|
fec_enet_mii_remove(fep);
|
|
|
if (fep->reg_phy)
|
|
|
regulator_disable(fep->reg_phy);
|
|
|
+ if (of_phy_is_fixed_link(np))
|
|
|
+ of_phy_deregister_fixed_link(np);
|
|
|
of_node_put(fep->phy_node);
|
|
|
free_netdev(ndev);
|
|
|
|