drm/i915: Introduce vfunc read_luts() to create hw lut
authorSwati Sharma <swati2.sharma@intel.com>
Wed, 29 May 2019 09:50:51 +0000 (15:20 +0530)
committerJani Nikula <jani.nikula@intel.com>
Wed, 5 Jun 2019 10:02:03 +0000 (13:02 +0300)
In this patch, a vfunc read_luts() is introduced to create a hw lut
i.e. lut having values read from gamma/degamma registers which will
later be used to compare with sw lut to validate gamma/degamma lut values.

v3: -Rebase
v4: -Renamed intel_get_color_config to intel_color_get_config [Jani]
    -Wrapped get_color_config() [Jani]
v5: -Renamed intel_color_get_config() to intel_color_read_luts()
    -Renamed get_color_config to read_luts
v6: -Renamed intel_color_read_luts() back to intel_color_get_config()
     [Jani and Ville]

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1559123462-7343-2-git-send-email-swati2.sharma@intel.com
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/intel_color.c
drivers/gpu/drm/i915/intel_color.h

index a0539b837df5fe9cc8917ff078d0017280deb0a4..b72ad58dd5a55573145ce83fabb21b7f78eeaf21 100644 (file)
@@ -340,6 +340,7 @@ struct drm_i915_display_funcs {
         * involved with the same commit.
         */
        void (*load_luts)(const struct intel_crtc_state *crtc_state);
+       void (*read_luts)(struct intel_crtc_state *crtc_state);
 };
 
 struct intel_csr {
index 45649904ba5c7fb7551ac638cac0877a5519d667..0b8cf3e8c963e10f95379a0a5fa2323d26b9bb85 100644 (file)
@@ -879,6 +879,14 @@ int intel_color_check(struct intel_crtc_state *crtc_state)
        return dev_priv->display.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->base.crtc->dev);
+
+       if (dev_priv->display.read_luts)
+               dev_priv->display.read_luts(crtc_state);
+}
+
 static bool need_plane_update(struct intel_plane *plane,
                              const struct intel_crtc_state *crtc_state)
 {
index b8a3ce609587ff5f0c635486d7b4bedf8cd82541..057e8ac635559b21a899d7bc630a6afc30ecdad8 100644 (file)
@@ -13,5 +13,6 @@ void intel_color_init(struct intel_crtc *crtc);
 int intel_color_check(struct intel_crtc_state *crtc_state);
 void intel_color_commit(const struct intel_crtc_state *crtc_state);
 void intel_color_load_luts(const struct intel_crtc_state *crtc_state);
+void intel_color_get_config(struct intel_crtc_state *crtc_state);
 
 #endif /* __INTEL_COLOR_H__ */