{
        struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
 
-       dev_priv->color_funcs->load_luts(crtc_state);
+       dev_priv->display.funcs.color->load_luts(crtc_state);
 }
 
 void intel_color_commit_noarm(const struct intel_crtc_state *crtc_state)
 {
        struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
 
-       if (dev_priv->color_funcs->color_commit_noarm)
-               dev_priv->color_funcs->color_commit_noarm(crtc_state);
+       if (dev_priv->display.funcs.color->color_commit_noarm)
+               dev_priv->display.funcs.color->color_commit_noarm(crtc_state);
 }
 
 void intel_color_commit_arm(const struct intel_crtc_state *crtc_state)
 {
        struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
 
-       dev_priv->color_funcs->color_commit_arm(crtc_state);
+       dev_priv->display.funcs.color->color_commit_arm(crtc_state);
 }
 
 static bool intel_can_preload_luts(const struct intel_crtc_state *new_crtc_state)
 {
        struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
 
-       return dev_priv->color_funcs->color_check(crtc_state);
+       return dev_priv->display.funcs.color->color_check(crtc_state);
 }
 
 void intel_color_get_config(struct intel_crtc_state *crtc_state)
 {
        struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
 
-       if (dev_priv->color_funcs->read_luts)
-               dev_priv->color_funcs->read_luts(crtc_state);
+       if (dev_priv->display.funcs.color->read_luts)
+               dev_priv->display.funcs.color->read_luts(crtc_state);
 }
 
 static bool need_plane_update(struct intel_plane *plane,
 
        if (HAS_GMCH(dev_priv)) {
                if (IS_CHERRYVIEW(dev_priv)) {
-                       dev_priv->color_funcs = &chv_color_funcs;
+                       dev_priv->display.funcs.color = &chv_color_funcs;
                } else if (DISPLAY_VER(dev_priv) >= 4) {
-                       dev_priv->color_funcs = &i965_color_funcs;
+                       dev_priv->display.funcs.color = &i965_color_funcs;
                } else {
-                       dev_priv->color_funcs = &i9xx_color_funcs;
+                       dev_priv->display.funcs.color = &i9xx_color_funcs;
                }
        } else {
                if (DISPLAY_VER(dev_priv) >= 11)
-                       dev_priv->color_funcs = &icl_color_funcs;
+                       dev_priv->display.funcs.color = &icl_color_funcs;
                else if (DISPLAY_VER(dev_priv) == 10)
-                       dev_priv->color_funcs = &glk_color_funcs;
+                       dev_priv->display.funcs.color = &glk_color_funcs;
                else if (DISPLAY_VER(dev_priv) == 9)
-                       dev_priv->color_funcs = &skl_color_funcs;
+                       dev_priv->display.funcs.color = &skl_color_funcs;
                else if (DISPLAY_VER(dev_priv) == 8)
-                       dev_priv->color_funcs = &bdw_color_funcs;
+                       dev_priv->display.funcs.color = &bdw_color_funcs;
                else if (DISPLAY_VER(dev_priv) == 7) {
                        if (IS_HASWELL(dev_priv))
-                               dev_priv->color_funcs = &hsw_color_funcs;
+                               dev_priv->display.funcs.color = &hsw_color_funcs;
                        else
-                               dev_priv->color_funcs = &ivb_color_funcs;
+                               dev_priv->display.funcs.color = &ivb_color_funcs;
                } else
-                       dev_priv->color_funcs = &ilk_color_funcs;
+                       dev_priv->display.funcs.color = &ilk_color_funcs;
        }
 
        drm_crtc_enable_color_mgmt(&crtc->base,