Added support for ICL platform multi segment gamma
capabilties and attached the property, exposing the
same to userspace.

Signed-off-by: Uma Shankar <uma.shan...@intel.com>
---
 drivers/gpu/drm/i915/intel_color.c | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_color.c 
b/drivers/gpu/drm/i915/intel_color.c
index 7733c256..1e9f784 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -1011,6 +1011,8 @@ int intel_color_check(struct intel_crtc_state *crtc_state)
 void intel_color_init(struct intel_crtc *crtc)
 {
        struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+       struct multi_segment_gamma_lut multi_segment_lut;
+
 
        drm_mode_crtc_set_gamma_size(&crtc->base, 256);
 
@@ -1049,6 +1051,24 @@ void intel_color_init(struct intel_crtc *crtc)
 
        intel_attach_gamma_mode_property(crtc);
 
-       if (INTEL_GEN(dev_priv) >= 11)
+       if (IS_ICELAKE(dev_priv)) {
+               multi_segment_lut.segment_cnt = 3;
+               multi_segment_lut.precision_bits = 16;
+               multi_segment_lut.segment_lut_cnt_ptr = kzalloc(3 * sizeof(int),
+                                                               GFP_KERNEL);
+               if (!multi_segment_lut.segment_lut_cnt_ptr)
+                       return;
+               multi_segment_lut.segment_lut_cnt_ptr[0] = 9;
+               multi_segment_lut.segment_lut_cnt_ptr[1] = 256;
+               multi_segment_lut.segment_lut_cnt_ptr[2] = 256;
+
                intel_attach_multi_segment_gamma_mode_property(crtc);
+
+               drm_property_replace_global_blob(crtc->base.dev,
+                                                
&crtc->config->multi_segment_gamma_lut,
+                                                sizeof(struct 
multi_segment_gamma_lut),
+                                                &multi_segment_lut,
+                                                &crtc->base.base,
+                                                
dev_priv->multi_segment_gamma_mode_property);
+       }
 }
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to