[PATCH v4 0/5] Improve GPU reset sequence for Adreno GPU

From: Akhil P Oommen
Date: Wed Dec 21 2022 - 12:16:04 EST



This is a rework of [1] using genpd instead of 'reset' framework.

As per the recommended reset sequence of Adreno gpu, we should ensure that
gpucc-cx-gdsc has collapsed at hardware to reset gpu's internal hardware states.
Because this gdsc is implemented as 'votable', gdsc driver doesn't poll and
wait until its hw status says OFF.

So use the newly introduced genpd api (dev_pm_genpd_synced_poweroff()) to
provide a hint to the gdsc driver to poll for the hw status and use genpd
notifier to wait from adreno gpu driver until gdsc is turned OFF.

This series is rebased on top of linux-next (20221215) since the changes span
multiple drivers.

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

Changes in v4:
- Update genpd function documentation (Ulf)

Changes in v3:
- Rename the var 'force_sync' to 'wait (Stephen)

Changes in v2:
- Minor formatting fix
- Select PM_GENERIC_DOMAINS from Kconfig

Akhil P Oommen (4):
clk: qcom: gdsc: Support 'synced_poweroff' genpd flag
drm/msm/a6xx: Vote for cx gdsc from gpu driver
drm/msm/a6xx: Remove cx gdsc polling using 'reset'
drm/msm/a6xx: Use genpd notifier to ensure cx-gdsc collapse

Ulf Hansson (1):
PM: domains: Allow a genpd consumer to require a synced power off

drivers/base/power/domain.c | 26 ++++++++++++++++++++
drivers/clk/qcom/gdsc.c | 11 +++++----
drivers/gpu/drm/msm/Kconfig | 1 +
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 46 ++++++++++++++++++++++++++++++++---
drivers/gpu/drm/msm/adreno/a6xx_gmu.h | 7 ++++++
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 13 +++++++---
drivers/gpu/drm/msm/msm_gpu.c | 4 ---
drivers/gpu/drm/msm/msm_gpu.h | 4 ---
include/linux/pm_domain.h | 5 ++++
9 files changed, 97 insertions(+), 20 deletions(-)

--
2.7.4