drm/i915/dp_mst: Fix symbol clock when calculating the DSC DPT bpp limit
authorImre Deak <imre.deak@intel.com>
Tue, 16 Apr 2024 22:10:01 +0000 (01:10 +0300)
committerImre Deak <imre.deak@intel.com>
Fri, 19 Apr 2024 14:05:36 +0000 (17:05 +0300)
The expected link symbol clock unit when calculating the DSC DPT bpp
limit is kSymbols/sec, aligning with the dotclock's kPixels/sec unit
based on the crtc clock. As opposed to this port_clock is used - which
has a 10 kbits/sec unit - with the resulting symbol clock in 10
kSymbols/sec units (disregarding the rounding error for the 13.5Gbps
rate). Fix the calculation using the expected 10x factor.

Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240416221010.376865-3-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_dp_mst.c

index d43617734009ce5381b20862389ca49b177aa73c..196eeead8cf021d2ab10c20856243432e410d5c5 100644 (file)
@@ -58,8 +58,7 @@ static int intel_dp_mst_check_constraints(struct drm_i915_private *i915, int bpp
 {
        if (intel_dp_is_uhbr(crtc_state) && DISPLAY_VER(i915) < 14 && dsc) {
                int output_bpp = bpp;
-               /* DisplayPort 2 128b/132b, bits per lane is always 32 */
-               int symbol_clock = crtc_state->port_clock / 32;
+               int symbol_clock = intel_dp_link_symbol_clock(crtc_state->port_clock);
 
                if (output_bpp * adjusted_mode->crtc_clock >=
                    symbol_clock * 72) {