drm/msm/gpu: Check the status of registration to PM QoS
authorLukasz Luba <lukasz.luba@arm.com>
Fri, 18 Oct 2024 11:18:11 +0000 (12:18 +0100)
committerRob Clark <robdclark@chromium.org>
Sun, 27 Oct 2024 15:26:07 +0000 (08:26 -0700)
There is a need to check the returned value of the registration function.
In case of returned error, print that and stop the init process.

Fixes: 7c0ffcd40b16 ("drm/msm/gpu: Respect PM QoS constraints")
Signed-off-by: Lukasz Luba <lukasz.luba@arm.com>
Patchwork: https://patchwork.freedesktop.org/patch/620336/
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/msm_gpu_devfreq.c

index ea70c1c..6970b0f 100644 (file)
@@ -140,6 +140,7 @@ void msm_devfreq_init(struct msm_gpu *gpu)
 {
        struct msm_gpu_devfreq *df = &gpu->devfreq;
        struct msm_drm_private *priv = gpu->dev->dev_private;
+       int ret;
 
        /* We need target support to do devfreq */
        if (!gpu->funcs->gpu_busy)
@@ -156,8 +157,12 @@ void msm_devfreq_init(struct msm_gpu *gpu)
 
        mutex_init(&df->lock);
 
-       dev_pm_qos_add_request(&gpu->pdev->dev, &df->boost_freq,
-                              DEV_PM_QOS_MIN_FREQUENCY, 0);
+       ret = dev_pm_qos_add_request(&gpu->pdev->dev, &df->boost_freq,
+                                    DEV_PM_QOS_MIN_FREQUENCY, 0);
+       if (ret < 0) {
+               DRM_DEV_ERROR(&gpu->pdev->dev, "Couldn't initialize QoS\n");
+               return;
+       }
 
        msm_devfreq_profile.initial_freq = gpu->fast_rate;