]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: Configure overlay cc_out precision based on crtc gamma config
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 28 Oct 2019 11:30:34 +0000 (13:30 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 15 May 2020 17:11:17 +0000 (20:11 +0300)
Put the overlay color conversion unit into 10bit mode if the
pipe isn't using the 8bit legacy gamma. Not 100% sure this is
what the intention of the bit was but makes at least some sense to
me.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191028113036.27553-4-ville.syrjala@linux.intel.com
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/display/intel_overlay.c

index 3a69ab159dd744ac061ecce1404be42df7817666..c2d89d7f8852c3d10b1ecabdd28f2789fc9ad98f 100644 (file)
@@ -785,9 +785,13 @@ static int intel_overlay_do_put_image(struct intel_overlay *overlay,
        i915_gem_object_flush_frontbuffer(new_bo, ORIGIN_DIRTYFB);
 
        if (!overlay->active) {
-               u32 oconfig;
+               const struct intel_crtc_state *crtc_state =
+                       overlay->crtc->config;
+               u32 oconfig = 0;
 
-               oconfig = OCONF_CC_OUT_8BIT;
+               if (crtc_state->gamma_enable &&
+                   crtc_state->gamma_mode == GAMMA_MODE_MODE_8BIT)
+                       oconfig |= OCONF_CC_OUT_8BIT;
                if (IS_GEN(dev_priv, 4))
                        oconfig |= OCONF_CSC_MODE_BT709;
                oconfig |= pipe == 0 ?