static void hsw_ips_enable(const struct intel_crtc_state *crtc_state)
 {
+       struct intel_display *display = to_intel_display(crtc_state);
        struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
        struct drm_i915_private *i915 = to_i915(crtc->base.dev);
        u32 val;
         * This function is called from post_plane_update, which is run after
         * a vblank wait.
         */
-       drm_WARN_ON(&i915->drm,
+       drm_WARN_ON(display->drm,
                    !(crtc_state->active_planes & ~BIT(PLANE_CURSOR)));
 
        val = IPS_ENABLE;
 
-       if (i915->display.ips.false_color)
+       if (display->ips.false_color)
                val |= IPS_FALSE_COLOR;
 
        if (IS_BROADWELL(i915)) {
-               drm_WARN_ON(&i915->drm,
+               drm_WARN_ON(display->drm,
                            snb_pcode_write(&i915->uncore, DISPLAY_IPS_CONTROL,
                                            val | IPS_PCODE_CONTROL));
                /*
                 * so we need to just enable it and continue on.
                 */
        } else {
-               intel_de_write(i915, IPS_CTL, val);
+               intel_de_write(display, IPS_CTL, val);
                /*
                 * The bit only becomes 1 in the next vblank, so this wait here
                 * is essentially intel_wait_for_vblank. If we don't have this
                 * the HW state readout code will complain that the expected
                 * IPS_CTL value is not the one we read.
                 */
-               if (intel_de_wait_for_set(i915, IPS_CTL, IPS_ENABLE, 50))
-                       drm_err(&i915->drm,
+               if (intel_de_wait_for_set(display, IPS_CTL, IPS_ENABLE, 50))
+                       drm_err(display->drm,
                                "Timed out waiting for IPS enable\n");
        }
 }
 
 bool hsw_ips_disable(const struct intel_crtc_state *crtc_state)
 {
+       struct intel_display *display = to_intel_display(crtc_state);
        struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
        struct drm_i915_private *i915 = to_i915(crtc->base.dev);
        bool need_vblank_wait = false;
                return need_vblank_wait;
 
        if (IS_BROADWELL(i915)) {
-               drm_WARN_ON(&i915->drm,
+               drm_WARN_ON(display->drm,
                            snb_pcode_write(&i915->uncore, DISPLAY_IPS_CONTROL, 0));
                /*
                 * Wait for PCODE to finish disabling IPS. The BSpec specified
                 * 42ms timeout value leads to occasional timeouts so use 100ms
                 * instead.
                 */
-               if (intel_de_wait_for_clear(i915, IPS_CTL, IPS_ENABLE, 100))
-                       drm_err(&i915->drm,
+               if (intel_de_wait_for_clear(display, IPS_CTL, IPS_ENABLE, 100))
+                       drm_err(display->drm,
                                "Timed out waiting for IPS disable\n");
        } else {
-               intel_de_write(i915, IPS_CTL, 0);
-               intel_de_posting_read(i915, IPS_CTL);
+               intel_de_write(display, IPS_CTL, 0);
+               intel_de_posting_read(display, IPS_CTL);
        }
 
        /* We need to wait for a vblank before we can disable the plane. */
 
 bool hsw_crtc_state_ips_capable(const struct intel_crtc_state *crtc_state)
 {
+       struct intel_display *display = to_intel_display(crtc_state);
        struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
        struct drm_i915_private *i915 = to_i915(crtc->base.dev);
 
        if (!hsw_crtc_supports_ips(crtc))
                return false;
 
-       if (!i915->display.params.enable_ips)
+       if (!display->params.enable_ips)
                return false;
 
        if (crtc_state->pipe_bpp > 24)
         * Should measure whether using a lower cdclk w/o IPS
         */
        if (IS_BROADWELL(i915) &&
-           crtc_state->pixel_rate > i915->display.cdclk.max_cdclk_freq * 95 / 100)
+           crtc_state->pixel_rate > display->cdclk.max_cdclk_freq * 95 / 100)
                return false;
 
        return true;
 
 void hsw_ips_get_config(struct intel_crtc_state *crtc_state)
 {
+       struct intel_display *display = to_intel_display(crtc_state);
        struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
        struct drm_i915_private *i915 = to_i915(crtc->base.dev);
 
                return;
 
        if (IS_HASWELL(i915)) {
-               crtc_state->ips_enabled = intel_de_read(i915, IPS_CTL) & IPS_ENABLE;
+               crtc_state->ips_enabled = intel_de_read(display, IPS_CTL) & IPS_ENABLE;
        } else {
                /*
                 * We cannot readout IPS state on broadwell, set to
 static int hsw_ips_debugfs_false_color_get(void *data, u64 *val)
 {
        struct intel_crtc *crtc = data;
-       struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+       struct intel_display *display = to_intel_display(crtc);
 
-       *val = i915->display.ips.false_color;
+       *val = display->ips.false_color;
 
        return 0;
 }
 static int hsw_ips_debugfs_false_color_set(void *data, u64 val)
 {
        struct intel_crtc *crtc = data;
-       struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+       struct intel_display *display = to_intel_display(crtc);
        struct intel_crtc_state *crtc_state;
        int ret;
 
        if (ret)
                return ret;
 
-       i915->display.ips.false_color = val;
+       display->ips.false_color = val;
 
        crtc_state = to_intel_crtc_state(crtc->base.state);
 
 static int hsw_ips_debugfs_status_show(struct seq_file *m, void *unused)
 {
        struct intel_crtc *crtc = m->private;
+       struct intel_display *display = to_intel_display(crtc);
        struct drm_i915_private *i915 = to_i915(crtc->base.dev);
        intel_wakeref_t wakeref;
 
        wakeref = intel_runtime_pm_get(&i915->runtime_pm);
 
        seq_printf(m, "Enabled by kernel parameter: %s\n",
-                  str_yes_no(i915->display.params.enable_ips));
+                  str_yes_no(display->params.enable_ips));
 
-       if (DISPLAY_VER(i915) >= 8) {
+       if (DISPLAY_VER(display) >= 8) {
                seq_puts(m, "Currently: unknown\n");
        } else {
-               if (intel_de_read(i915, IPS_CTL) & IPS_ENABLE)
+               if (intel_de_read(display, IPS_CTL) & IPS_ENABLE)
                        seq_puts(m, "Currently: enabled\n");
                else
                        seq_puts(m, "Currently: disabled\n");