From: skolluku-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
To: Sean Paul <seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
linux-arm-msm-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org
Subject: Re: [DPU PATCH] drm/msm: Add pm_runtime_get/put calls to dpu
Date: Thu, 15 Mar 2018 20:12:43 +0530 [thread overview]
Message-ID: <94e53348399f60ace8da8281acdaaef0@codeaurora.org> (raw)
In-Reply-To: <20180314150718.254814-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
On 2018-03-14 20:37, Sean Paul wrote:
> Ensure that pm_runtime is properly referenced/unreferenced when we need
> it.
>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> ---
>
> Didn't get a response to my suggestion, so wrote the patch anyways.
> Thoughts?
>
This patch looks fine for now.
The plan is to deprecate the downstream power_handler APIs going forward
and rely entirely on runtime pm APIs.
Currently, the pm_runtime_get/put API is used to control the MDSS main
power supply (which is defined as a generic power domain). The idea is
to extend the runtime_pm suspend/resume handlers to manage clock and bus
resources so that the power_handler code can be trimmed off.
Thanks,
Sravanthi
>
> drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 3 +++
> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 ++
> drivers/gpu/drm/msm/dpu_power_handle.c | 12 ++++++++----
> 3 files changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> index f1642d72469e..df6cbeb15cf5 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> @@ -3497,6 +3497,7 @@ static void dpu_crtc_disable(struct drm_crtc
> *crtc)
> /* disable clk & bw control until clk & bw properties are set */
> cstate->bw_control = false;
> cstate->bw_split_vote = false;
> + pm_runtime_put_sync(crtc->dev->dev);
>
> mutex_unlock(&dpu_crtc->crtc_lock);
> }
> @@ -3523,6 +3524,8 @@ static void dpu_crtc_enable(struct drm_crtc
> *crtc,
> DPU_EVT32_VERBOSE(DRMID(crtc));
> dpu_crtc = to_dpu_crtc(crtc);
>
> + pm_runtime_get_sync(crtc->dev->dev);
> +
> drm_for_each_encoder(encoder, crtc->dev) {
> if (encoder->crtc != crtc)
> continue;
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> index fb4de59d8ed1..90608a303aec 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> @@ -346,12 +346,14 @@ static void _dpu_debugfs_destroy(struct dpu_kms
> *dpu_kms)
>
> static int dpu_kms_enable_vblank(struct msm_kms *kms, struct drm_crtc
> *crtc)
> {
> + pm_runtime_get_sync(crtc->dev->dev);
> return dpu_crtc_vblank(crtc, true);
> }
>
> static void dpu_kms_disable_vblank(struct msm_kms *kms, struct
> drm_crtc *crtc)
> {
> dpu_crtc_vblank(crtc, false);
> + pm_runtime_put_sync(crtc->dev->dev);
> }
>
> static void dpu_kms_wait_for_frame_transfer_complete(struct msm_kms
> *kms,
> diff --git a/drivers/gpu/drm/msm/dpu_power_handle.c
> b/drivers/gpu/drm/msm/dpu_power_handle.c
> index 477ea9f2778c..a52be861117f 100644
> --- a/drivers/gpu/drm/msm/dpu_power_handle.c
> +++ b/drivers/gpu/drm/msm/dpu_power_handle.c
> @@ -18,6 +18,7 @@
> #include <linux/of.h>
> #include <linux/string.h>
> #include <linux/of_address.h>
> +#include <linux/pm_runtime.h>
> #include <linux/slab.h>
> #include <linux/mutex.h>
> #include <linux/of_platform.h>
> @@ -857,6 +858,9 @@ int dpu_power_resource_enable(struct
> dpu_power_handle *phandle,
> return -EINVAL;
> }
>
> + if (enable)
> + pm_runtime_get_sync(phandle->dev);
> +
> mp = &phandle->mp;
>
> mutex_lock(&phandle->phandle_lock);
> @@ -963,10 +967,6 @@ int dpu_power_resource_enable(struct
> dpu_power_handle *phandle,
> DPU_POWER_EVENT_POST_DISABLE);
> }
>
> -end:
> - mutex_unlock(&phandle->phandle_lock);
> - return rc;
> -
> clk_err:
> dpu_power_rsc_update(phandle, false);
> rsc_err:
> @@ -979,7 +979,11 @@ int dpu_power_resource_enable(struct
> dpu_power_handle *phandle,
> dpu_power_data_bus_update(&phandle->data_bus_handle[i], 0);
> data_bus_hdl_err:
> phandle->current_usecase_ndx = prev_usecase_ndx;
> +
> +end:
> mutex_unlock(&phandle->phandle_lock);
> + if (!enable)
> + pm_runtime_put_sync(phandle->dev);
> return rc;
> }
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno
next prev parent reply other threads:[~2018-03-15 14:42 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-21 15:18 [PATCH RESEND 00/10] drm/msm: A handful of dpu fixes Sean Paul
[not found] ` <20180221151838.224718-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-02-21 15:18 ` [PATCH RESEND 01/10] drm/msm: Add displayport files to Makefile Sean Paul
[not found] ` <20180221151838.224718-2-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-08 22:01 ` Jeykumar Sankaran
2018-02-21 15:18 ` [PATCH RESEND 02/10] drm/msm: Include the dpu_dbg header in msm_drv.c Sean Paul
[not found] ` <20180221151838.224718-3-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-08 22:03 ` Jeykumar Sankaran
2018-03-08 22:06 ` Jeykumar Sankaran
2018-02-21 15:18 ` [PATCH RESEND 03/10] drm/msm: Change driver name back to msm Sean Paul
[not found] ` <20180221151838.224718-4-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-08 22:02 ` Jeykumar Sankaran
2018-02-21 15:18 ` [PATCH RESEND 04/10] drm/msm: Remove smmu driver init/cleanup from msm_drv Sean Paul
[not found] ` <20180221151838.224718-5-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-08 22:04 ` Jeykumar Sankaran
2018-03-08 22:07 ` Jeykumar Sankaran
2018-02-21 15:18 ` [PATCH RESEND 05/10] drm/msm: Defer probe if display component not found Sean Paul
[not found] ` <20180221151838.224718-6-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-08 22:09 ` Jeykumar Sankaran
2018-02-21 15:18 ` [PATCH RESEND 06/10] drm/msm: Fix deadlock calling msm_gem_new() Sean Paul
[not found] ` <20180221151838.224718-7-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-08 22:21 ` Jeykumar Sankaran
2018-02-21 15:18 ` [PATCH RESEND 07/10] drm/msm: Populate kms->irq for dpu Sean Paul
[not found] ` <20180221151838.224718-8-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-08 22:36 ` Jeykumar Sankaran
2018-02-21 15:18 ` [PATCH RESEND 08/10] drm/msm: Sprinkle pm_runtime calls around Sean Paul
[not found] ` <20180221151838.224718-9-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-09 0:14 ` Jeykumar Sankaran
[not found] ` <e953b0d8daa63e5cd2f65259b1c80a27-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-12 20:06 ` Sean Paul
2018-03-14 15:07 ` [DPU PATCH] drm/msm: Add pm_runtime_get/put calls to dpu Sean Paul
[not found] ` <20180314150718.254814-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-03-15 14:42 ` skolluku-sgV2jX0FEOL9JmXXK+q4OQ [this message]
[not found] ` <94e53348399f60ace8da8281acdaaef0-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-15 14:55 ` skolluku-sgV2jX0FEOL9JmXXK+q4OQ
2018-02-21 15:18 ` [PATCH RESEND 09/10] drm/msm/dpu: Fix writeback compile macros Sean Paul
2018-02-21 15:18 ` [PATCH RESEND 10/10] drm/msm: Restore msm_atomic_check hook Sean Paul
[not found] ` <20180221151838.224718-11-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-02-22 20:08 ` Rob Clark
[not found] ` <CAF6AEGswWCtmdCi_Etg8V2Ty9pr1=veHnd8s7iuE4Ot8SB8Ppw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-02-22 21:01 ` Sean Paul
2018-03-09 0:15 ` Jeykumar Sankaran
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=94e53348399f60ace8da8281acdaaef0@codeaurora.org \
--to=skolluku-sgv2jx0feol9jmxxk+q4oq@public.gmane.org \
--cc=abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=linux-arm-msm-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.