On Tue, Jul 22, 2025 at 12:23 PM Akhil P Oommen <akhi...@oss.qualcomm.com> wrote: > > On 7/22/2025 9:08 PM, Rob Clark wrote: > > 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. > > There are 2 functionalities here: > 1. Clamp-to-idle: enabled only on a618/7c3 > 2. boost-after-idle: Enabled for all GPUs. > > With this patch, we are skipping both when IFPC is supported. In the > absence of latency due to clamp-to-idle, do you think a618 (relatively > weaker GPU) would require boost-after-idle to keep with the > UI/composition workload for its typical configuration (1080p@60hz)? If > yes, I should probably create a quirk to disable boost-after-idle for > premium tier GPUs, instead of tying it to IFPC feature.
Hmm, yeah.. I suppose _this_ patch should only skip clamp-to-idle. It is a different topic, boost-after-idle. BR, -R > -Akhil. > > > > > 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 >