If the `prefer_sink_yuv420` flag is set via debugfs and the sink supports YCbCr 4:2:0 output for the current mode, prefer YCbCr 4:2:0 over the default RGB when computing the sink format.
This enables explicit testing and validation of 4:2:0 output handling via the debugfs interface, particularly useful in IGT tests targeting scaling and color. Signed-off-by: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahman...@intel.com> --- drivers/gpu/drm/i915/display/intel_dp.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index 625036c47bdf..8b593a6a0c7c 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -3055,6 +3055,15 @@ intel_dp_compute_output_format(struct intel_encoder *encoder, crtc_state->sink_format = intel_dp_sink_format(connector, adjusted_mode); } + /* Check if prefer_sink_yuv420 is enabled and sink supports it, then override RGB */ + if (connector->prefer_sink_yuv420 && + drm_mode_is_420_also(info, adjusted_mode) && + connector->base.ycbcr_420_allowed) { + crtc_state->sink_format = INTEL_OUTPUT_FORMAT_YCBCR420; + drm_dbg_kms(display->drm, "prefer_sink_yuv420 enabled, selected format %d\n", + crtc_state->sink_format); + } + crtc_state->output_format = intel_dp_output_format(connector, crtc_state->sink_format); ret = intel_dp_compute_link_config(encoder, crtc_state, conn_state, -- 2.43.0