[PATCH v4 0/6] drm/msm: Decouple IFPC disable and sysprof

From: Rob Clark

Date: Tue Nov 03 2026 - 18:19:36 EST


Convert IFPC-disable into it's own refcnt so that multiple threads can
request IFPC to be disabled without stomping on each other.

Extracted out of gen8 GPU state capture series[1], as other than fixing
a missing IFPC disable in debugfs state capture path, it is unrelated.

[1] https://patchwork.freedesktop.org/series/176505/

v4:
- Don't clear GMU_STATUS_OOB_PERF_SET in suspend path. Restore it in
hw_init()
- Don't require gpu->lock in a6xx_gmu_ifpc_update(), but instead warn
if needs_hw_init
- Move perfcntr resume to after hw_init()
- Link to v3: https://lore.kernel.org/all/20261103184713.29664-1-robin.clark@xxxxxxxxxxxxxxxx

v3:
- Rework IFPC disable harder to play nicer with hw_init(). If we
need_hw_init, simply update gmu->status mask and let hw_init()
restore the OOB request in a sequence that won't anger the fw.
- Link to v2: https://lore.kernel.org/all/20261102190010.720443-1-robin.clark@xxxxxxxxxxxxxxxx/

v2:
- Fix double acquire of gmu->lock
- Fix missing a8xx hw_init() path
- Link to v1: https://lore.kernel.org/all/20261101174631.23637-1-robin.clark@xxxxxxxxxxxxxxxx/

Rob Clark (6):
drm/msm: Hold runpm ref in set_sysprof()
drm/msm: Resume perfcntrs after hw_init
drm/msm: Rework IFPC disable
drm/msm: Add cleanup help for disabling IFPC
drm/msm/debugfs: Use cleanup.h for gpu state dump
drm/msm: Inhibit IFPC for state snapshot

drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 28 ++++++++-----------
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 11 ++++----
drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 2 +-
drivers/gpu/drm/msm/adreno/a8xx_gpu.c | 5 ++--
drivers/gpu/drm/msm/adreno/adreno_device.c | 5 +---
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 1 -
drivers/gpu/drm/msm/msm_debugfs.c | 32 +++++++++-------------
drivers/gpu/drm/msm/msm_gpu.c | 5 +++-
drivers/gpu/drm/msm/msm_gpu.h | 30 +++++++++++++++++---
drivers/gpu/drm/msm/msm_perfcntr.c | 7 +----
drivers/gpu/drm/msm/msm_submitqueue.c | 19 +++++++++----
11 files changed, 78 insertions(+), 67 deletions(-)

--
2.56.0