Merge tag 'locks-v3.16-2' of git://git.samba.org/jlayton/linux
[cascardo/linux.git] / drivers / gpu / drm / i915 / intel_sprite.c
index 213cd58..1b66ddc 100644 (file)
@@ -55,7 +55,7 @@ static bool intel_pipe_update_start(struct intel_crtc *crtc, uint32_t *start_vbl
        int scanline, min, max, vblank_start;
        DEFINE_WAIT(wait);
 
-       WARN_ON(!mutex_is_locked(&crtc->base.mutex));
+       WARN_ON(!drm_modeset_is_locked(&crtc->base.mutex));
 
        vblank_start = mode->crtc_vblank_start;
        if (mode->flags & DRM_MODE_FLAG_INTERLACE)
@@ -696,10 +696,7 @@ intel_post_enable_primary(struct drm_crtc *crtc)
         * when going from primary only to sprite only and vice
         * versa.
         */
-       if (intel_crtc->config.ips_enabled) {
-               intel_wait_for_vblank(dev, intel_crtc->pipe);
-               hsw_enable_ips(intel_crtc);
-       }
+       hsw_enable_ips(intel_crtc);
 
        mutex_lock(&dev->struct_mutex);
        intel_update_fbc(dev);
@@ -1021,6 +1018,9 @@ intel_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
 
                intel_crtc->primary_enabled = primary_enabled;
 
+               if (primary_was_enabled != primary_enabled)
+                       intel_crtc_wait_for_pending_flips(crtc);
+
                if (primary_was_enabled && !primary_enabled)
                        intel_pre_disable_primary(crtc);