On Tue, Jul 22, 2025 at 6:50 AM Dmitry Baryshkov <dmitry.barysh...@oss.qualcomm.com> wrote: > > On Sun, Jul 20, 2025 at 05:46:13PM +0530, Akhil P Oommen wrote: > > When IFPC is supported, devfreq idling is redundant and adds > > unnecessary pm suspend/wake latency. So skip it when IFPC is > > supported. > > With this in place we have a dummy devfreq instance which does nothing. > Wouldn't it be better to skip registering devfreq if IFPC is supported > on the platform?
devfreq is still scaling the freq. What is being bypassed is essentially a CPU based version of IFPC (because on sc7180 we didn't have IFPC Currently only a618 and 7c3 enable gpu_clamp_to_idle.. if at some point those grew IFPC support we could remove the trickery to drop GPU to min freq when it is idle altogether. BR, -R > > > > Signed-off-by: Akhil P Oommen <akhi...@oss.qualcomm.com> > > --- > > drivers/gpu/drm/msm/msm_gpu_devfreq.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/drivers/gpu/drm/msm/msm_gpu_devfreq.c > > b/drivers/gpu/drm/msm/msm_gpu_devfreq.c > > index > > 2e1d5c3432728cde15d91f69da22bb915588fe86..53ef2add5047e7d6b6371af949cab36ce8409372 > > 100644 > > --- a/drivers/gpu/drm/msm/msm_gpu_devfreq.c > > +++ b/drivers/gpu/drm/msm/msm_gpu_devfreq.c > > @@ -4,6 +4,7 @@ > > * Author: Rob Clark <robdcl...@gmail.com> > > */ > > > > +#include "adreno/adreno_gpu.h" > > #include "msm_gpu.h" > > #include "msm_gpu_trace.h" > > > > @@ -300,6 +301,8 @@ void msm_devfreq_active(struct msm_gpu *gpu) > > if (!has_devfreq(gpu)) > > return; > > > > + if (to_adreno_gpu(gpu)->info->quirks & ADRENO_QUIRK_IFPC) > > + return; > > /* > > * Cancel any pending transition to idle frequency: > > */ > > @@ -370,6 +373,9 @@ void msm_devfreq_idle(struct msm_gpu *gpu) > > if (!has_devfreq(gpu)) > > return; > > > > + if (to_adreno_gpu(gpu)->info->quirks & ADRENO_QUIRK_IFPC) > > + return; > > + > > msm_hrtimer_queue_work(&df->idle_work, ms_to_ktime(1), > > HRTIMER_MODE_REL); > > } > > > > -- > > 2.50.1 > > > > -- > With best wishes > Dmitry