diff options
Diffstat (limited to 'drivers/gpu/drm/drm_irq.c')
| -rw-r--r-- | drivers/gpu/drm/drm_irq.c | 9 | 
1 files changed, 4 insertions, 5 deletions
| diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index c8a34476570a..af9662e58272 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c @@ -131,12 +131,11 @@ static void drm_update_vblank_count(struct drm_device *dev, int crtc)  	/* Reinitialize corresponding vblank timestamp if high-precision query  	 * available. Skip this step if query unsupported or failed. Will -	 * reinitialize delayed at next vblank interrupt in that case. +	 * reinitialize delayed at next vblank interrupt in that case and +	 * assign 0 for now, to mark the vblanktimestamp as invalid.  	 */ -	if (rc) { -		tslot = atomic_read(&vblank->count) + diff; -		vblanktimestamp(dev, crtc, tslot) = t_vblank; -	} +	tslot = atomic_read(&vblank->count) + diff; +	vblanktimestamp(dev, crtc, tslot) = rc ? t_vblank : (struct timeval) {0, 0};  	smp_mb__before_atomic();  	atomic_add(diff, &vblank->count); |