All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Egbert Eich <eich@freedesktop.org>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 2/6] drm/i915: Always enable the cursor right after the primary plane
Date: Thu, 6 Jun 2013 20:34:05 +0300	[thread overview]
Message-ID: <20130606173405.GO5004@intel.com> (raw)
In-Reply-To: <20130606163052.GH17947@debian>

On Thu, Jun 06, 2013 at 06:30:52PM +0200, Egbert Eich wrote:
> On Tue, May 21, 2013 at 05:17:27PM +0200, Egbert Eich wrote:
> > On Wed, May 08, 2013 at 12:50:24PM +0300, ville.syrjala@linux.intel.com wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > Follow the same sequence when enabling the cursor plane during
> > > modeset. No point in doing this stuff in different order on different
> > > generations.
> > > 
> > > This should also avoid a needless wait for vblank for the g4x cursor
> > > workaround when the cursor gets enabled anyway.
> > > 
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/intel_display.c | 10 ++++------
> > >  1 file changed, 4 insertions(+), 6 deletions(-)
> > > 
> > > @@ -3727,6 +3725,7 @@ static void i9xx_crtc_enable(struct drm_crtc *crtc)
> > >  
> > >  	intel_enable_pipe(dev_priv, pipe, false);
> > >  	intel_enable_plane(dev_priv, plane, pipe);
> > > +	intel_crtc_update_cursor(crtc, true);
> > >  	if (IS_G4X(dev))
> > >  		g4x_fixup_plane(dev_priv, pipe);
> > >  
> > 
> > As discussed on IRC this may interfere with 
> > 
> > commit 61bc95c1fbbb6a08b55bbe161fdf1ea5493fc595
> > Author: Egbert Eich <eich@suse.com>
> > Date:   Mon Mar 4 09:24:38 2013 -0500
> > 
> >     DRM/i915: On G45 enable cursor plane briefly after enabling the display plane.
> > 
> > described in https://bugs.freedesktop.org/show_bug.cgi?id=61457
> > 
> 
> Today I had the chance to test this. First I tried
> if I can still reproduce the blank with this patch
> added when I disable my voodoo g4x_fixup_plane():
> It turned out it still happens however very rarely
> (like 1 out of 20 tries). When I reenabled my voodoo
> the issue still occurred.
> I had to switch two lines around, ie:
> 
>  	intel_enable_plane(dev_priv, plane, pipe);
>  	if (IS_G4X(dev))
>  		g4x_fixup_plane(dev_priv, pipe);
> +	intel_crtc_update_cursor(crtc, true);
> 
> to avoid the blank screen issue - which is it didn't
> happen in ~75 tries.
> 
> With this change:
> 
> Acked-by: Egbert Eich <eich@suse.com>

Hmm. That means the cursor itself isn't perhaps really relevant, and
it's maybe more about the self refresh.

BTW did you ever try w/ just the self refresh disable but w/o the cursor trick?

We seem to enable self refresh already before we enable any planes (in
intel_update_watermarks()). So maybe something like this would work:

i9xx_crtc_enable()
 ...
 intel_update_watermarks()
 ...
 <SR off>
 intel_enable_pipe()
 intel_enable_plane()
 <enable other planes>
 [ maybe intel_wait_for_vblank(), but we seem to have too many of those already... ]
 <SR back on>

BTW the spec lists an SR workaround, which we don't follow apparently.
It's only relevant for switching between 1 and 2 pipes though. But maybe
there's a more general issue enabling even 1 pipe w/ SR enabled...

I suspect I need to dig more into the g4x watermark/SR stuff at some
point, so this is good practice for me :) I just wish I was able to
reproduce the bug. Maybe I need to find a ctg instead of the elk I
have...

-- 
Ville Syrjälä
Intel OTC

  reply	other threads:[~2013-06-06 17:34 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-08  9:50 [PATCH 0/6] drm/i915: Unfify some modeset sequences ville.syrjala
2013-05-08  9:50 ` [PATCH 1/6] drm/i915: Always load the display palette before enabling the pipe ville.syrjala
2013-05-08 21:29   ` Jesse Barnes
2013-05-31 17:09     ` [PATCH v2] " ville.syrjala
2013-05-31 18:59       ` Daniel Vetter
2013-05-08  9:50 ` [PATCH 2/6] drm/i915: Always enable the cursor right after the primary plane ville.syrjala
2013-05-21 15:17   ` Egbert Eich
2013-05-22 11:15     ` Ville Syrjälä
2013-05-23 11:07       ` Egbert Eich
2013-06-06 16:30     ` Egbert Eich
2013-06-06 17:34       ` Ville Syrjälä [this message]
2013-05-08  9:50 ` [PATCH 3/6] drm/i915: Enable the overlay right after primary and cursor planes ville.syrjala
2013-05-08  9:50 ` [PATCH 4/6] drm/i915: Follow the same sequence when disabling planes ville.syrjala
2013-05-08  9:50 ` [PATCH 5/6] drm/i915: Drop overlay DPMS call from valleyview_crtc_enable ville.syrjala
2013-05-08  9:50 ` [PATCH 6/6] drm/i915: Disable/restore all sprite planes around modeset ville.syrjala

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=20130606173405.GO5004@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=eich@freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.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.