drm/i915: Fix gen3/4 vblank counter wraparound
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 6 Nov 2013 15:56:27 +0000 (13:56 -0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 7 Nov 2013 16:20:17 +0000 (17:20 +0100)
commitedc08d0a40f7ddab6bf7249e59ecf692d36c7192
tree68d7e84d0b1f105c1b07356c42c889c9ae3cbd40
parent2325991e021fb0da21d8d08009d1eea78133745a
drm/i915: Fix gen3/4 vblank counter wraparound

When the hardware frame counter reads 0xffffff and we're already past
vblank start, we'd return 0x1000000 as the vblank counter value. Once
we'd cross into the next frame's active portion, the vblank counter
would wrap to 0. So we're reporting two different vblank counter values
for the same frame.

Fix the problem by masking the cooked value by 0xffffff to make sure
the counter wraps already after vblank start.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_irq.c