drm/i915: Re-enable vblank irqs for already active pipes
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 20 May 2014 14:20:05 +0000 (17:20 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 21 May 2014 09:50:25 +0000 (11:50 +0200)
commitd3eaf8843da6c3aa0d6b5b480820382c7bd1a89d
tree1f46aaf9f5955de73096df789f9d9b09ad0b57cf
parentd40d91876a58979374e39722399ee93e870a44c9
drm/i915: Re-enable vblank irqs for already active pipes

If a pipe is already active when we init/resume there might not be a
full modeset afterwards so drm_vblank_on() may not get called. In such
a case if someone is holding a vblank reference across a suspend/resume
cycle drm_vblank_get() called after resuming won't re-enable the vblank
interrupts.

So in order to make sure vblank interrupts get re-enabled post-resume,
call drm_vblank_on() in intel_sanitize_crtc() if the crtc is already
active.

v2: Also drm_vblank_off() if the pipe got disabled magically

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Testecase: igt/kms_flip/vblank-vs-suspend
Tested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c