if (INTEL_GEN(dev_priv) < 4) {
                if (intel_crtc->pipe == PIPE_B)
                        dspcntr |= DISPPLANE_SEL_PIPE_B;
-
-               /* pipesrc and dspsize control the size that is scaled from,
-                * which should always be the user's requested size.
-                */
-               I915_WRITE(DSPSIZE(plane),
-                          ((crtc_state->pipe_src_h - 1) << 16) |
-                          (crtc_state->pipe_src_w - 1));
-               I915_WRITE(DSPPOS(plane), 0);
-       } else if (IS_CHERRYVIEW(dev_priv) && plane == PLANE_B) {
-               I915_WRITE(PRIMSIZE(plane),
-                          ((crtc_state->pipe_src_h - 1) << 16) |
-                          (crtc_state->pipe_src_w - 1));
-               I915_WRITE(PRIMPOS(plane), 0);
-               I915_WRITE(PRIMCNSTALPHA(plane), 0);
        }
 
        switch (fb->format->format) {
        intel_crtc->adjusted_x = x;
        intel_crtc->adjusted_y = y;
 
+       if (INTEL_GEN(dev_priv) < 4) {
+               /* pipesrc and dspsize control the size that is scaled from,
+                * which should always be the user's requested size.
+                */
+               I915_WRITE(DSPSIZE(plane),
+                          ((crtc_state->pipe_src_h - 1) << 16) |
+                          (crtc_state->pipe_src_w - 1));
+               I915_WRITE(DSPPOS(plane), 0);
+       } else if (IS_CHERRYVIEW(dev_priv) && plane == PLANE_B) {
+               I915_WRITE(PRIMSIZE(plane),
+                          ((crtc_state->pipe_src_h - 1) << 16) |
+                          (crtc_state->pipe_src_w - 1));
+               I915_WRITE(PRIMPOS(plane), 0);
+               I915_WRITE(PRIMCNSTALPHA(plane), 0);
+       }
+
        I915_WRITE(reg, dspcntr);
 
        I915_WRITE(DSPSTRIDE(plane), fb->pitches[0]);
 
        plane_ctl = PLANE_CTL_ENABLE;
 
-       if (IS_GEMINILAKE(dev_priv)) {
-               I915_WRITE(PLANE_COLOR_CTL(pipe, plane_id),
-                          PLANE_COLOR_PIPE_GAMMA_ENABLE |
-                          PLANE_COLOR_PIPE_CSC_ENABLE |
-                          PLANE_COLOR_PLANE_GAMMA_DISABLE);
-       } else {
+       if (!IS_GEMINILAKE(dev_priv)) {
                plane_ctl |=
                        PLANE_CTL_PIPE_GAMMA_ENABLE |
                        PLANE_CTL_PIPE_CSC_ENABLE |
        intel_crtc->adjusted_x = src_x;
        intel_crtc->adjusted_y = src_y;
 
+       if (IS_GEMINILAKE(dev_priv)) {
+               I915_WRITE(PLANE_COLOR_CTL(pipe, plane_id),
+                          PLANE_COLOR_PIPE_GAMMA_ENABLE |
+                          PLANE_COLOR_PIPE_CSC_ENABLE |
+                          PLANE_COLOR_PLANE_GAMMA_DISABLE);
+       }
+
        I915_WRITE(PLANE_CTL(pipe, plane_id), plane_ctl);
        I915_WRITE(PLANE_OFFSET(pipe, plane_id), (src_y << 16) | src_x);
        I915_WRITE(PLANE_STRIDE(pipe, plane_id), stride);
 
 
        plane_ctl = PLANE_CTL_ENABLE;
 
-       if (IS_GEMINILAKE(dev_priv)) {
-               I915_WRITE(PLANE_COLOR_CTL(pipe, plane_id),
-                          PLANE_COLOR_PIPE_GAMMA_ENABLE |
-                          PLANE_COLOR_PIPE_CSC_ENABLE |
-                          PLANE_COLOR_PLANE_GAMMA_DISABLE);
-       } else {
+       if (!IS_GEMINILAKE(dev_priv)) {
                plane_ctl |=
                        PLANE_CTL_PIPE_GAMMA_ENABLE |
                        PLANE_CTL_PIPE_CSC_ENABLE |
        plane_ctl |= skl_plane_ctl_tiling(fb->modifier);
        plane_ctl |= skl_plane_ctl_rotation(rotation);
 
-       if (key->flags) {
-               I915_WRITE(PLANE_KEYVAL(pipe, plane_id), key->min_value);
-               I915_WRITE(PLANE_KEYMAX(pipe, plane_id), key->max_value);
-               I915_WRITE(PLANE_KEYMSK(pipe, plane_id), key->channel_mask);
-       }
-
        if (key->flags & I915_SET_COLORKEY_DESTINATION)
                plane_ctl |= PLANE_CTL_KEY_ENABLE_DESTINATION;
        else if (key->flags & I915_SET_COLORKEY_SOURCE)
        crtc_w--;
        crtc_h--;
 
+       if (IS_GEMINILAKE(dev_priv)) {
+               I915_WRITE(PLANE_COLOR_CTL(pipe, plane_id),
+                          PLANE_COLOR_PIPE_GAMMA_ENABLE |
+                          PLANE_COLOR_PIPE_CSC_ENABLE |
+                          PLANE_COLOR_PLANE_GAMMA_DISABLE);
+       }
+
+       if (key->flags) {
+               I915_WRITE(PLANE_KEYVAL(pipe, plane_id), key->min_value);
+               I915_WRITE(PLANE_KEYMAX(pipe, plane_id), key->max_value);
+               I915_WRITE(PLANE_KEYMSK(pipe, plane_id), key->channel_mask);
+       }
+
        I915_WRITE(PLANE_OFFSET(pipe, plane_id), (y << 16) | x);
        I915_WRITE(PLANE_STRIDE(pipe, plane_id), stride);
        I915_WRITE(PLANE_SIZE(pipe, plane_id), (src_h << 16) | src_w);
        if (rotation & DRM_REFLECT_X)
                sprctl |= SP_MIRROR;
 
+       if (key->flags & I915_SET_COLORKEY_SOURCE)
+               sprctl |= SP_SOURCE_KEY;
+
        /* Sizes are 0 based */
        src_w--;
        src_h--;
 
        linear_offset = intel_fb_xy_to_linear(x, y, plane_state, 0);
 
+       if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B)
+               chv_update_csc(intel_plane, fb->format->format);
+
        if (key->flags) {
                I915_WRITE(SPKEYMINVAL(pipe, plane_id), key->min_value);
                I915_WRITE(SPKEYMAXVAL(pipe, plane_id), key->max_value);
                I915_WRITE(SPKEYMSK(pipe, plane_id), key->channel_mask);
        }
-
-       if (key->flags & I915_SET_COLORKEY_SOURCE)
-               sprctl |= SP_SOURCE_KEY;
-
-       if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B)
-               chv_update_csc(intel_plane, fb->format->format);
-
        I915_WRITE(SPSTRIDE(pipe, plane_id), fb->pitches[0]);
        I915_WRITE(SPPOS(pipe, plane_id), (crtc_y << 16) | crtc_x);
 
        if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
                sprctl |= SPRITE_PIPE_CSC_ENABLE;
 
+       if (key->flags & I915_SET_COLORKEY_DESTINATION)
+               sprctl |= SPRITE_DEST_KEY;
+       else if (key->flags & I915_SET_COLORKEY_SOURCE)
+               sprctl |= SPRITE_SOURCE_KEY;
+
        /* Sizes are 0 based */
        src_w--;
        src_h--;
                I915_WRITE(SPRKEYMSK(pipe), key->channel_mask);
        }
 
-       if (key->flags & I915_SET_COLORKEY_DESTINATION)
-               sprctl |= SPRITE_DEST_KEY;
-       else if (key->flags & I915_SET_COLORKEY_SOURCE)
-               sprctl |= SPRITE_SOURCE_KEY;
-
        I915_WRITE(SPRSTRIDE(pipe), fb->pitches[0]);
        I915_WRITE(SPRPOS(pipe), (crtc_y << 16) | crtc_x);
 
        if (IS_GEN6(dev_priv))
                dvscntr |= DVS_TRICKLE_FEED_DISABLE; /* must disable */
 
+       if (key->flags & I915_SET_COLORKEY_DESTINATION)
+               dvscntr |= DVS_DEST_KEY;
+       else if (key->flags & I915_SET_COLORKEY_SOURCE)
+               dvscntr |= DVS_SOURCE_KEY;
+
        /* Sizes are 0 based */
        src_w--;
        src_h--;
                I915_WRITE(DVSKEYMSK(pipe), key->channel_mask);
        }
 
-       if (key->flags & I915_SET_COLORKEY_DESTINATION)
-               dvscntr |= DVS_DEST_KEY;
-       else if (key->flags & I915_SET_COLORKEY_SOURCE)
-               dvscntr |= DVS_SOURCE_KEY;
-
        I915_WRITE(DVSSTRIDE(pipe), fb->pitches[0]);
        I915_WRITE(DVSPOS(pipe), (crtc_y << 16) | crtc_x);