drm/i915: restore cursor and sprite state when forcing a config restore v2
authorJesse Barnes <jbarnes@virtuousgeek.org>
Tue, 26 Mar 2013 20:25:27 +0000 (13:25 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 26 Mar 2013 20:37:22 +0000 (21:37 +0100)
Needed for VT switchless resume.

v2: cursor state is now handled correctly in crtc_enable (Daniel)

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index 7307974d29eba58bba21394da2beab97fde7f0f9..8f0db8cf6ced33f6aa609d7c53638e3778c50862 100644 (file)
@@ -9106,6 +9106,7 @@ void intel_modeset_setup_hw_state(struct drm_device *dev,
        struct drm_i915_private *dev_priv = dev->dev_private;
        enum pipe pipe;
        u32 tmp;
+       struct drm_plane *plane;
        struct intel_crtc *crtc;
        struct intel_encoder *encoder;
        struct intel_connector *connector;
@@ -9210,8 +9211,12 @@ setup_pipes:
 
        if (force_restore) {
                for_each_pipe(pipe) {
-                       intel_crtc_restore_mode(dev_priv->pipe_to_crtc_mapping[pipe]);
+                       struct drm_crtc *crtc =
+                               dev_priv->pipe_to_crtc_mapping[pipe];
+                       intel_crtc_restore_mode(crtc);
                }
+               list_for_each_entry(plane, &dev->mode_config.plane_list, head)
+                       intel_plane_restore(plane);
 
                i915_redisable_vga(dev);
        } else {