]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/dp: Simplify helper to get slice count with joiner
authorStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Mon, 30 Sep 2024 16:35:46 +0000 (22:05 +0530)
committerAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Tue, 1 Oct 2024 09:04:56 +0000 (14:34 +0530)
When bigjoiner is used, we need at least 2 dsc slices per pipe.
Modify the condition in intel_dp_dsc_get_slice_count() to reflect the
same.

Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240930163549.416410-11-ankit.k.nautiyal@intel.com
drivers/gpu/drm/i915/display/intel_dp.c

index d8a4a6fa15142654b64c8e1816a6a3249c8b4bc1..8e091f74eb9af196d2ebfca8bb2df8db7cb0397a 100644 (file)
@@ -1022,8 +1022,12 @@ u8 intel_dp_dsc_get_slice_count(const struct intel_connector *connector,
                    drm_dp_dsc_sink_max_slice_count(connector->dp.dsc_dpcd, false))
                        break;
 
-               /* big joiner needs small joiner to be enabled */
-               if (num_joined_pipes == 2 && test_slice_count < 4)
+                /*
+                 * Bigjoiner needs small joiner to be enabled.
+                 * So there should be at least 2 dsc slices per pipe,
+                 * whenever bigjoiner is enabled.
+                 */
+               if (num_joined_pipes > 1 && valid_dsc_slicecount[i] < 2)
                        continue;
 
                if (min_slice_count <= test_slice_count)