static void intel_crtc_update_cursor(struct drm_crtc *crtc, bool on);
 
 static void i9xx_crtc_clock_get(struct intel_crtc *crtc,
-                               struct intel_crtc_config *pipe_config);
+                               struct intel_crtc_state *pipe_config);
 static void ironlake_pch_clock_get(struct intel_crtc *crtc,
-                                  struct intel_crtc_config *pipe_config);
+                                  struct intel_crtc_state *pipe_config);
 
 static int intel_set_mode(struct drm_crtc *crtc, struct drm_display_mode *mode,
                          int x, int y, struct drm_framebuffer *old_fb);
 static void haswell_set_pipeconf(struct drm_crtc *crtc);
 static void intel_set_pipe_csc(struct drm_crtc *crtc);
 static void vlv_prepare_pll(struct intel_crtc *crtc,
-                           const struct intel_crtc_config *pipe_config);
+                           const struct intel_crtc_state *pipe_config);
 static void chv_prepare_pll(struct intel_crtc *crtc,
-                           const struct intel_crtc_config *pipe_config);
+                           const struct intel_crtc_state *pipe_config);
 static void intel_begin_crtc_commit(struct drm_crtc *crtc);
 static void intel_finish_crtc_commit(struct drm_crtc *crtc);
 
 }
 
 static void vlv_enable_pll(struct intel_crtc *crtc,
-                          const struct intel_crtc_config *pipe_config)
+                          const struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 static void chv_enable_pll(struct intel_crtc *crtc,
-                          const struct intel_crtc_config *pipe_config)
+                          const struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
-       struct intel_crtc_config *pipe_config = &crtc->config;
+       struct intel_crtc_state *pipe_config = &crtc->config;
 
        if (!crtc->config.gmch_pfit.control)
                return;
 }
 
 static bool ironlake_check_fdi_lanes(struct drm_device *dev, enum pipe pipe,
-                                    struct intel_crtc_config *pipe_config)
+                                    struct intel_crtc_state *pipe_config)
 {
        struct drm_i915_private *dev_priv = dev->dev_private;
        struct intel_crtc *pipe_B_crtc =
 
 #define RETRY 1
 static int ironlake_fdi_compute_config(struct intel_crtc *intel_crtc,
-                                      struct intel_crtc_config *pipe_config)
+                                      struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = intel_crtc->base.dev;
        struct drm_display_mode *adjusted_mode = &pipe_config->adjusted_mode;
 }
 
 static void hsw_compute_ips_config(struct intel_crtc *crtc,
-                                  struct intel_crtc_config *pipe_config)
+                                  struct intel_crtc_state *pipe_config)
 {
        pipe_config->ips_enabled = i915.enable_ips &&
                                   hsw_crtc_supports_ips(crtc) &&
 }
 
 static int intel_crtc_compute_config(struct intel_crtc *crtc,
-                                    struct intel_crtc_config *pipe_config)
+                                    struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 static void vlv_update_pll(struct intel_crtc *crtc,
-                          struct intel_crtc_config *pipe_config)
+                          struct intel_crtc_state *pipe_config)
 {
        u32 dpll, dpll_md;
 
 }
 
 static void vlv_prepare_pll(struct intel_crtc *crtc,
-                           const struct intel_crtc_config *pipe_config)
+                           const struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 static void chv_update_pll(struct intel_crtc *crtc,
-                          struct intel_crtc_config *pipe_config)
+                          struct intel_crtc_state *pipe_config)
 {
        pipe_config->dpll_hw_state.dpll = DPLL_SSC_REF_CLOCK_CHV |
                DPLL_REFA_CLK_ENABLE_VLV | DPLL_VGA_MODE_DIS |
 }
 
 static void chv_prepare_pll(struct intel_crtc *crtc,
-                           const struct intel_crtc_config *pipe_config)
+                           const struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 {
        struct intel_crtc *crtc =
                to_intel_crtc(intel_get_crtc_for_pipe(dev, pipe));
-       struct intel_crtc_config pipe_config = {
+       struct intel_crtc_state pipe_config = {
                .pixel_multiplier = 1,
                .dpll = *dpll,
        };
 }
 
 static void intel_get_pipe_timings(struct intel_crtc *crtc,
-                                  struct intel_crtc_config *pipe_config)
+                                  struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 void intel_mode_from_pipe_config(struct drm_display_mode *mode,
-                                struct intel_crtc_config *pipe_config)
+                                struct intel_crtc_state *pipe_config)
 {
        mode->hdisplay = pipe_config->adjusted_mode.crtc_hdisplay;
        mode->htotal = pipe_config->adjusted_mode.crtc_htotal;
 }
 
 static void i9xx_get_pfit_config(struct intel_crtc *crtc,
-                                struct intel_crtc_config *pipe_config)
+                                struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 static void vlv_crtc_clock_get(struct intel_crtc *crtc,
-                              struct intel_crtc_config *pipe_config)
+                              struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 static void chv_crtc_clock_get(struct intel_crtc *crtc,
-                              struct intel_crtc_config *pipe_config)
+                              struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 static bool i9xx_get_pipe_config(struct intel_crtc *crtc,
-                                struct intel_crtc_config *pipe_config)
+                                struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 void intel_dp_get_m_n(struct intel_crtc *crtc,
-                     struct intel_crtc_config *pipe_config)
+                     struct intel_crtc_state *pipe_config)
 {
        if (crtc->config.has_pch_encoder)
                intel_pch_transcoder_get_m_n(crtc, &pipe_config->dp_m_n);
 }
 
 static void ironlake_get_fdi_m_n_config(struct intel_crtc *crtc,
-                                       struct intel_crtc_config *pipe_config)
+                                       struct intel_crtc_state *pipe_config)
 {
        intel_cpu_transcoder_get_m_n(crtc, pipe_config->cpu_transcoder,
                                     &pipe_config->fdi_m_n, NULL);
 }
 
 static void skylake_get_pfit_config(struct intel_crtc *crtc,
-                                   struct intel_crtc_config *pipe_config)
+                                   struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 static void ironlake_get_pfit_config(struct intel_crtc *crtc,
-                                    struct intel_crtc_config *pipe_config)
+                                    struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 static bool ironlake_get_pipe_config(struct intel_crtc *crtc,
-                                    struct intel_crtc_config *pipe_config)
+                                    struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 
 static void skylake_get_ddi_pll(struct drm_i915_private *dev_priv,
                                enum port port,
-                               struct intel_crtc_config *pipe_config)
+                               struct intel_crtc_state *pipe_config)
 {
        u32 temp, dpll_ctl1;
 
 
 static void haswell_get_ddi_pll(struct drm_i915_private *dev_priv,
                                enum port port,
-                               struct intel_crtc_config *pipe_config)
+                               struct intel_crtc_state *pipe_config)
 {
        pipe_config->ddi_pll_sel = I915_READ(PORT_CLK_SEL(port));
 
 }
 
 static void haswell_get_ddi_port_state(struct intel_crtc *crtc,
-                                      struct intel_crtc_config *pipe_config)
+                                      struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 static bool haswell_get_pipe_config(struct intel_crtc *crtc,
-                                   struct intel_crtc_config *pipe_config)
+                                   struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 static int i9xx_pll_refclk(struct drm_device *dev,
-                          const struct intel_crtc_config *pipe_config)
+                          const struct intel_crtc_state *pipe_config)
 {
        struct drm_i915_private *dev_priv = dev->dev_private;
        u32 dpll = pipe_config->dpll_hw_state.dpll;
 
 /* Returns the clock of the currently programmed mode of the given pipe. */
 static void i9xx_crtc_clock_get(struct intel_crtc *crtc,
-                               struct intel_crtc_config *pipe_config)
+                               struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
 }
 
 static void ironlake_pch_clock_get(struct intel_crtc *crtc,
-                                  struct intel_crtc_config *pipe_config)
+                                  struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
 
        struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
        enum transcoder cpu_transcoder = intel_crtc->config.cpu_transcoder;
        struct drm_display_mode *mode;
-       struct intel_crtc_config pipe_config;
+       struct intel_crtc_state pipe_config;
        int htot = I915_READ(HTOTAL(cpu_transcoder));
        int hsync = I915_READ(HSYNC(cpu_transcoder));
        int vtot = I915_READ(VTOTAL(cpu_transcoder));
 
 static void
 connected_sink_compute_bpp(struct intel_connector *connector,
-                          struct intel_crtc_config *pipe_config)
+                          struct intel_crtc_state *pipe_config)
 {
        int bpp = pipe_config->pipe_bpp;
 
 static int
 compute_baseline_pipe_bpp(struct intel_crtc *crtc,
                          struct drm_framebuffer *fb,
-                         struct intel_crtc_config *pipe_config)
+                         struct intel_crtc_state *pipe_config)
 {
        struct drm_device *dev = crtc->base.dev;
        struct intel_connector *connector;
 }
 
 static void intel_dump_pipe_config(struct intel_crtc *crtc,
-                                  struct intel_crtc_config *pipe_config,
+                                  struct intel_crtc_state *pipe_config,
                                   const char *context)
 {
        DRM_DEBUG_KMS("[CRTC:%d]%s config for pipe %c\n", crtc->base.base.id,
        return true;
 }
 
-static struct intel_crtc_config *
+static struct intel_crtc_state *
 intel_modeset_pipe_config(struct drm_crtc *crtc,
                          struct drm_framebuffer *fb,
                          struct drm_display_mode *mode)
 {
        struct drm_device *dev = crtc->dev;
        struct intel_encoder *encoder;
-       struct intel_crtc_config *pipe_config;
+       struct intel_crtc_state *pipe_config;
        int plane_bpp, ret = -EINVAL;
        bool retry = true;
 
 
 static bool
 intel_pipe_config_compare(struct drm_device *dev,
-                         struct intel_crtc_config *current_config,
-                         struct intel_crtc_config *pipe_config)
+                         struct intel_crtc_state *current_config,
+                         struct intel_crtc_state *pipe_config)
 {
 #define PIPE_CONF_CHECK_X(name)        \
        if (current_config->name != pipe_config->name) { \
        struct drm_i915_private *dev_priv = dev->dev_private;
        struct intel_crtc *crtc;
        struct intel_encoder *encoder;
-       struct intel_crtc_config pipe_config;
+       struct intel_crtc_state pipe_config;
 
        for_each_intel_crtc(dev, crtc) {
                bool enabled = false;
        check_shared_dpll_state(dev);
 }
 
-void ironlake_check_encoder_dotclock(const struct intel_crtc_config *pipe_config,
+void ironlake_check_encoder_dotclock(const struct intel_crtc_state *pipe_config,
                                     int dotclock)
 {
        /*
                crtc->scanline_offset = 1;
 }
 
-static struct intel_crtc_config *
+static struct intel_crtc_state *
 intel_modeset_compute_config(struct drm_crtc *crtc,
                             struct drm_display_mode *mode,
                             struct drm_framebuffer *fb,
                             unsigned *prepare_pipes,
                             unsigned *disable_pipes)
 {
-       struct intel_crtc_config *pipe_config = NULL;
+       struct intel_crtc_state *pipe_config = NULL;
 
        intel_modeset_affected_pipes(crtc, modeset_pipes,
                                     prepare_pipes, disable_pipes);
 static int __intel_set_mode(struct drm_crtc *crtc,
                            struct drm_display_mode *mode,
                            int x, int y, struct drm_framebuffer *fb,
-                           struct intel_crtc_config *pipe_config,
+                           struct intel_crtc_state *pipe_config,
                            unsigned modeset_pipes,
                            unsigned prepare_pipes,
                            unsigned disable_pipes)
 static int intel_set_mode_pipes(struct drm_crtc *crtc,
                                struct drm_display_mode *mode,
                                int x, int y, struct drm_framebuffer *fb,
-                               struct intel_crtc_config *pipe_config,
+                               struct intel_crtc_state *pipe_config,
                                unsigned modeset_pipes,
                                unsigned prepare_pipes,
                                unsigned disable_pipes)
                          struct drm_display_mode *mode,
                          int x, int y, struct drm_framebuffer *fb)
 {
-       struct intel_crtc_config *pipe_config;
+       struct intel_crtc_state *pipe_config;
        unsigned modeset_pipes, prepare_pipes, disable_pipes;
 
        pipe_config = intel_modeset_compute_config(crtc, mode, fb,
        struct drm_device *dev;
        struct drm_mode_set save_set;
        struct intel_set_config *config;
-       struct intel_crtc_config *pipe_config;
+       struct intel_crtc_state *pipe_config;
        unsigned modeset_pipes, prepare_pipes, disable_pipes;
        int ret;
 
 
        bool connectors_active;
        void (*hot_plug)(struct intel_encoder *);
        bool (*compute_config)(struct intel_encoder *,
-                              struct intel_crtc_config *);
+                              struct intel_crtc_state *);
        void (*pre_pll_enable)(struct intel_encoder *);
        void (*pre_enable)(struct intel_encoder *);
        void (*enable)(struct intel_encoder *);
         * pre-filled the pipe config. Note that intel_encoder->base.crtc must
         * be set correctly before calling this function. */
        void (*get_config)(struct intel_encoder *,
-                          struct intel_crtc_config *pipe_config);
+                          struct intel_crtc_state *pipe_config);
        /*
         * Called during system suspend after all pending requests for the
         * encoder are flushed (for example for DP AUX transactions) and
        u32 base;
 };
 
-struct intel_crtc_config {
+struct intel_crtc_state {
        /**
         * quirks - bitfield with hw state readout quirks
         *
        uint32_t cursor_base;
 
        struct intel_plane_config plane_config;
-       struct intel_crtc_config config;
-       struct intel_crtc_config *new_config;
+       struct intel_crtc_state config;
+       struct intel_crtc_state *new_config;
        bool new_enabled;
 
        /* reset counter value when the last flip was submitted */
 bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector);
 void intel_ddi_fdi_disable(struct drm_crtc *crtc);
 void intel_ddi_get_config(struct intel_encoder *encoder,
-                         struct intel_crtc_config *pipe_config);
+                         struct intel_crtc_state *pipe_config);
 
 void intel_ddi_init_dp_buf_reg(struct intel_encoder *encoder);
 void intel_ddi_clock_get(struct intel_encoder *encoder,
-                        struct intel_crtc_config *pipe_config);
+                        struct intel_crtc_state *pipe_config);
 void intel_ddi_set_vc_payload_alloc(struct drm_crtc *crtc, bool state);
 
 /* intel_frontbuffer.c */
 void hsw_enable_pc8(struct drm_i915_private *dev_priv);
 void hsw_disable_pc8(struct drm_i915_private *dev_priv);
 void intel_dp_get_m_n(struct intel_crtc *crtc,
-                     struct intel_crtc_config *pipe_config);
+                     struct intel_crtc_state *pipe_config);
 void intel_dp_set_m_n(struct intel_crtc *crtc);
 int intel_dotclock_calculate(int link_freq, const struct intel_link_m_n *m_n);
 void
-ironlake_check_encoder_dotclock(const struct intel_crtc_config *pipe_config,
+ironlake_check_encoder_dotclock(const struct intel_crtc_state *pipe_config,
                                int dotclock);
 bool intel_crtc_active(struct drm_crtc *crtc);
 void hsw_enable_ips(struct intel_crtc *crtc);
 enum intel_display_power_domain
 intel_display_port_power_domain(struct intel_encoder *intel_encoder);
 void intel_mode_from_pipe_config(struct drm_display_mode *mode,
-                                struct intel_crtc_config *pipe_config);
+                                struct intel_crtc_state *pipe_config);
 int intel_format_to_fourcc(int format);
 void intel_crtc_wait_for_pending_flips(struct drm_crtc *crtc);
 void intel_modeset_preclose(struct drm_device *dev, struct drm_file *file);
 void intel_dp_check_link_status(struct intel_dp *intel_dp);
 int intel_dp_sink_crc(struct intel_dp *intel_dp, u8 *crc);
 bool intel_dp_compute_config(struct intel_encoder *encoder,
-                            struct intel_crtc_config *pipe_config);
+                            struct intel_crtc_state *pipe_config);
 bool intel_dp_is_edp(struct drm_device *dev, enum port port);
 bool intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port,
                        bool long_hpd);
                               struct intel_connector *intel_connector);
 struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder);
 bool intel_hdmi_compute_config(struct intel_encoder *encoder,
-                              struct intel_crtc_config *pipe_config);
+                              struct intel_crtc_state *pipe_config);
 
 
 /* intel_lvds.c */
 void intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode,
                            struct drm_display_mode *adjusted_mode);
 void intel_pch_panel_fitting(struct intel_crtc *crtc,
-                            struct intel_crtc_config *pipe_config,
+                            struct intel_crtc_state *pipe_config,
                             int fitting_mode);
 void intel_gmch_panel_fitting(struct intel_crtc *crtc,
-                             struct intel_crtc_config *pipe_config,
+                             struct intel_crtc_state *pipe_config,
                              int fitting_mode);
 void intel_panel_set_backlight_acpi(struct intel_connector *connector,
                                    u32 level, u32 max);