On Wed, Feb 28, 2018 at 9:32 PM, Geert Uytterhoeven <geert at linux-m68k.org> wrote: > Hi Tomasz, > > On Wed, Feb 28, 2018 at 1:29 PM, Tomasz Figa <tfiga at chromium.org> wrote: >> On Wed, Feb 28, 2018 at 9:17 PM, Geert Uytterhoeven >> <geert at linux-m68k.org> wrote: >>> On Wed, Feb 28, 2018 at 12:11 PM, Jeffy Chen <jeffy.chen at rock-chips.com> wrote: >>>> Currently we are adding all of the attached devices' clocks as pm clocks >>>> and enable them when powering on the power domain. >>>> >>>> This seems unnecessary, because those clocks are already controlled in >>>> the devices' drivers with better error handling. >>>> >>>> Tested on my chromebook minnie(rk3288) and chromebook kevin(rk3399). >>>> >>>> Signed-off-by: Jeffy Chen <jeffy.chen at rock-chips.com> >>> >>> Thanks for your patch! >>> >>> Just wondering: so you prefer to handle the clocks explicitly in all drivers, >>> instead of delegating this task to Runtime PM? >> >> Is it already possible to gate clocks immediately when the device >> idles, but defer turning the power domain off until time long enough >> to cover the power down and up latency elapses? > > I'm not 100% sure. > Note that clocks are turned off when the device idles, while powering down > the power domain requires all devices in the domain to be idle. I remember seeing some ongoing work for multiple power states of PM domains on LWN, which could possibly solve it. I guess it's not done yet. Also, for Rockchip SoC, the typical setup is one device per domain, +/- some auxiliary devices such as IOMMU, which would have the same runtime PM state as the master device. (It isn't implemented yet, but Jeffy posted patches for using device links some time ago.) > >> Also, how about systems where runtime PM is disabled? I think that's >> one of the reasons we control the clocks explicitly in the drivers >> anyway. > > On many platforms, Runtime PM is always enabled. Can we make such assumption? If so, could we just make an explicit "select PM_RUNTIME" in Kconfig of the SoC? Best regards, Tomasz