]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/dp: Account with MST, SSC BW overhead for uncompressed DP-MST stream BW
authorImre Deak <imre.deak@intel.com>
Mon, 15 Dec 2025 19:23:50 +0000 (21:23 +0200)
committerImre Deak <imre.deak@intel.com>
Fri, 19 Dec 2025 14:46:40 +0000 (16:46 +0200)
On MST links the symbol alignment and SSC have a BW overhead, which
should be accounted for when calculating the required stream BW, do so
during mode validation for an uncompressed stream.

Reviewed-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patch.msgid.link/20251215192357.172201-11-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_dp_mst.c

index e4dd6b4ca0512e17735acb6eaf36cf17667aa370..0db6ed2d9664cc1d9f935afe44f3226a4f96b35d 100644 (file)
@@ -1458,6 +1458,8 @@ mst_connector_mode_valid_ctx(struct drm_connector *_connector,
        const int min_bpp = 18;
        int max_dotclk = display->cdclk.max_dotclk_freq;
        int max_rate, mode_rate, max_lanes, max_link_clock;
+       unsigned long bw_overhead_flags =
+               DRM_DP_BW_OVERHEAD_MST | DRM_DP_BW_OVERHEAD_SSC_REF_CLK;
        int ret;
        bool dsc = false;
        u16 dsc_max_compressed_bpp = 0;
@@ -1491,7 +1493,8 @@ mst_connector_mode_valid_ctx(struct drm_connector *_connector,
                                               max_link_clock, max_lanes);
        mode_rate = intel_dp_link_required(max_link_clock, max_lanes,
                                           mode->clock, mode->hdisplay,
-                                          fxp_q4_from_int(min_bpp), 0);
+                                          fxp_q4_from_int(min_bpp),
+                                          bw_overhead_flags);
 
        /*
         * TODO: