All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeykumar Sankaran <jsanka@codeaurora.org>
To: Sean Paul <sean@poorly.run>
Cc: Sean Paul <seanpaul@chromium.org>,
	linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org,
	dri-devel <dri-devel-bounces@lists.freedesktop.org>,
	dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 4/4] drm/msm: dpu: Don't queue the frame_done watchdog for cursor
Date: Wed, 06 Feb 2019 11:53:38 -0800	[thread overview]
Message-ID: <ec7f32b85f8da18106805b863e0dae55@codeaurora.org> (raw)
In-Reply-To: <20190128204306.95076-4-sean@poorly.run>

On 2019-01-28 12:42, Sean Paul wrote:
> From: Sean Paul <seanpaul@chromium.org>
> 
> In the case of an async/cursor update, we don't wait for the frame_done
> event, which means handle_frame_done is never called, and the 
> frame_done
> watchdog isn't canceled. Currently, this results in a frame_done 
> timeout
> every time the cursor moves without a synchronous frame following it up
> before the timeout expires. Since we don't wait for frame_done, and
> don't handle it, we shouldn't modify the watchdog.
> 
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> ---

Reviewed-by: Jeykumar Sankaran <jsanka@codeaurora.org>

>  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 19 +++++++++++++------
>  1 file changed, 13 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> index 51e46b206c73e..05145cf9fb408 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> @@ -1794,7 +1794,6 @@ void dpu_encoder_kickoff(struct drm_encoder 
> *drm_enc,
> bool async)
>  {
>  	struct dpu_encoder_virt *dpu_enc;
>  	struct dpu_encoder_phys *phys;
> -	unsigned long timeout_ms;
>  	ktime_t wakeup_time;
>  	unsigned int i;
> 
> @@ -1807,12 +1806,20 @@ void dpu_encoder_kickoff(struct drm_encoder
> *drm_enc, bool async)
> 
>  	trace_dpu_enc_kickoff(DRMID(drm_enc));
> 
> -	timeout_ms = DPU_ENCODER_FRAME_DONE_TIMEOUT_FRAMES * 1000 /
> -		drm_mode_vrefresh(&drm_enc->crtc->state->adjusted_mode);
> +	/*
> +	 * Asynchronous frames don't handle FRAME_DONE events. As such, they
> +	 * shouldn't enable the frame_done watchdog since it will always time
> +	 * out.
> +	 */
> +	if (!async) {
> +		unsigned long timeout_ms;
> +		timeout_ms = DPU_ENCODER_FRAME_DONE_TIMEOUT_FRAMES * 1000 /
> +			drm_mode_vrefresh(&drm_enc->crtc->state->adjusted_mode);
> 
> -	atomic_set(&dpu_enc->frame_done_timeout_ms, timeout_ms);
> -	mod_timer(&dpu_enc->frame_done_timer,
> -		  jiffies + msecs_to_jiffies(timeout_ms));
> +		atomic_set(&dpu_enc->frame_done_timeout_ms, timeout_ms);
> +		mod_timer(&dpu_enc->frame_done_timer,
> +			  jiffies + msecs_to_jiffies(timeout_ms));
> +	}
> 
>  	/* All phys encs are ready to go, trigger the kickoff */
>  	_dpu_encoder_kickoff_phys(dpu_enc, async);

-- 
Jeykumar S
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2019-02-06 19:53 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-28 20:42 [PATCH 1/4] drm/msm: Use drm_mode_vrefresh instead of mode->vrefresh Sean Paul
     [not found] ` <20190128204306.95076-1-sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org>
2019-01-28 20:42   ` [PATCH 2/4] drm/msm: dpu: Simplify frame_done watchdog timeout calculation Sean Paul
2019-01-28 21:06     ` Abhinav Kumar
     [not found]     ` <20190128204306.95076-2-sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org>
2019-02-06 19:42       ` Jeykumar Sankaran
2019-01-28 20:42   ` [PATCH 4/4] drm/msm: dpu: Don't queue the frame_done watchdog for cursor Sean Paul
2019-02-05 20:13     ` Fritz Koenig
2019-02-06 19:53     ` Jeykumar Sankaran [this message]
2019-02-06 18:52   ` [PATCH 1/4] drm/msm: Use drm_mode_vrefresh instead of mode->vrefresh Jeykumar Sankaran
2019-01-28 20:42 ` [PATCH 3/4] drm/msm: dpu: Untangle frame_done timeout units Sean Paul
     [not found]   ` <20190128204306.95076-3-sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org>
2019-02-05 21:51     ` Fritz Koenig
2019-02-06 19:50     ` Jeykumar Sankaran
2019-01-28 21:05 ` [PATCH 1/4] drm/msm: Use drm_mode_vrefresh instead of mode->vrefresh Abhinav Kumar
2019-01-29  8:59 ` Daniel Vetter
     [not found]   ` <20190129085940.GM3271-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2019-01-29 15:53     ` Sean Paul

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=ec7f32b85f8da18106805b863e0dae55@codeaurora.org \
    --to=jsanka@codeaurora.org \
    --cc=dri-devel-bounces@lists.freedesktop.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=sean@poorly.run \
    --cc=seanpaul@chromium.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.