From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Currently we're failing to respect the sink's max TMDS clock in the DP HDMI DFP code, and exceeding them means the sink won't show a picture [1][2]. So let's improve the situation by checking those limits, and generally fixing up a bunch things in the deep color/4:2:0 related stuff for both native HDMI and DP HDMI DFPs. The end result is fairly unified apporach to this stuff on both sides of the aisle. There's probably more we could try to abstract to share even more code. But that will need a lot of actual thought so leave it for later. The high level algorithm is basically now: for_each(respect TMDS clock limits, disrespect TMDS clock limits) for_each(YCbCr 4:2:0 only, RGB 4:4:4, YCbCr 4:2:0 also) for_each(12bpc,10bpc,8bpc) compute_and_check_the_things with some obvious tweaks for HDMI vs. DP specifics. [1] https://gitlab.freedesktop.org/drm/intel/-/issues/4095 [2] https://gitlab.freedesktop.org/drm/intel/-/issues/2844 v2: HDMI stuff was all merged, DP stuff has been rebased Ville Syrjälä (12): drm/i915/dp: Extract intel_dp_tmds_clock_valid() drm/i915/dp: Respect the sink's max TMDS clock when dealing with DP->HDMI DFPs drm/i915/dp: Extract intel_dp_has_audio() drm/i915/dp: s/intel_dp_hdmi_ycbcr420/intel_dp_is_ycbcr420/ drm/i915/dp: Reorder intel_dp_compute_config() a bit drm/i915/dp: Pass around intel_connector rather than drm_connector drm/i915/dp: Make intel_dp_output_format() usable for "4:2:0 also" modes drm/i915/dp: Rework HDMI DFP TMDS clock handling drm/i915/dp: Add support for "4:2:0 also" modes for DP drm/i915/dp: Duplicate native HDMI TMDS clock limit handling for DP HDMI DFPs drm/i915/dp: Fix DFP rgb->ycbcr conversion matrix drm/i915/dp: Disable DFP RGB->YCbCr conversion for now drivers/gpu/drm/i915/display/intel_dp.c | 320 +++++++++++++++--------- 1 file changed, 201 insertions(+), 119 deletions(-) -- 2.34.1