Handle the case with DP to HDMI PCON, where sink_format is set to YCbCr444.
In that case PCON is required to be configured to convert from given
output_format to YCbCR444.

Signed-off-by: Ankit Nautiyal <ankit.k.nauti...@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 837532952936..c3f3003c52ca 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -2862,6 +2862,22 @@ void intel_dp_configure_protocol_converter(struct 
intel_dp *intel_dp,
                        MISSING_CASE(crtc_state->output_format);
                        break;
                }
+       } else if (crtc_state->sink_format == INTEL_OUTPUT_FORMAT_YCBCR444) {
+               switch (crtc_state->output_format) {
+               case INTEL_OUTPUT_FORMAT_YCBCR420:
+                       drm_WARN(&i915->drm,
+                                crtc_state->output_format == 
INTEL_OUTPUT_FORMAT_YCBCR420,
+                                "Cannot convert YCbCr420->YCbCr444\n");
+                       break;
+               case INTEL_OUTPUT_FORMAT_YCBCR444:
+                       break;
+               case INTEL_OUTPUT_FORMAT_RGB:
+                       rgb_to_ycbcr = true;
+                       break;
+               default:
+                       MISSING_CASE(crtc_state->output_format);
+                       break;
+               }
        }
 
        tmp = ycbcr444_to_420 ? DP_CONVERSION_TO_YCBCR420_ENABLE : 0;
-- 
2.25.1

Reply via email to