cpufreq: change '.set_boost' to act on one policy
authorXiongfeng Wang <wangxiongfeng2@huawei.com>
Sat, 30 May 2020 02:08:30 +0000 (10:08 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 5 Jun 2020 12:20:02 +0000 (14:20 +0200)
commitcf6fada71543ceea0f6228ffdc0b85778f3f5a6e
tree34b4fa593a9d4aba8260489bd14f0cfac061fa84
parent73e5f9c0d3647bfba6bf5dd37a1b0eaed99999d1
cpufreq: change '.set_boost' to act on one policy

Macro 'for_each_active_policy()' is defined internally. To avoid some
cpufreq driver needing this macro to iterate over all the policies in
'.set_boost' callback, we redefine '.set_boost' to act on only one
policy and pass the policy as an argument.

'cpufreq_boost_trigger_state()' iterates over all the policies to set
boost for the system.

This is preparation for adding SW BOOST support for CPPC.

To protect Boost enable/disable by sysfs from CPU online/offline,
add 'cpu_hotplug_lock' before calling '.set_boost' for each CPU.

Also move the lock from 'set_boost()' to 'store_cpb()' in
acpi_cpufreq.

Signed-off-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
Suggested-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
[ rjw: Subject & changelog ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/acpi-cpufreq.c
drivers/cpufreq/cpufreq.c
include/linux/cpufreq.h