On 13 August 2013 14:36, Hans-Christian Egtvedt egtvedt@samfundet.no wrote:
Around Tue 13 Aug 2013 12:28:04 +0530 or thereabout, Viresh Kumar wrote:
.verify() looks to be pretty straight forward and so can be replaced by the generic routine I wrote for that..
I though you already had a patch to swap verify, hence the need to cleanup the cpufreq driver first to provide a frequency table?
Yes, that's what.. That generic routine can be used instead of your .verify()..
But .target() does some calculations which aren't very straight forward to replace..
I believe I can remove all below code and simply get the frequency as suggested by cpufreq-core ??
/* Convert target_freq from kHz to Hz */ freq = clk_round_rate(cpuclk, target_freq * 1000); /* Check if policy->min <= new_freq <= policy->max */ if(freq < (policy->min * 1000) || freq > (policy->max * 1000)) return -EINVAL;
This sanity checks that the frequency the system clock can generate is within the policy limits. It is initially feed the target_freq frequency.
This is already done in core.
These values are already calculated during init and added to the table, so one shouldn't need to perform the clk_round_rate() call anymore.
good.
pr_debug("cpufreq: requested frequency %u Hz\n", target_freq * 1000); freqs.new = (freq + 500) / 1000; freqs.flags = 0;
I don't know the details of how the cpufreq-core suggests frequencies. If it looks up in the frequency table, then we don't need this sanity check in .target().
Yes, it just picks the best match from freq table, though here is the actual implementation..