On Mon, Nov 18, 2024 at 01:19:49PM +0000, Bryan O'Donoghue wrote: > On 18/11/2024 13:10, Dmitry Baryshkov wrote: > > > Introduce pm_runtime_get() and pm_runtime_put_sync() on the > > > gdsc_toggle_logic(). > > > > > > This allows for the switching of the GDSC on/off to propagate to the parent > > > clock controller and consequently for any list of power-domains powering > > > that controller to be switched on/off. > > What is the end result of this patch? Does it bring up a single PM > > domain or all of them? Or should it be a part of the driver's PM > > callbacks? If the CC has multiple parent PM domains, shouldn't we also > > use some of them as GDSC's parents? > > It brings up every PM domain in the list > > clock_cc { > power-domains = <somedomain0>, <another-domain>; > }; > > No different to what the core code does for a single domain - except we can > actually turn the PDs off with the pm_runtime_put(). I see. I missed the device link part of the dev_pm_domain_attach_list(). Just to check, have you checked that this provides no splats in lockdep-enabled kernels? -- With best wishes Dmitry