From: Ville Syrjälä <ville.syrj...@linux.intel.com>

CEA-861-F tells us:
"When transmitting any RGB colorimetry, the Source should set the
 YQ-field to match the RGB Quantization Range being transmitted
 (e.g., when Limited Range RGB, set YQ=0 or when Full Range RGB,
 set YQ=1) and the Sink shall ignore the YQ-field."

So let's go ahead and do that. Perhaps there are sinks that don't
ignore the YQ as they should for RGB?

I wasn't able to find similar text in CEA-861-E, so it would seem
to be a fairly "recent" addition.

Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/drm_edid.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index caa2435bac31..6ba9a1a6eae4 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -4320,6 +4320,20 @@ drm_hdmi_avi_infoframe_quant_range(struct 
hdmi_avi_infoframe *frame,
                frame->quantization_range = rgb_quant_range;
        else
                frame->quantization_range = HDMI_QUANTIZATION_RANGE_DEFAULT;
+
+       /*
+        * CEA-861-F:
+        * "When transmitting any RGB colorimetry, the Source should set the
+        *  YQ-field to match the RGB Quantization Range being transmitted
+        *  (e.g., when Limited Range RGB, set YQ=0 or when Full Range RGB,
+        *  set YQ=1) and the Sink shall ignore the YQ-field."
+        */
+       if (rgb_quant_range == HDMI_QUANTIZATION_RANGE_LIMITED)
+               frame->ycc_quantization_range =
+                       HDMI_YCC_QUANTIZATION_RANGE_LIMITED;
+       else
+               frame->ycc_quantization_range =
+                       HDMI_YCC_QUANTIZATION_RANGE_FULL;
 }
 EXPORT_SYMBOL(drm_hdmi_avi_infoframe_quant_range);
 
-- 
2.10.2

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

Reply via email to