Viresh,
On Wed, Nov 26, 2014 at 11:22:55AM +0530, Viresh Kumar wrote:
Hi Rafael/Eduardo,
Currently there is no callback for cpufreq drivers which is called once the policy is ready to be used. There are some requirements where such a callback is required.
One of them is registering a cooling device with the help of of_cpufreq_cooling_register(). This routine tries to get 'struct cpufreq_policy' for CPUs which isn't yet initialed at the time ->init() is called and so we face issues while registering the cooling device.
Because we can't register cooling device from ->init(), we need a callback that is called after the policy is ready to be used and hence ->usable() callback.
The first patch fixes few formatting issues, so that the third patch doesn't throw any checkpatch warnings. Second one fixes a potential bug in cpufreq-dt driver. Third one introduces ->usable() callback which will be used in the fourth patch.
Last three are fixes for cooling core, which may be applied separately by Eduardo if he wants. Sent them in this series as they were sort of connected with cpufreq in general.
Thanks for taking the time to review that code. In fact, it is good to have it under the eyes of someone with cpufreq experience. But, from my smoke testing, looks like they introduce regressions.
Would you mind splitting them from this series and sending a separate trhead? They do not help anyway to the original purpose of this series.
BR, Eduardo Valentin
Let me know if it still doesn't work properly.
-- viresh
Viresh Kumar (7): cpufreq: Fix formatting issues in 'struct cpufreq_driver' cpufreq-dt: pass 'policy->related_cpus' to of_cpufreq_cooling_register() cpufreq: Introduce ->usable() callback for cpufreq drivers cpufreq-dt: register cooling device from ->usable() callback cpu_cooling: Don't match min/max frequencies for all CPUs on cooling register cpu_cooling: don't iterate over all allowed_cpus to update cpufreq policy cpu_cooling: No need to check is_cpufreq_valid()
drivers/cpufreq/cpufreq-dt.c | 51 +++++++++++++++++++++++++--------------- drivers/cpufreq/cpufreq.c | 5 ++++ drivers/thermal/cpu_cooling.c | 44 ++++------------------------------- include/linux/cpufreq.h | 54 +++++++++++++++++++++++-------------------- 4 files changed, 70 insertions(+), 84 deletions(-)
-- 2.0.3.693.g996b0fd