On Fri, May 22, 2020 at 06:29:08PM -0400, Jonathan Marek wrote: > Also skip the newly added HFI set freq path if the GMU is powered down, > which was missing because of patches crossing paths. I saw the 5.8 pull later in my inbox so I'm not sure if this made it or not but it qualifies as a -fix if it didn't. Reviewed-by: Jordan Crouse <jcrouse@xxxxxxxxxxxxxx> > Signed-off-by: Jonathan Marek <jonathan@xxxxxxxx> > --- > drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > index 67c58345b26a..9851367a88cd 100644 > --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c > @@ -110,13 +110,6 @@ static void __a6xx_gmu_set_freq(struct a6xx_gmu *gmu, int index) > struct msm_gpu *gpu = &adreno_gpu->base; > int ret; > > - /* > - * This can get called from devfreq while the hardware is idle. Don't > - * bring up the power if it isn't already active > - */ > - if (pm_runtime_get_if_in_use(gmu->dev) == 0) > - return; > - > gmu_write(gmu, REG_A6XX_GMU_DCVS_ACK_OPTION, 0); > > gmu_write(gmu, REG_A6XX_GMU_DCVS_PERF_SETTING, > @@ -141,7 +134,6 @@ static void __a6xx_gmu_set_freq(struct a6xx_gmu *gmu, int index) > * for now leave it at max so that the performance is nominal. > */ > icc_set_bw(gpu->icc_path, 0, MBps_to_icc(7216)); > - pm_runtime_put(gmu->dev); > } > > void a6xx_gmu_set_freq(struct msm_gpu *gpu, unsigned long freq) > @@ -159,13 +151,21 @@ void a6xx_gmu_set_freq(struct msm_gpu *gpu, unsigned long freq) > break; > > gmu->current_perf_index = perf_index; > + gmu->freq = gmu->gpu_freqs[perf_index]; > + > + /* > + * This can get called from devfreq while the hardware is idle. Don't > + * bring up the power if it isn't already active > + */ > + if (pm_runtime_get_if_in_use(gmu->dev) == 0) > + return; > > if (gmu->legacy) > __a6xx_gmu_set_freq(gmu, perf_index); > else > a6xx_hfi_set_freq(gmu, perf_index); > > - gmu->freq = gmu->gpu_freqs[perf_index]; > + pm_runtime_put(gmu->dev); > } > > unsigned long a6xx_gmu_get_freq(struct msm_gpu *gpu) > -- > 2.26.1 > -- The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project