[PATCH v2 0/3] drm/msm: Improved devfreq tuning

From: Rob Clark
Date: Mon Jul 26 2021 - 10:42:43 EST

From: Rob Clark <robdclark@xxxxxxxxxxxx>

This is the outcome of trying to fix some bad gpu freq behavior seen in
some use-cases, in particular mobile games that throttle themselves to
30fps. With the existing tuning, we'd end up spending most of the time
that we should be running fast at a low freq, and most of the idle time
at a high freq.

First two patches are prep, 3/3 is the interesting bit. See the patch
description in 3/3 for more details.

v2: struct_mutex serializes the submit path, but not the retire path,
so add a dedicated lock to serialize active<->idle transitions.

Rob Clark (3):
drm/msm: Split out devfreq handling
drm/msm: Split out get_freq() helper
drm/msm: Devfreq tuning

drivers/gpu/drm/msm/Makefile | 1 +
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 4 +-
drivers/gpu/drm/msm/msm_gpu.c | 132 +++--------------
drivers/gpu/drm/msm/msm_gpu.h | 61 +++++++-
drivers/gpu/drm/msm/msm_gpu_devfreq.c | 203 ++++++++++++++++++++++++++
5 files changed, 280 insertions(+), 121 deletions(-)
create mode 100644 drivers/gpu/drm/msm/msm_gpu_devfreq.c