From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 23/24] drm/i915: Add a workaround for sprite only <-> primary only switching Date: Fri, 7 Mar 2014 22:32:55 +0100 Message-ID: <20140307213255.GF25837@phenom.ffwll.local> References: <1394209951-9963-1-git-send-email-ville.syrjala@linux.intel.com> <1394209951-9963-24-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mail-ee0-f44.google.com (mail-ee0-f44.google.com [74.125.83.44]) by gabe.freedesktop.org (Postfix) with ESMTP id 55139FADD9 for ; Fri, 7 Mar 2014 13:32:59 -0800 (PST) Received: by mail-ee0-f44.google.com with SMTP id e49so1966477eek.31 for ; Fri, 07 Mar 2014 13:32:58 -0800 (PST) Content-Disposition: inline In-Reply-To: <1394209951-9963-24-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Fri, Mar 07, 2014 at 06:32:30PM +0200, ville.syrjala@linux.intel.com wro= te: > From: Ville Syrj=E4l=E4 > = > ILK and IVB don't like switching between sprite only and primary only > configurations when LP1+ watermarks have been enabled in the recent > past. Like WaCxSRDisabledForSpriteScaling we can avoid the flash > by disabling LP1+ watermarks for one frame before the critical plane > reconfiguration. > = > Signed-off-by: Ville Syrj=E4l=E4 > --- > drivers/gpu/drm/i915/intel_pm.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > = > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel= _pm.c > index ddf77d5..c011da5 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -3127,9 +3127,18 @@ static int ilk_update_sprite_wm(struct drm_plane *= plane, > * when scaling is disabled. > * > * WaCxSRDisabledForSpriteScaling:ivb > + * > + * We also seem to need something similar when switching between > + * primary only and sprite only configurations. Otherwise the screen > + * flashes black. No underrun reported though. > */ > if (IS_IVYBRIDGE(dev) && config->spr.scaled && ilk_disable_lp_wm(crtc)) > intel_wait_for_vblank(dev, to_intel_plane(plane)->pipe); > + else if (config->pri.enabled !=3D config->spr.enabled && > + config->pri.enabled !=3D params.pri.enabled && > + config->spr.enabled !=3D params.spr.enabled && > + ilk_disable_lp_wm(crtc)) I think it would help readability a bit to extract this monster condition into a tiny helper with descriptive name ... just my bikeshed of the day. -Daniel > + intel_wait_for_vblank(dev, to_intel_plane(plane)->pipe); > = > params.pri =3D config->pri; > params.spr =3D config->spr; > -- = > 1.8.3.2 > = > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- = Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch