cpufreq: Force sync policy boost with global boost on sysfs update
authorViresh Kumar <viresh.kumar@linaro.org>
Thu, 24 Apr 2025 16:20:18 +0000 (21:50 +0530)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 25 Apr 2025 16:28:22 +0000 (18:28 +0200)
If the global boost flag is enabled and policy boost flag is disabled, a
call to `cpufreq_boost_trigger_state(true)` must enable the policy's
boost state.

The current code misses that because of an optimization. Fix it.

Suggested-by: Lifeng Zheng <zhenglifeng1@huawei.com>
Reviewed-by: Lifeng Zheng <zhenglifeng1@huawei.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Link: https://patch.msgid.link/852ff11c589e6300730d207baac195b2d9d8b95f.1745511526.git.viresh.kumar@linaro.org
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/cpufreq.c

index 464bf20bcebf038232d3f5a75a23f7a26e3540e8..4048103e259720ebb94d7fea82044b1ef787a595 100644 (file)
@@ -2809,8 +2809,10 @@ static int cpufreq_boost_trigger_state(int state)
        unsigned long flags;
        int ret = 0;
 
-       if (cpufreq_driver->boost_enabled == state)
-               return 0;
+       /*
+        * Don't compare 'cpufreq_driver->boost_enabled' with 'state' here to
+        * make sure all policies are in sync with global boost flag.
+        */
 
        write_lock_irqsave(&cpufreq_driver_lock, flags);
        cpufreq_driver->boost_enabled = state;