Hi,
On Wed, Nov 3, 2021 at 1:59 PM Rob Clark robdclark@gmail.com wrote:
From: Rob Clark robdclark@chromium.org
Signed-off-by: Rob Clark robdclark@chromium.org
drivers/gpu/drm/msm/msm_gpu_devfreq.c | 31 +++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/msm/msm_gpu_devfreq.c b/drivers/gpu/drm/msm/msm_gpu_devfreq.c index b24e5475cafb..427c55002f4d 100644 --- a/drivers/gpu/drm/msm/msm_gpu_devfreq.c +++ b/drivers/gpu/drm/msm/msm_gpu_devfreq.c @@ -158,6 +158,33 @@ void msm_devfreq_suspend(struct msm_gpu *gpu) devfreq_suspend_device(gpu->devfreq.devfreq); }
+static void set_target(struct msm_gpu *gpu, unsigned long freq) +{
struct msm_gpu_devfreq *df = &gpu->devfreq;
unsigned long min_freq, max_freq;
u32 flags = 0;
/*
* When setting the target freq internally, we need to apply PM QoS
* constraints (such as cooling):
*/
min_freq = dev_pm_qos_read_value(df->devfreq->dev.parent,
DEV_PM_QOS_MIN_FREQUENCY);
Chatted with Rob offline about this, but to document on the lists for those playing at home: the above function isn't exported to modules, so this will fail with "allmodconfig".
In general this isn't the right approach here. I believe that the right approach is to boost with freq_qos_update_request() and then kick off a timer to stop boosting after a fixed period of time.
-Doug