public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Paulo Zanoni <przanoni@gmail.com>
To: intel-gfx@lists.freedesktop.org
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Subject: [PATCH 2/4] drm/i915: don't intel_wait_for_vblank inside intel_enable_pipe
Date: Thu, 19 Sep 2013 17:07:27 -0300	[thread overview]
Message-ID: <1379621249-1816-3-git-send-email-przanoni@gmail.com> (raw)
In-Reply-To: <1379621249-1816-1-git-send-email-przanoni@gmail.com>

From: Paulo Zanoni <paulo.r.zanoni@intel.com>

Depending on the Gen and encoder, the pipe won't really start after we
enable PIPECONF, so waiting for the vblank inside intel_enable_pipe
doesn't really make sense for these cases. This patch removes the
vblank wait from intel_enable_pipe, but adds vblank waiting code after
each call to intel_enable_pipe, so we'll still have the "useless"
vblank waits. Future patches will properly deal with each of the
vblank waits.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 5f1399d..2f546f7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1694,8 +1694,6 @@ static void lpt_disable_pch_transcoder(struct drm_i915_private *dev_priv)
  *
  * @pipe should be %PIPE_A or %PIPE_B.
  *
- * Will wait until the pipe is actually running (i.e. first vblank) before
- * returning.
  */
 static void intel_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe,
 			      bool pch_port, bool dsi)
@@ -1741,7 +1739,6 @@ static void intel_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe,
 		return;
 
 	I915_WRITE(reg, val | PIPECONF_ENABLE);
-	intel_wait_for_vblank(dev_priv->dev, pipe);
 }
 
 /**
@@ -3327,6 +3324,7 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc)
 	intel_update_watermarks(crtc);
 	intel_enable_pipe(dev_priv, pipe,
 			  intel_crtc->config.has_pch_encoder, false);
+	intel_wait_for_vblank(dev, pipe);
 	intel_enable_plane(dev_priv, plane, pipe);
 	intel_enable_planes(crtc);
 	intel_crtc_update_cursor(crtc, true);
@@ -3511,6 +3509,7 @@ static void haswell_crtc_enable(struct drm_crtc *crtc)
 	intel_update_watermarks(crtc);
 	intel_enable_pipe(dev_priv, pipe,
 			  intel_crtc->config.has_pch_encoder, false);
+	intel_wait_for_vblank(dev, pipe);
 
 	if (intel_crtc->config.has_pch_encoder)
 		lpt_pch_enable(crtc);
@@ -3784,6 +3783,7 @@ static void valleyview_crtc_enable(struct drm_crtc *crtc)
 
 	intel_update_watermarks(crtc);
 	intel_enable_pipe(dev_priv, pipe, false, is_dsi);
+	intel_wait_for_vblank(dev, pipe);
 	intel_enable_plane(dev_priv, plane, pipe);
 	intel_enable_planes(crtc);
 	intel_crtc_update_cursor(crtc, true);
@@ -3822,6 +3822,7 @@ static void i9xx_crtc_enable(struct drm_crtc *crtc)
 
 	intel_update_watermarks(crtc);
 	intel_enable_pipe(dev_priv, pipe, false, false);
+	intel_wait_for_vblank(dev, pipe);
 	intel_enable_plane(dev_priv, plane, pipe);
 	intel_enable_planes(crtc);
 	/* The fixup needs to happen before cursor is enabled */
-- 
1.8.3.1

  parent reply	other threads:[~2013-09-19 20:07 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-19 20:07 [PATCH 0/4] Remove useless vblank waits on Haswell Paulo Zanoni
2013-09-19 20:07 ` [PATCH 1/4] drm/i915: WARN in case PIPECONF is already enabled Paulo Zanoni
2013-09-20  6:36   ` Ville Syrjälä
2013-09-20 19:51     ` Paulo Zanoni
2013-09-19 20:07 ` Paulo Zanoni [this message]
2013-09-19 20:07 ` [PATCH 3/4] drm/i915: remove useless vblank wait form haswell_crtc_enable Paulo Zanoni
2013-09-19 20:07 ` [PATCH 4/4] drm/i915: skip useless vblank wait on Haswell audio sequence Paulo Zanoni
2013-09-19 20:28   ` Chris Wilson
2013-09-20  8:17   ` Daniel Vetter
2013-09-20 19:22     ` Paulo Zanoni
2013-09-22 10:37     ` Lin, Mengdong
2013-10-10 18:33       ` Paulo Zanoni
2013-10-10 19:07         ` Daniel Vetter

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=1379621249-1816-3-git-send-email-przanoni@gmail.com \
    --to=przanoni@gmail.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=paulo.r.zanoni@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox