Hi Mark, On Wed, Dec 4, 2019 at 12:25 PM Mark Brown <broonie@xxxxxxxxxx> wrote: > On Tue, Dec 03, 2019 at 07:29:45PM +0100, Geert Uytterhoeven wrote: > > On Tue, Dec 3, 2019 at 3:19 PM Mark Brown <broonie@xxxxxxxxxx> wrote: > > > > + pm_runtime_put(&pdev->dev); > > > > + pm_runtime_disable(&pdev->dev); > > > > There seems to be no purpose in the runtime PM code in this > > > driver, there's no PM operations of any kind and the driver holds > > > a runtime PM reference for the entire lifetime of the device. > > > It matters for the clock domain (assumed the module clock is not always > > marked as a critical clock). > > That seems like a problem with what the clock domains are doing > surely? The default is supposed to be that if runtime PM isn't > enabled we get the behaviour the driver is manually implementing Unfortunately not: if the driver doesn't implement Runtime PM, the default is to not do anything. Later, unused clocks will be disabled, and the device will stop functioning. > here. Besides, if this is actually impacting power management > I'd expect us to be letting the IP idle rather than holding it > powered up all the time. That would be better, definitely. However, that's just an optimization over holding it powered up all the time. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds