Switch to the DT cpufreq policy on the Integrator
Get series with b4
b4 am 20161020042012.GI11766@vireshk-i7Versions newest first
- v1 Latest0 of 5 patches 0 repliesNew
Patches in v1 No applies recorded yet
None of the 5 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/5] Switch to the DT cpufreq policy on the Integrator
Quoted 52 lines · Viresh Kumar
Quoted 51 lines · Linus Walleij
This switches the ARM Integrator/AP and Integrator/CP to use the Device Tree cpufreq policy with its definition of operating points using the generic OPP library.
The Integrators does not need to control a regulator to switch frequency, only a clock. This clock and its device tree bindings have been defined in the device tree and merged upstream for v4.9.
This approach provides a little better granularity on the Integrator/AP where I defined a few operating points: before this change the Integrator would just switch between min speed (12 MHz) and max speed (71 MHz). Now it can switch between a few arbitrarily chosen OPPs as in the examples below:
The following tests were made on the Integrator/AP:
/sys/devices/system/cpu/cpufreq/policy0echo ondemand >scaling_governorcpu cpu0:dev_pm_opp_set_rate: switching OPP: 71000000 Hz --> 24000000 Hz cpu cpu0:dev_pm_opp_set_rate: switching OPP: 24000000 Hz --> 12000000 Hz cpu cpu0:dev_pm_opp_set_rate: switching OPP: 12000000 Hz --> 24000000 Hz cpu cpu0:dev_pm_opp_set_rate: switching OPP: 24000000 Hz --> 12000000 HzThe switch from 12 to 24 MHz is triggered by as little as using the command line with the ondemand governor. If we do this:
yes >
/dev/null&
cpu cpu0:dev_pm_opp_set_rate: switching OPP: 12000000 Hz --> 36000000 Hz cpu cpu0:dev_pm_opp_set_rate: switching OPP: 36000000 Hz --> 71000000 Hz pkill yes
cpu cpu0:dev_pm_opp_set_rate: switching OPP: 71000000 Hz --> 12000000 HzSo the algorithm is indeed using all the OPPs.
Also as a confirmation test to make sure performance is affected by the speed changes, we set the performance governor and:
echo 12000 >
scaling_max_freq
cpu cpu0:dev_pm_opp_set_rate: switching OPP: 71000000 Hz --> 12000000 Hz time find /sys|sort|uniq >/dev/nullreal 0m 45.51s user 0m 11.15s sys 0m 26.74secho 71000 >
scaling_max_freq
cpu cpu0:dev_pm_opp_set_rate: switching OPP: 12000000 Hz --> 71000000 Hz time find /sys|sort|uniqQuoted 1 line
/dev/nullreal 0m 9.13s user 0m 2.35s sys 0m 5.50s
Quoted 7 lines
Quoted 5 lines
So it is working.
If people are happy with this approach and approve of the patches I'd like an ACK from the cpufreq people and then merge the whole set through ARM SoC.
Acked-by Viresh Kumar <[email protected]>
Integrator is an UP, right? Otherwise you may want to use operating-points-v2 bindings instead.
Signature · 1 line
viresh