diff options
-rw-r--r-- | drivers/net/ethernet/renesas/sh_eth.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c index e4bff181c910..6a9509ccd33b 100644 --- a/drivers/net/ethernet/renesas/sh_eth.c +++ b/drivers/net/ethernet/renesas/sh_eth.c @@ -2772,6 +2772,9 @@ static int sh_eth_drv_probe(struct platform_device *pdev) if (!ndev) return -ENOMEM; + pm_runtime_enable(&pdev->dev); + pm_runtime_get_sync(&pdev->dev); + /* The sh Ether-specific entries in the device structure. */ ndev->base_addr = res->start; devno = pdev->id; @@ -2799,8 +2802,6 @@ static int sh_eth_drv_probe(struct platform_device *pdev) spin_lock_init(&mdp->lock); mdp->pdev = pdev; - pm_runtime_enable(&pdev->dev); - pm_runtime_resume(&pdev->dev); if (pdev->dev.of_node) pd = sh_eth_parse_dt(&pdev->dev); @@ -2898,6 +2899,7 @@ static int sh_eth_drv_probe(struct platform_device *pdev) netdev_info(ndev, "Base address at 0x%x, %pM, IRQ %d.\n", (u32)ndev->base_addr, ndev->dev_addr, ndev->irq); + pm_runtime_put(&pdev->dev); platform_set_drvdata(pdev, ndev); return ret; @@ -2911,6 +2913,8 @@ out_release: if (ndev) free_netdev(ndev); + pm_runtime_put(&pdev->dev); + pm_runtime_disable(&pdev->dev); return ret; } |