public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Only wait one vblank when disabling crc if the pipe is on
@ 2014-06-06  6:22 Daniel Vetter
  2014-06-06  8:57 ` Ville Syrjälä
  2014-06-06 17:18 ` Damien Lespiau
  0 siblings, 2 replies; 6+ messages in thread
From: Daniel Vetter @ 2014-06-06  6:22 UTC (permalink / raw)
  To: Intel Graphics Development; +Cc: Daniel Vetter

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@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@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@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]);
 
 		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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Only wait one vblank when disabling crc if the pipe is on
  2014-06-06  6:22 [PATCH] drm/i915: Only wait one vblank when disabling crc if the pipe is on Daniel Vetter
@ 2014-06-06  8:57 ` Ville Syrjälä
  2014-06-06  9:36   ` Daniel Vetter
  2014-06-06 17:18 ` Damien Lespiau
  1 sibling, 1 reply; 6+ messages in thread
From: Ville Syrjälä @ 2014-06-06  8:57 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Intel Graphics Development

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@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@intel.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@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?

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

>  
>  		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@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Only wait one vblank when disabling crc if the pipe is on
  2014-06-06  8:57 ` Ville Syrjälä
@ 2014-06-06  9:36   ` Daniel Vetter
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Vetter @ 2014-06-06  9:36 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: Daniel Vetter, Intel Graphics Development

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@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@intel.com>
> > Signed-off-by: Daniel Vetter <daniel.vetter@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@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@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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Only wait one vblank when disabling crc if the pipe is on
  2014-06-06  6:22 [PATCH] drm/i915: Only wait one vblank when disabling crc if the pipe is on Daniel Vetter
  2014-06-06  8:57 ` Ville Syrjälä
@ 2014-06-06 17:18 ` Damien Lespiau
  2014-06-06 17:40   ` Daniel Vetter
  1 sibling, 1 reply; 6+ messages in thread
From: Damien Lespiau @ 2014-06-06 17:18 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Intel Graphics Development

On Fri, Jun 06, 2014 at 08:22:08AM +0200, Daniel Vetter wrote:
> +		mutex_lock(&crtc->base.mutex);
> +		if (crtc->active)
> +			intel_wait_for_vblank(dev, pipe);
> +		mutex_unlock(&crtc->base.mutex);

drivers/gpu/drm/i915/i915_debugfs.c: In function ‘pipe_crc_set_source’:
drivers/gpu/drm/i915/i915_debugfs.c:2932:3: warning: passing argument 1 of ‘mutex_lock’ from incompatible pointer type [enabled by default]
   mutex_lock(&crtc->base.mutex);
   ^
In file included from include/linux/seq_file.h:7:0,
                 from drivers/gpu/drm/i915/i915_debugfs.c:29:
include/linux/mutex.h:158:13: note: expected ‘struct mutex *’ but argument is of type ‘struct drm_modeset_lock *’
 extern void mutex_lock(struct mutex *lock);
             ^

-- 
Damien
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Only wait one vblank when disabling crc if the pipe is on
  2014-06-06 17:18 ` Damien Lespiau
@ 2014-06-06 17:40   ` Daniel Vetter
  2014-06-13 12:08     ` Jani Nikula
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Vetter @ 2014-06-06 17:40 UTC (permalink / raw)
  To: Damien Lespiau; +Cc: Daniel Vetter, Intel Graphics Development

On Fri, Jun 06, 2014 at 06:18:01PM +0100, Damien Lespiau wrote:
> On Fri, Jun 06, 2014 at 08:22:08AM +0200, Daniel Vetter wrote:
> > +		mutex_lock(&crtc->base.mutex);
> > +		if (crtc->active)
> > +			intel_wait_for_vblank(dev, pipe);
> > +		mutex_unlock(&crtc->base.mutex);
> 
> drivers/gpu/drm/i915/i915_debugfs.c: In function ‘pipe_crc_set_source’:
> drivers/gpu/drm/i915/i915_debugfs.c:2932:3: warning: passing argument 1 of ‘mutex_lock’ from incompatible pointer type [enabled by default]
>    mutex_lock(&crtc->base.mutex);
>    ^
> In file included from include/linux/seq_file.h:7:0,
>                  from drivers/gpu/drm/i915/i915_debugfs.c:29:
> include/linux/mutex.h:158:13: note: expected ‘struct mutex *’ but argument is of type ‘struct drm_modeset_lock *’
>  extern void mutex_lock(struct mutex *lock);

Oh dang, rebase fail. Thanks for helping the blind, will fix asap.
-Daniel

>              ^
> 
> -- 
> Damien

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Only wait one vblank when disabling crc if the pipe is on
  2014-06-06 17:40   ` Daniel Vetter
@ 2014-06-13 12:08     ` Jani Nikula
  0 siblings, 0 replies; 6+ messages in thread
From: Jani Nikula @ 2014-06-13 12:08 UTC (permalink / raw)
  To: Daniel Vetter, Damien Lespiau; +Cc: Daniel Vetter, Intel Graphics Development

On Fri, 06 Jun 2014, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Fri, Jun 06, 2014 at 06:18:01PM +0100, Damien Lespiau wrote:
>> On Fri, Jun 06, 2014 at 08:22:08AM +0200, Daniel Vetter wrote:
>> > +		mutex_lock(&crtc->base.mutex);
>> > +		if (crtc->active)
>> > +			intel_wait_for_vblank(dev, pipe);
>> > +		mutex_unlock(&crtc->base.mutex);
>> 
>> drivers/gpu/drm/i915/i915_debugfs.c: In function ‘pipe_crc_set_source’:
>> drivers/gpu/drm/i915/i915_debugfs.c:2932:3: warning: passing argument 1 of ‘mutex_lock’ from incompatible pointer type [enabled by default]
>>    mutex_lock(&crtc->base.mutex);
>>    ^
>> In file included from include/linux/seq_file.h:7:0,
>>                  from drivers/gpu/drm/i915/i915_debugfs.c:29:
>> include/linux/mutex.h:158:13: note: expected ‘struct mutex *’ but argument is of type ‘struct drm_modeset_lock *’
>>  extern void mutex_lock(struct mutex *lock);
>
> Oh dang, rebase fail. Thanks for helping the blind, will fix asap.


drivers/gpu/drm/i915/i915_debugfs.c: In function ‘pipe_crc_set_source’:
drivers/gpu/drm/i915/i915_debugfs.c:2932:3: warning: passing argument 1 of ‘mutex_lock’ from incompatible pointer type [enabled by default]
   mutex_lock(&crtc->base.mutex);
   ^
In file included from include/linux/seq_file.h:7:0,
                 from drivers/gpu/drm/i915/i915_debugfs.c:29:
include/linux/mutex.h:158:13: note: expected ‘struct mutex *’ but argument is of type ‘struct drm_modeset_lock *’
 extern void mutex_lock(struct mutex *lock);
             ^
drivers/gpu/drm/i915/i915_debugfs.c:2935:3: warning: passing argument 1 of ‘mutex_unlock’ from incompatible pointer type [enabled by default]
   mutex_unlock(&crtc->base.mutex);
   ^
In file included from include/linux/seq_file.h:7:0,
                 from drivers/gpu/drm/i915/i915_debugfs.c:29:
include/linux/mutex.h:175:13: note: expected ‘struct mutex *’ but argument is of type ‘struct drm_modeset_lock *’
 extern void mutex_unlock(struct mutex *lock);
             ^


33b1879a1038d87d82cd4de82ebedd95ee88e529 is the first bad commit
commit 33b1879a1038d87d82cd4de82ebedd95ee88e529
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Fri Jun 6 08:22:08 2014 +0200

    drm/i915: Only wait one vblank when disabling crc if the pipe is on
    
    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@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@intel.com>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

:040000 040000 ec8ee719363b4eb6f1d90950605694bbe1bb2cf3 b3d5f21458cc6ba201e73a5effb003edadb644f5 M	drivers



BR,
Jani.



-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-06-13 12:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-06  6:22 [PATCH] drm/i915: Only wait one vblank when disabling crc if the pipe is on Daniel Vetter
2014-06-06  8:57 ` Ville Syrjälä
2014-06-06  9:36   ` Daniel Vetter
2014-06-06 17:18 ` Damien Lespiau
2014-06-06 17:40   ` Daniel Vetter
2014-06-13 12:08     ` Jani Nikula

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox