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!