Message ID | 1410363371-11282-1-git-send-email-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Sep 10, 2014 at 05:36:08PM +0200, Daniel Vetter wrote: > With the new support for immediate vblank disabling we always disabled > the vblank interrupt right away, irrespective of the vblank offdelay > setting. > > But being able to let vblanks run forever is fairly useful for > debugging, so restore that behaviour. > > Suggested-by: Mario Kleiner <mario.kleiner.de@gmail.com> > Cc: Mario Kleiner <mario.kleiner.de@gmail.com> > Cc: Matt Roper <matthew.d.roper@intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> > --- > drivers/gpu/drm/drm_irq.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c > index a75da075927c..6eb015020af2 100644 > --- a/drivers/gpu/drm/drm_irq.c > +++ b/drivers/gpu/drm/drm_irq.c > @@ -1024,9 +1024,11 @@ void drm_vblank_put(struct drm_device *dev, int crtc) > > /* Last user schedules interrupt disable */ > if (atomic_dec_and_test(&vblank->refcount)) { > - if (dev->vblank_disable_immediate || drm_vblank_offdelay < 0) > + if (drm_vblank_offdelay == 0) > + return; > + else if (dev->vblank_disable_immediate || drm_vblank_offdelay < 0) > vblank_disable_fn((unsigned long)vblank); > - else if (drm_vblank_offdelay > 0) > + else > mod_timer(&vblank->disable_timer, > jiffies + ((drm_vblank_offdelay * HZ)/1000)); > } > -- > 1.9.3 >
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index a75da075927c..6eb015020af2 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c @@ -1024,9 +1024,11 @@ void drm_vblank_put(struct drm_device *dev, int crtc) /* Last user schedules interrupt disable */ if (atomic_dec_and_test(&vblank->refcount)) { - if (dev->vblank_disable_immediate || drm_vblank_offdelay < 0) + if (drm_vblank_offdelay == 0) + return; + else if (dev->vblank_disable_immediate || drm_vblank_offdelay < 0) vblank_disable_fn((unsigned long)vblank); - else if (drm_vblank_offdelay > 0) + else mod_timer(&vblank->disable_timer, jiffies + ((drm_vblank_offdelay * HZ)/1000)); }
With the new support for immediate vblank disabling we always disabled the vblank interrupt right away, irrespective of the vblank offdelay setting. But being able to let vblanks run forever is fairly useful for debugging, so restore that behaviour. Suggested-by: Mario Kleiner <mario.kleiner.de@gmail.com> Cc: Mario Kleiner <mario.kleiner.de@gmail.com> Cc: Matt Roper <matthew.d.roper@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- drivers/gpu/drm/drm_irq.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)