On 2024-05-08 14:33:24 +0200, Andrew Lunn wrote: > 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? I agree it's odd and I will try to find out. If I remove all pm_ calls and the include of pm_runtime.h register reads from the device do no longer works, so operating the device fails. Even if I dig out the root cause for this, is there any harm in keeping the pm_ operations in the initial entablement? > > Andrew -- Kind Regards, Niklas Söderlund