On 12/03/2019 14:35, Sameer Pujar wrote: > Usage of pm_clk_*() results in non-zero prepare_count for clocks and hence > module clocks remain ON always. This is not desired as it will leak power > unncessarily. This patch replaces pm_clk_*() with devm_clk_*() interface. Technically, this is not true for all devices. The actual problem here is that for some Tegra devices that use the BPMP co-processor to manage clocks, the clock are actually enabled during the prepare-phase and hence when using the pm-clocks framework they are never disabled for these devices. However, this is not the case for Tegra210 which does not use the BPMP for managing clocks. It maybe worth highlighting the fact the BPMP has to enable clocks during the prepare phase because calls to the BPMP are always blocking. > This helps to keep refcounts balanced when device is not in use and runtime > PM callbacks help to enable or disable clocks. System suspend/resume calls > can use pm_runtime_force_suspend/resume. I think that this last bit should be a separate patch as it has nothing to do with the $subject. Cheers Jon -- nvpublic