Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-07 Thread Dmitry Osipenko
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

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-07 Thread Ulf Hansson
On Thu, 7 Oct 2021 at 01:21, Dmitry Osipenko wrote: > > 07.10.2021 01:01, Dmitry Osipenko пишет: > > 07.10.2021 00:14, Dmitry Osipenko пишет: > >> 06.10.2021 15:43, Ulf Hansson пишет: > >>> On Wed, 6 Oct 2021 at 00:43, Dmitry Osipenko wrote: > > 06.10.2021 01:19, Dmitry Osipenko пишет:

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-06 Thread Dmitry Osipenko
07.10.2021 01:01, Dmitry Osipenko пишет: > 07.10.2021 00:14, Dmitry Osipenko пишет: >> 06.10.2021 15:43, Ulf Hansson пишет: >>> On Wed, 6 Oct 2021 at 00:43, Dmitry Osipenko wrote: 06.10.2021 01:19, Dmitry Osipenko пишет: ... > I reproduced the OFF problem by removing the clk pre

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-06 Thread Dmitry Osipenko
06.10.2021 15:38, Ulf Hansson пишет: >>> Right, so the PM domain managed in tegra_genpd_power_on|off() can >>> still be powered on/off, as long as the clock remains ungated? >> Not ungated, but prepared. > Okay, thanks for clarifying! > > In summary, it sounds like you should be able to fix this p

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-06 Thread Dmitry Osipenko
07.10.2021 00:14, Dmitry Osipenko пишет: > 06.10.2021 15:43, Ulf Hansson пишет: >> On Wed, 6 Oct 2021 at 00:43, Dmitry Osipenko wrote: >>> >>> 06.10.2021 01:19, Dmitry Osipenko пишет: >>> ... I reproduced the OFF problem by removing the clk prepare/unprepare from the suspend/resume of th

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-06 Thread Dmitry Osipenko
06.10.2021 15:38, Ulf Hansson пишет: >> I'm also wondering if we could add some 'was_enabled' flag to GENPDs, >> setting it by genpd_suspend_noirq() for the enabled domains, and then >> powering-on GENPDs from genpd_resume_noirq() only if they were in the >> enabled state during genpd_suspend_noirq

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-06 Thread Dmitry Osipenko
06.10.2021 15:38, Ulf Hansson пишет: > In principle what you ask for, is if we can avoid calling > __pm_runtime_disable() in __device_suspend_late() (and vice versa in > device_resume_early()). > > I think the short answer is no, at least from a generic point of view. > Maybe we can figure out a w

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-06 Thread Dmitry Osipenko
06.10.2021 15:43, Ulf Hansson пишет: > On Wed, 6 Oct 2021 at 00:43, Dmitry Osipenko wrote: >> >> 06.10.2021 01:19, Dmitry Osipenko пишет: >> ... >>> I reproduced the OFF problem by removing the clk prepare/unprepare from >>> the suspend/resume of the clk driver and making some extra changes to >>>

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-06 Thread Ulf Hansson
On Wed, 6 Oct 2021 at 00:43, Dmitry Osipenko wrote: > > 06.10.2021 01:19, Dmitry Osipenko пишет: > ... > > I reproduced the OFF problem by removing the clk prepare/unprepare from > > the suspend/resume of the clk driver and making some extra changes to > > clock tree topology and etc to trigger th

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-06 Thread Ulf Hansson
On Wed, 6 Oct 2021 at 00:19, Dmitry Osipenko wrote: > > 05.10.2021 16:10, Ulf Hansson пишет: > > On Sat, 2 Oct 2021 at 22:44, Dmitry Osipenko wrote: > >> > >> 01.10.2021 15:32, Ulf Hansson пишет: > +static __maybe_unused int tegra_clock_pm_suspend(struct device *dev) > +{ > +

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-05 Thread Dmitry Osipenko
06.10.2021 01:43, Dmitry Osipenko пишет: > 06.10.2021 01:19, Dmitry Osipenko пишет: > ... >> I reproduced the OFF problem by removing the clk prepare/unprepare from >> the suspend/resume of the clk driver and making some extra changes to >> clock tree topology and etc to trigger the problem on Nexu

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-05 Thread Dmitry Osipenko
06.10.2021 01:19, Dmitry Osipenko пишет: ... > I reproduced the OFF problem by removing the clk prepare/unprepare from > the suspend/resume of the clk driver and making some extra changes to > clock tree topology and etc to trigger the problem on Nexus 7. > > tegra-pmc 7000e400.pmc: failed to turn

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-05 Thread Dmitry Osipenko
05.10.2021 16:10, Ulf Hansson пишет: > On Sat, 2 Oct 2021 at 22:44, Dmitry Osipenko wrote: >> >> 01.10.2021 15:32, Ulf Hansson пишет: +static __maybe_unused int tegra_clock_pm_suspend(struct device *dev) +{ + struct tegra_clk_device *clk_dev = dev_get_drvdata(dev); +

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-05 Thread Ulf Hansson
On Sat, 2 Oct 2021 at 22:44, Dmitry Osipenko wrote: > > 01.10.2021 15:32, Ulf Hansson пишет: > >> +static __maybe_unused int tegra_clock_pm_suspend(struct device *dev) > >> +{ > >> + struct tegra_clk_device *clk_dev = dev_get_drvdata(dev); > >> + > >> + /* > >> +* Power managem

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-02 Thread Dmitry Osipenko
01.10.2021 15:32, Ulf Hansson пишет: >> +static __maybe_unused int tegra_clock_pm_suspend(struct device *dev) >> +{ >> + struct tegra_clk_device *clk_dev = dev_get_drvdata(dev); >> + >> + /* >> +* Power management of the clock is entangled with the Tegra PMC >> +* GENPD

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-01 Thread Dmitry Osipenko
01.10.2021 15:32, Ulf Hansson пишет: >> +static int tegra_clock_sync_pd_state(struct tegra_clk_device *clk_dev) >> +{ >> + unsigned long rate; >> + int ret = 0; >> + >> + mutex_lock(&clk_dev->lock); >> + >> + if (!pm_runtime_status_suspended(clk_dev->dev)) { >> +

Re: [PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-10-01 Thread Ulf Hansson
On Mon, 27 Sept 2021 at 00:42, Dmitry Osipenko wrote: > > The Clock-and-Reset controller resides in a core power domain on NVIDIA > Tegra SoCs. In order to support voltage scaling of the core power domain, > we hook up DVFS-capable clocks to the core GENPD for managing of the > GENPD's performanc

[PATCH v13 06/35] clk: tegra: Support runtime PM and power domain

2021-09-26 Thread Dmitry Osipenko
The Clock-and-Reset controller resides in a core power domain on NVIDIA Tegra SoCs. In order to support voltage scaling of the core power domain, we hook up DVFS-capable clocks to the core GENPD for managing of the GENPD's performance state based on the clock changes. Some clocks don't have any s