[Intel-gfx] [PATCH] drm/i915: Only wait one vblank when disabling crc if the pipe is on

Daniel Vetter daniel at ffwll.ch
Fri Jun 6 11:36:37 CEST 2014


On Fri, Jun 06, 2014 at 11:57:10AM +0300, Ville Syrjälä wrote:
> On Fri, Jun 06, 2014 at 08:22:08AM +0200, Daniel Vetter wrote:
> > Otherwise we incur an unsightly WARNING. The mutex locking is a bit
> > overkill, but it curbs races and eventially we might grow a locking
> > check in the vblank wait code to make sure the right crtc lock is
> > held.
> > 
> > This is fallout from
> > 
> > commit 9393707190194eb8b42e412b444a03331db6862f
> > Author:     Jesse Barnes <jbarnes at virtuousgeek.org>
> > AuthorDate: Fri Apr 4 16:12:09 2014 -0700
> > 
> >     drm/i915: warn when a vblank wait times out
> > 
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79612
> > Tested-by: Guo Jinxian <jinxianx.guo at intel.com>
> > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> 
> 
> > ---
> >  drivers/gpu/drm/i915/i915_debugfs.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > index 601caa88c092..cf94e9640627 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -2927,11 +2927,16 @@ static int pipe_crc_set_source(struct drm_device *dev, enum pipe pipe,
> >  	/* real source -> none transition */
> >  	if (source == INTEL_PIPE_CRC_SOURCE_NONE) {
> >  		struct intel_pipe_crc_entry *entries;
> > +		struct intel_crtc *crtc =
> > +			crtc = to_intel_crtc(dev_priv->pipe_to_crtc_mapping[pipe]);
>                         ^^^^^^
> 
> What's that?

Oops. Luckily patch still worked, C rules are bendy enough ;-)

> 
> Otherwise:
> Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

Thanks,
-Daniel

> 
> >  
> >  		DRM_DEBUG_DRIVER("stopping CRCs for pipe %c\n",
> >  				 pipe_name(pipe));
> >  
> > -		intel_wait_for_vblank(dev, pipe);
> > +		mutex_lock(&crtc->base.mutex);
> > +		if (crtc->active)
> > +			intel_wait_for_vblank(dev, pipe);
> > +		mutex_unlock(&crtc->base.mutex);
> >  
> >  		spin_lock_irq(&pipe_crc->lock);
> >  		entries = pipe_crc->entries;
> > -- 
> > 2.0.0
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Ville Syrjälä
> Intel OTC

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list