diff options
Diffstat (limited to 'shared-core')
| -rw-r--r-- | shared-core/i915_irq.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c index 9db38706..fbc66749 100644 --- a/shared-core/i915_irq.c +++ b/shared-core/i915_irq.c @@ -153,14 +153,19 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)  		DRM_WAKEUP(&dev_priv->irq_queue);  	if (temp & (VSYNC_PIPEA_FLAG | VSYNC_PIPEB_FLAG)) { -		if ((dev_priv->vblank_pipe & +		int vblank_pipe = dev_priv->vblank_pipe; + +		if ((vblank_pipe &  		     (DRM_I915_VBLANK_PIPE_A | DRM_I915_VBLANK_PIPE_B))  		    == (DRM_I915_VBLANK_PIPE_A | DRM_I915_VBLANK_PIPE_B)) {  			if (temp & VSYNC_PIPEA_FLAG)  				atomic_inc(&dev->vbl_received);  			if (temp & VSYNC_PIPEB_FLAG)  				atomic_inc(&dev->vbl_received2); -		} else +		} else if (((temp & VSYNC_PIPEA_FLAG) && +			    (vblank_pipe & DRM_I915_VBLANK_PIPE_A)) || +			   ((temp & VSYNC_PIPEB_FLAG) && +			    (vblank_pipe & DRM_I915_VBLANK_PIPE_B)))  			atomic_inc(&dev->vbl_received);  		DRM_WAKEUP(&dev->vbl_queue); | 
