On Wed, Nov 26, 2014 at 01:54:31PM -0400, Eduardo Valentin wrote: > Hello Viresh, > > Thanks for providing a proposal. > > 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. > > > > Let me know if it still doesn't work properly. > > For the series, the last three patches somehow breaks things. I didn't > not investigate the reason now, because, well, I think we should take > one thing at a time. It turns out that I could not reproduce the issue I saw. So, I am assuming that was an issue in my environment. Can you still post them separately? > > For the patches 1 to 4, I tried then and they do the trick. Now the > sequencing is correct between cpufreq-dt and cpu cooling. That means I > can also improve the thermal code by accepting the following patches: > https://patchwork.kernel.org/patch/5326991/ > https://patchwork.kernel.org/patch/5387161/ > > on top of the four first patches. > > Cheers, > > Eduardo Valentin > > > > > -- > > 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 > >