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 v5:
- Capture all Reviewed-by tags
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
On Mon, 2 Jan 2023 16:18:26 +0530, Akhil P Oommen wrote:
> 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.
>
> [...]
Applied, thanks!
[1/5] PM: domains: Allow a genpd consumer to require a synced power off
commit: a9236a0aa7d7f52a974cc7eaa971fae92aa477c5
[2/5] clk: qcom: gdsc: Support 'synced_poweroff' genpd flag
commit: 8b6af3b58cafc2cbdf6269f655b2d3731eb93c2f
Best regards,
--
Bjorn Andersson <[email protected]>
On Mon, Jan 02, 2023 at 04:18:26PM +0530, Akhil P Oommen wrote:
>
> 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/
>
@Rob, please find the PM and gdsc implementation changes picked up here:
https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git tags/[email protected]
Regards,
Bjorn
> Changes in v5:
> - Capture all Reviewed-by tags
>
> 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
>