From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/2] drm/i915: add asserts for cursor disabled Date: Fri, 13 Sep 2013 14:57:37 +0300 Message-ID: <20130913115737.GR20128@intel.com> References: <20130913073017.GG20128@intel.com> <1379059389-2890-1-git-send-email-jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 27F12E5EEF for ; Fri, 13 Sep 2013 04:57:41 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1379059389-2890-1-git-send-email-jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Fri, Sep 13, 2013 at 11:03:08AM +0300, Jani Nikula wrote: > The cursor is supposed to be disabled during crtc mode set (disabled by > ctrc disable). Assert this is the case. > = > v2: move cursor disabled assert next to plane asserts (Ville) > = > Suggested-by: Chris Wilson > Signed-off-by: Jani Nikula Reviewed-by: Ville Syrj=E4l=E4 > --- > drivers/gpu/drm/i915/intel_display.c | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > = > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/= intel_display.c > index d0137b6..0446dc7 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -1069,6 +1069,26 @@ static void assert_panel_unlocked(struct drm_i915_= private *dev_priv, > pipe_name(pipe)); > } > = > +static void assert_cursor(struct drm_i915_private *dev_priv, > + enum pipe pipe, bool state) > +{ > + struct drm_device *dev =3D dev_priv->dev; > + bool cur_state; > + > + if (IS_IVYBRIDGE(dev) || IS_HASWELL(dev)) > + cur_state =3D I915_READ(CURCNTR_IVB(pipe)) & CURSOR_MODE; > + else if (IS_845G(dev) || IS_I865G(dev)) > + cur_state =3D I915_READ(_CURACNTR) & CURSOR_ENABLE; > + else > + cur_state =3D I915_READ(CURCNTR(pipe)) & CURSOR_MODE; > + > + WARN(cur_state !=3D state, > + "cursor on pipe %c assertion failure (expected %s, current %s)\n", > + pipe_name(pipe), state_string(state), state_string(cur_state)); > +} > +#define assert_cursor_enabled(d, p) assert_cursor(d, p, true) > +#define assert_cursor_disabled(d, p) assert_cursor(d, p, false) > + > void assert_pipe(struct drm_i915_private *dev_priv, > enum pipe pipe, bool state) > { > @@ -1670,6 +1690,7 @@ static void intel_enable_pipe(struct drm_i915_priva= te *dev_priv, enum pipe pipe, > u32 val; > = > assert_planes_disabled(dev_priv, pipe); > + assert_cursor_disabled(dev_priv, pipe); > assert_sprites_disabled(dev_priv, pipe); > = > if (HAS_PCH_LPT(dev_priv->dev)) > @@ -1731,6 +1752,7 @@ static void intel_disable_pipe(struct drm_i915_priv= ate *dev_priv, > * or we might hang the display. > */ > assert_planes_disabled(dev_priv, pipe); > + assert_cursor_disabled(dev_priv, pipe); > assert_sprites_disabled(dev_priv, pipe); > = > /* Don't disable pipe A or pipe A PLLs if needed */ > @@ -3867,6 +3889,7 @@ static void intel_crtc_disable(struct drm_crtc *crt= c) > dev_priv->display.off(crtc); > = > assert_plane_disabled(dev->dev_private, to_intel_crtc(crtc)->plane); > + assert_cursor_disabled(dev_priv, to_intel_crtc(crtc)->pipe); > assert_pipe_disabled(dev->dev_private, to_intel_crtc(crtc)->pipe); > = > if (crtc->fb) { > -- = > 1.7.9.5 -- = Ville Syrj=E4l=E4 Intel OTC