drm/vblank: Fix flip event vblank count
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 10 Oct 2017 13:33:22 +0000 (16:33 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 12 Oct 2017 14:34:28 +0000 (17:34 +0300)
commit632c6e4edef17c40bba3be67c980d959790d142f
treec763379cbd95e337a67cb450d787d548c3b02cff
parentcccf4e3fe3e286b55634c2c5d0c4399f4288e440
drm/vblank: Fix flip event vblank count

On machines where the vblank interrupt fires some time after the start
of vblank (or we just manage to race with the vblank interrupt handler)
we will currently stuff a stale vblank counter value into the flip event,
and thus we'll prematurely complete the flip.

Switch over to drm_crtc_accurate_vblank_count() to make sure we have an
up to date counter value, crucially also remember to add the +1 so that
the delayed vblank interrupt won't complete the flip prematurely.

Cc: stable@vger.kernel.org
Cc: Daniel Vetter <daniel@ffwll.ch>
Suggested-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171010133322.24029-1-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel@ffwll.ch> #irc
drivers/gpu/drm/drm_vblank.c