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)) { >> + rate = clk_hw_get_rate(clk_dev->hw); >> + ret = tegra_clock_set_pd_state(clk_dev, rate); > Don't we need to sync the performance state even when the device is > runtime suspended? > > Perhaps the clock, via a child-clock for example, can get > prepared/enabled (hence its device gets runtime resumed) before there > is a clock rate update for it. Then there is no performance state set > for it, right? Or maybe that isn't a problem? >
Good catch! Older versions of this patch had a special handling for clk enable/disable. I just forgot to update this function, it's now not a problem to change performance state of a suspended device and it actually needs to be done. I'll correct it, thanks!