]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/i915/xelpd: Enable Pipe color support for D13 platform
authorUma Shankar <uma.shankar@intel.com>
Thu, 21 Apr 2022 06:15:30 +0000 (14:15 +0800)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 20 May 2022 12:42:42 +0000 (14:42 +0200)
BugLink: https://bugs.launchpad.net/bugs/1967274
Enable pipe color support for Display 13 platforms. Currently
limit to just 10bit gamma and later extend it for logarithmic
gamma, once the new UAPI is agreed by community and implemented
by a userspace consumer.

v2: Updated dev_priv to i915 (Ville)

Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211207071135.3660332-2-uma.shankar@intel.com
(cherry picked from commit e83c18cffaedb1cd5da935b06d49308f92ea50cb)
Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Tim Gardner <tim.gardner@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/gpu/drm/i915/display/intel_color.c

index afcb4bf3826ce05c29fa2ffa5201e2a54a5b9bb6..88f17960f700bc15f8851660730a8e7f44711a46 100644 (file)
@@ -1572,6 +1572,8 @@ static int glk_color_check(struct intel_crtc_state *crtc_state)
 
 static u32 icl_gamma_mode(const struct intel_crtc_state *crtc_state)
 {
+       struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+       struct drm_i915_private *i915 = to_i915(crtc->base.dev);
        u32 gamma_mode = 0;
 
        if (crtc_state->hw.degamma_lut)
@@ -1584,6 +1586,13 @@ static u32 icl_gamma_mode(const struct intel_crtc_state *crtc_state)
        if (!crtc_state->hw.gamma_lut ||
            crtc_state_is_legacy_gamma(crtc_state))
                gamma_mode |= GAMMA_MODE_MODE_8BIT;
+       /*
+        * Enable 10bit gamma for D13
+        * ToDo: Extend to Logarithmic Gamma once the new UAPI
+        * is acccepted and implemented by a userspace consumer
+        */
+       else if (DISPLAY_VER(i915) >= 13)
+               gamma_mode |= GAMMA_MODE_MODE_10BIT;
        else
                gamma_mode |= GAMMA_MODE_MODE_12BIT_MULTI_SEGMENTED;