]> asedeno.scripts.mit.edu Git - linux.git/commit
opp: Don't overwrite rounded clk rate
authorStephen Boyd <swboyd@chromium.org>
Wed, 20 Mar 2019 09:49:08 +0000 (15:19 +0530)
committerViresh Kumar <viresh.kumar@linaro.org>
Mon, 17 Jun 2019 04:17:32 +0000 (09:47 +0530)
commitb3e3759ee4abd72bedbf4b109ff1749d3aea6f21
tree1fdb241064ffe49fc2374369815154c87dae5896
parentc0ab9e0812da8e2134dd63d030c8a8abd2112a5a
opp: Don't overwrite rounded clk rate

The OPP table normally contains 'fmax' values corresponding to the
voltage or performance levels of each OPP, but we don't necessarily want
all the devices to run at fmax all the time. Running at fmax makes sense
for devices like CPU/GPU, which have a finite amount of work to do and
since a specific amount of energy is consumed at an OPP, its better to
run at the highest possible frequency for that voltage value.

On the other hand, we have IO devices which need to run at specific
frequencies only for their proper functioning, instead of maximum
possible frequency.

The OPP core currently roundup to the next possible OPP for a frequency
and select the fmax value. To support the IO devices by the OPP core,
lets do the roundup to fetch the voltage or performance state values,
but not use the OPP frequency value. Rather use the value returned by
clk_round_rate().

The current user, cpufreq, of dev_pm_opp_set_rate() already does the
rounding to the next OPP before calling this routine and it won't
have any side affects because of this change.

Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
[ Viresh: Massaged changelog, added comment and use temp_opp variable
  instead ]
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/opp/core.c