@@ -2786,6 +2786,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;
@@ -2813,8 +2816,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);
@@ -2912,6 +2913,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;
@@ -2925,6 +2927,8 @@ out_release:
if (ndev)
free_netdev(ndev);
+ pm_runtime_put(&pdev->dev);
+ pm_runtime_disable(&pdev->dev);
return ret;
}