drm/msm: reset devfreq freq_table/max_state before devfreq_add_device
authorJonathan Marek <jonathan@marek.ca>
Mon, 13 Jul 2020 22:53:41 +0000 (18:53 -0400)
committerRob Clark <robdclark@chromium.org>
Thu, 30 Jul 2020 20:44:52 +0000 (13:44 -0700)
These never get set back to 0 when probing fails, so an attempt to probe
again results in broken behavior. Fix the problem by setting thse to zero
before they are used.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/msm_gpu.c

index 86a1386..3763d40 100644 (file)
@@ -93,7 +93,11 @@ static void msm_devfreq_init(struct msm_gpu *gpu)
        /*
         * Don't set the freq_table or max_state and let devfreq build the table
         * from OPP
+        * After a deferred probe, these may have be left to non-zero values,
+        * so set them back to zero before creating the devfreq device
         */
+       msm_devfreq_profile.freq_table = NULL;
+       msm_devfreq_profile.max_state = 0;
 
        gpu->devfreq.devfreq = devm_devfreq_add_device(&gpu->pdev->dev,
                        &msm_devfreq_profile, DEVFREQ_GOV_SIMPLE_ONDEMAND,