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 >