On Wed, May 08, 2024 at 12:58:31PM +0200, Niklas Söderlund wrote: > On 2024-05-08 02:55:44 +0200, Andrew Lunn wrote: > > > +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? > > I agree enable more PM stuff is a good candidate to follow initial > entablement. But these pm_ calls are not pointless, I still need to deal > with power. If I remove the pm_ calls things starts to fail. That is odd. Why does it fail? What is turning the power off? Did i miss you registering some callbacks? Andrew