> +static int rtsn_probe(struct platform_device *pdev) > +{ > + pm_runtime_enable(&pdev->dev); > + pm_runtime_get_sync(&pdev->dev); > +static int rtsn_remove(struct platform_device *pdev) > +{ > + struct rtsn_private *priv = platform_get_drvdata(pdev); > + > + unregister_netdev(priv->ndev); > + rtsn_mdio_free(priv); > + rcar_gen4_ptp_unregister(priv->ptp_priv); > + rtsn_change_mode(priv, OCR_OPC_DISABLE); > + netif_napi_del(&priv->napi); > + > + pm_runtime_put_sync(&pdev->dev); > + pm_runtime_disable(&pdev->dev); These appear to be the only two places you do any pm_ stuff. So it seems pointless. Maybe delete this for the moment, and come back later to add proper runtime power management? Andrew