]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/dp: Simplify computing forced DSC BPP for DP-SST
authorImre Deak <imre.deak@intel.com>
Mon, 22 Dec 2025 15:35:44 +0000 (17:35 +0200)
committerImre Deak <imre.deak@intel.com>
Tue, 13 Jan 2026 16:42:20 +0000 (18:42 +0200)
If dsc_compute_compressed_bpp() failed with a forced pipe BPP value
(where the forced pipe BPP value itself is valid within the min/max pipe
BPP limits), the function will also fail when called with the maximum
pipe BPP value: dsc_compute_compressed_bpp() will try all compressed
BPPs below the passed in pipe BPP value and if the function failed with
a given (low) compressed BPP value it will also fail with a compressed
BPP value higher than the one which failed already.

Based on the above remove the logic to retry computing a compressed BPP
value with the maximum pipe BPP value if computing the compressed BPP
failed already with the (lower) forced pipe BPP value.

Reviewed-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patch.msgid.link/20251222153547.713360-18-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_dp.c

index 4603745dee37993dfbb70b019a2f2cf6b56e19af..75ae8811442a003637cdd9b35193e0426afd8278 100644 (file)
@@ -2299,17 +2299,11 @@ static int intel_dp_dsc_compute_pipe_bpp(struct intel_dp *intel_dp,
        int ret;
 
        forced_bpp = intel_dp_force_dsc_pipe_bpp(intel_dp, limits);
+       if (forced_bpp)
+               pipe_bpp = forced_bpp;
+       else
+               pipe_bpp = limits->pipe.max_bpp;
 
-       if (forced_bpp) {
-               ret = dsc_compute_compressed_bpp(intel_dp, pipe_config, conn_state,
-                                                limits, forced_bpp);
-               if (ret == 0) {
-                       pipe_config->pipe_bpp = forced_bpp;
-                       return 0;
-               }
-       }
-
-       pipe_bpp = limits->pipe.max_bpp;
        ret = dsc_compute_compressed_bpp(intel_dp, pipe_config, conn_state,
                                         limits, pipe_bpp);
        if (ret)