drm/i915: Fix atomic state when reusing the firmware fb
[deliverable/linux.git] / drivers / gpu / drm / i915 / intel_display.c
index 86cbc771bce6460cfa8acd98f007be66b1f8430e..074f204fdc358cca4059275663ff4f81ae39d1f6 100644 (file)
@@ -2439,8 +2439,12 @@ intel_find_plane_obj(struct intel_crtc *intel_crtc,
                return;
 
        if (intel_alloc_plane_obj(intel_crtc, plane_config)) {
-               intel_crtc->base.primary->fb = &plane_config->fb->base;
-               update_state_fb(intel_crtc->base.primary);
+               struct drm_plane *primary = intel_crtc->base.primary;
+
+               primary->fb = &plane_config->fb->base;
+               primary->state->crtc = &intel_crtc->base;
+               update_state_fb(primary);
+
                return;
        }
 
@@ -2464,11 +2468,14 @@ intel_find_plane_obj(struct intel_crtc *intel_crtc,
                        continue;
 
                if (i915_gem_obj_ggtt_offset(obj) == plane_config->base) {
+                       struct drm_plane *primary = intel_crtc->base.primary;
+
                        if (obj->tiling_mode != I915_TILING_NONE)
                                dev_priv->preserve_bios_swizzle = true;
 
                        drm_framebuffer_reference(c->primary->fb);
-                       intel_crtc->base.primary->fb = c->primary->fb;
+                       primary->fb = c->primary->fb;
+                       primary->state->crtc = &intel_crtc->base;
                        update_state_fb(intel_crtc->base.primary);
                        obj->frontbuffer_bits |= INTEL_FRONTBUFFER_PRIMARY(intel_crtc->pipe);
                        break;
This page took 0.029009 seconds and 5 git commands to generate.