07.10.2021 12:18, Ulf Hansson пишет: >> Please let me iterate once again. The problem we currently have is that >> clock may be enabled during NOIRQ time. In order to enable clock, it >> needs to be prepared. In order to prepare clock, the clock's device >> needs to be runtime-resumed. The runtime PM is unavailable at the NOIRQ >> time. >> >> To solve this problem we need to prepare clock beforehand. >> >> The clock will stay prepared during suspend, but this is not a problem >> since all the clocks we care about don't require high voltage and >> voltage is guaranteed to be bumped high during suspend by Tegra's >> regulator-coupler driver anyways. >> >> So everything we need to do is to keep clocks prepared. There are two >> options how to do that: >> >> [1] this patch which explicitly prepares clocks using clk API. >> >> [2] Use runtime PM API, like this: >> >> static const struct dev_pm_ops tegra_clock_pm = { >> SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_resume_and_get, pm_runtime_put) >> }; >> >> Ulf, are you now okay with the current variant [1] of the patch or you >> prefer the second [2] option more? > I prefer option [2]. The clock_prepare|unprepare() thingy in option > [1], looks more like an odd workaround to me. > > Does that make sense to you as well? I don't have a strong preference since both variants give the same effect. I'll keep testing option [2] and will use it in the next version if no problem will be found. Thank you!