RGB limited range should be selected only if explicitly asked by userspace by the broadcast RGB property with LIMITED_RANGE. This is mostly enabled in case of CEA modes.
Display port by default uses Full Range, fixed the same. This will help set correct MSA information for colorimetry. Fixes a CTS issue wrt colorimetry. Signed-off-by: Uma Shankar <[email protected]> --- drivers/gpu/drm/i915/display/intel_dp.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index f48912f308df..8758b9d60d5e 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -2708,8 +2708,6 @@ bool intel_dp_limited_color_range(const struct intel_crtc_state *crtc_state, { const struct intel_digital_connector_state *intel_conn_state = to_intel_digital_connector_state(conn_state); - const struct drm_display_mode *adjusted_mode = - &crtc_state->hw.adjusted_mode; /* * Our YCbCr output is always limited range. @@ -2721,18 +2719,13 @@ bool intel_dp_limited_color_range(const struct intel_crtc_state *crtc_state, if (crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB) return false; - if (intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_AUTO) { - /* - * See: - * CEA-861-E - 5.1 Default Encoding Parameters - * VESA DisplayPort Ver.1.2a - 5.1.1.1 Video Colorimetry - */ - return crtc_state->pipe_bpp != 18 && - drm_default_rgb_quant_range(adjusted_mode) == - HDMI_QUANTIZATION_RANGE_LIMITED; - } else { - return intel_conn_state->broadcast_rgb == - INTEL_BROADCAST_RGB_LIMITED; + switch (intel_conn_state->broadcast_rgb) { + case INTEL_BROADCAST_RGB_LIMITED: + return true; + case INTEL_BROADCAST_RGB_FULL: + case INTEL_BROADCAST_RGB_AUTO: + default: + return false; } } -- 2.42.0
