On 24 November 2014 at 23:40, Eduardo Valentin edubezval@gmail.com wrote:
Is it possible to have this registration only when we have a cpufreq driver up and running? The reasoning is that only after we have a way to control cpu frequencies, it makes sense to have the cpu_cooling device.
I am planing to have the following check in the cpu cooling code: if (!cpufreq_get_current_driver()) { dev_dbg(bgp->dev, "no cpufreq driver yet\n"); return -EPROBE_DEFER; }
that is the way I think of checking if the cpufreq layer is ready to have a cpu cooling on top of it. Currently, thermal drivers check this before calling cpu cooling registration. But instead of having this check in every driver, I would like to move it to cpu cooling.
However, for cpufreq-dt, the registration currently happens in the init phase, not in probe, so cpufreq driver is not registered, and thus the check won't work.
This is how the phases are present in cpufreq drivers: -> platform_init -> probe() ->cpufreq_driver->init()
And the cooling device is registered in cpufreq_driver->init() and by the time ->init() is called, cpufreq_driver is valid.