[Freedreno] [PATCH 2/3] drm/msm: move suspend/resume devfreq to their own functions
Jordan Crouse
jcrouse at codeaurora.org
Fri May 25 17:13:35 UTC 2018
On Fri, May 25, 2018 at 04:00:45PM +0530, Sharat Masetty wrote:
> This is needed for hardware revisions which do not rely on the generic
> suspend, resume handlers for power management.
>
> Signed-off-by: Sharat Masetty <smasetty at codeaurora.org>
> ---
> drivers/gpu/drm/msm/msm_gpu.c | 26 ++++++++++++++++++--------
> drivers/gpu/drm/msm/msm_gpu.h | 2 ++
> 2 files changed, 20 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c
> index d7586f2..d8d4fc9 100644
> --- a/drivers/gpu/drm/msm/msm_gpu.c
> +++ b/drivers/gpu/drm/msm/msm_gpu.c
> @@ -203,6 +203,22 @@ static int disable_axi(struct msm_gpu *gpu)
> return 0;
> }
>
> +void msm_gpu_resume_devfreq(struct msm_gpu *gpu)
> +{
> + if (gpu->devfreq.devfreq) {
> + gpu->devfreq.busy_cycles = 0;
> + gpu->devfreq.time = ktime_get();
> +
> + devfreq_resume_device(gpu->devfreq.devfreq);
> + }
I just looked, we don't need the if() check - devfreq_resume_device should be
safe. Yeah, we're doing an extra ktime_get() but its not the end of the world.
> +}
> +
> +void msm_gpu_suspend_devfreq(struct msm_gpu *gpu)
> +{
> + if (gpu->devfreq.devfreq)
> + devfreq_suspend_device(gpu->devfreq.devfreq);
We don't need the if check here either.
> +}
> +
> int msm_gpu_pm_resume(struct msm_gpu *gpu)
> {
> int ret;
> @@ -221,12 +237,7 @@ int msm_gpu_pm_resume(struct msm_gpu *gpu)
> if (ret)
> return ret;
>
> - if (gpu->devfreq.devfreq) {
> - gpu->devfreq.busy_cycles = 0;
> - gpu->devfreq.time = ktime_get();
> -
> - devfreq_resume_device(gpu->devfreq.devfreq);
> - }
> + msm_gpu_resume_devfreq(gpu);
>
> gpu->needs_hw_init = true;
>
> @@ -239,8 +250,7 @@ int msm_gpu_pm_suspend(struct msm_gpu *gpu)
>
> DBG("%s", gpu->name);
>
> - if (gpu->devfreq.devfreq)
> - devfreq_suspend_device(gpu->devfreq.devfreq);
> + msm_gpu_suspend_devfreq(gpu);
>
> ret = disable_axi(gpu);
> if (ret)
> diff --git a/drivers/gpu/drm/msm/msm_gpu.h b/drivers/gpu/drm/msm/msm_gpu.h
> index b824117..1876b81 100644
> --- a/drivers/gpu/drm/msm/msm_gpu.h
> +++ b/drivers/gpu/drm/msm/msm_gpu.h
> @@ -226,6 +226,8 @@ static inline void gpu_write64(struct msm_gpu *gpu, u32 lo, u32 hi, u64 val)
>
> int msm_gpu_pm_suspend(struct msm_gpu *gpu);
> int msm_gpu_pm_resume(struct msm_gpu *gpu);
> +void msm_gpu_resume_devfreq(struct msm_gpu *gpu);
> +void msm_gpu_suspend_devfreq(struct msm_gpu *gpu);
>
> int msm_gpu_hw_init(struct msm_gpu *gpu);
>
> --
> 1.9.1
>
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
More information about the Freedreno
mailing list