]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i915: Fix AVI infoframe quantization range for YCbCr output
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 18 Jul 2019 14:50:44 +0000 (17:50 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 20 Sep 2019 18:39:54 +0000 (21:39 +0300)
We're configuring the AVI infoframe quantization range bits as if
we're always transmitting RGB pixels. Let's fix this so that we
correctly indicate limited range YCC quantization range when
transmitting YCbCr instead.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190718145053.25808-4-ville.syrjala@linux.intel.com
Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
drivers/gpu/drm/i915/display/intel_hdmi.c

index 04a8718bd2d7124724d983ea1c7fb7200672bea1..0082c462024622c5b92a31c0fe0a151eb1df04a6 100644 (file)
@@ -724,11 +724,16 @@ intel_hdmi_compute_avi_infoframe(struct intel_encoder *encoder,
 
        drm_hdmi_avi_infoframe_colorspace(frame, conn_state);
 
-       drm_hdmi_avi_infoframe_quant_range(frame, connector,
-                                          adjusted_mode,
-                                          crtc_state->limited_color_range ?
-                                          HDMI_QUANTIZATION_RANGE_LIMITED :
-                                          HDMI_QUANTIZATION_RANGE_FULL);
+       if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_RGB) {
+               drm_hdmi_avi_infoframe_quant_range(frame, connector,
+                                                  adjusted_mode,
+                                                  crtc_state->limited_color_range ?
+                                                  HDMI_QUANTIZATION_RANGE_LIMITED :
+                                                  HDMI_QUANTIZATION_RANGE_FULL);
+       } else {
+               frame->quantization_range = HDMI_QUANTIZATION_RANGE_DEFAULT;
+               frame->ycc_quantization_range = HDMI_YCC_QUANTIZATION_RANGE_LIMITED;
+       }
 
        drm_hdmi_avi_infoframe_content_type(frame, conn_state);