drm/armada: convert to use vblank_on/off calls
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 11 Oct 2014 22:57:04 +0000 (23:57 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 17 Oct 2014 15:59:09 +0000 (16:59 +0100)
A future commit changes the way various vblank calls behave, which
causes drivers to break.  Converting to use the drm_crtc_vblank_on/off
calls avoids this breakage.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/gpu/drm/armada/armada_crtc.c

index ef6be29..e4a1490 100644 (file)
@@ -260,7 +260,7 @@ static void armada_drm_vblank_off(struct armada_crtc *dcrtc)
         * Tell the DRM core that vblank IRQs aren't going to happen for
         * a while.  This cleans up any pending vblank events for us.
         */
-       drm_vblank_off(dev, dcrtc->num);
+       drm_crtc_vblank_off(&dcrtc->crtc);
 
        /* Handle any pending flip event. */
        spin_lock_irq(&dev->event_lock);
@@ -289,6 +289,8 @@ static void armada_drm_crtc_dpms(struct drm_crtc *crtc, int dpms)
                armada_drm_crtc_update(dcrtc);
                if (dpms_blanked(dpms))
                        armada_drm_vblank_off(dcrtc);
+               else
+                       drm_crtc_vblank_on(&dcrtc->crtc);
        }
 }
 
@@ -526,7 +528,7 @@ static int armada_drm_crtc_mode_set(struct drm_crtc *crtc,
        /* Wait for pending flips to complete */
        wait_event(dcrtc->frame_wait, !dcrtc->frame_work);
 
-       drm_vblank_pre_modeset(crtc->dev, dcrtc->num);
+       drm_crtc_vblank_off(crtc);
 
        crtc->mode = *adj;
 
@@ -617,7 +619,7 @@ static int armada_drm_crtc_mode_set(struct drm_crtc *crtc,
 
        armada_drm_crtc_update(dcrtc);
 
-       drm_vblank_post_modeset(crtc->dev, dcrtc->num);
+       drm_crtc_vblank_on(crtc);
        armada_drm_crtc_finish_fb(dcrtc, old_fb, dpms_blanked(dcrtc->dpms));
 
        return 0;