drm/panfrost: devfreq: Round frequencies to OPPs
authorSteven Price <steven.price@arm.com>
Mon, 18 Nov 2019 17:30:02 +0000 (17:30 +0000)
committerRob Herring <robh@kernel.org>
Fri, 6 Dec 2019 17:05:39 +0000 (11:05 -0600)
commit22bd4df9dadf46f56f2eb16859439a7a600d106a
tree768a8bfa466d68458760e2654abf92f70a752b49
parent4adf0b49eea926a55fd956ef7d86750f771435ff
drm/panfrost: devfreq: Round frequencies to OPPs

Currently when setting a frequency in panfrost_devfreq_target the
returned frequency is the actual frequency that the clock driver reports
(the return of clk_get_rate()). However, where the provided OPPs don't
precisely match the frequencies that the clock actually achieves devfreq
will then complain (repeatedly):

  devfreq devfreq0: Couldn't update frequency transition information.

To avoid this change panfrost_devfreq_target() to fetch the opp using
devfreq_recommened_opp() and not actually query the clock for the
frequency.

A similar problem exists with panfrost_devfreq_get_cur_freq(), but in
this case because the function is optional we can just remove it and
devfreq will fall back to using the previously set frequency.

Fixes: 221bc77914cb ("drm/panfrost: Use generic code for devfreq")
Signed-off-by: Steven Price <steven.price@arm.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20191118173002.32015-1-steven.price@arm.com
drivers/gpu/drm/panfrost/panfrost_devfreq.c