diff mbox

[2/3] drm: Warn if vblank state has become inconsistent.

Message ID 1303884659-739-2-git-send-email-christopher.halse.rogers@canonical.com (mailing list archive)
State New, archived
Headers show

Commit Message

Christopher James Halse Rogers April 27, 2011, 6:10 a.m. UTC
From: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>

After emitting all the waiting vblank events no-one should hold
a vblank reference.  Emit a warning if this is not the case.

Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
---
 drivers/gpu/drm/drm_irq.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

Comments

Michel Dänzer April 27, 2011, 8:38 a.m. UTC | #1
On Mit, 2011-04-27 at 16:10 +1000, christopher.halse.rogers@canonical.com wrote:
> From: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
> 
> After emitting all the waiting vblank events no-one should hold
> a vblank reference.  Emit a warning if this is not the case.
> 
> Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
> ---
>  drivers/gpu/drm/drm_irq.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
> index a1f12cb..72407fa 100644
> --- a/drivers/gpu/drm/drm_irq.c
> +++ b/drivers/gpu/drm/drm_irq.c
> @@ -960,6 +960,7 @@ void drm_vblank_off(struct drm_device *dev, int crtc)
>  						 e->event.sequence);
>  	}
>  
> +	WARN_ON(atomic_read(&dev->vblank_refcount[crtc]) != 0);
>  	spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
>  }
>  EXPORT_SYMBOL(drm_vblank_off);

Reviewed-by: Michel Dänzer <michel@daenzer.net>
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index a1f12cb..72407fa 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -960,6 +960,7 @@  void drm_vblank_off(struct drm_device *dev, int crtc)
 						 e->event.sequence);
 	}
 
+	WARN_ON(atomic_read(&dev->vblank_refcount[crtc]) != 0);
 	spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
 }
 EXPORT_SYMBOL(drm_vblank_off);