diff options
| -rw-r--r-- | shared-core/i915_irq.c | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c index fd08b6e8..126f0379 100644 --- a/shared-core/i915_irq.c +++ b/shared-core/i915_irq.c @@ -406,6 +406,13 @@ u32 i915_get_vblank_counter(struct drm_device *dev, int plane)  	if (i915_in_vblank(dev, pipe))  		count++;  #endif +	/* count may be reset by other driver(e.g. 2D driver),  +	   we have no way to know if it is wrapped or resetted  +	   when count is zero. do a rough guess. +	*/ +	if (count == 0 && dev->last_vblank[pipe] < dev->max_vblank_count/2) +		dev->last_vblank[pipe] = 0;  +	  	return count;  } | 
