From: Stanislav Lisovskiy <[email protected]>

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 <[email protected]>
Signed-off-by: Ankit Nautiyal <[email protected]>
Reviewed-by: Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index d8a4a6fa1514..8e091f74eb9a 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -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)
-- 
2.45.2

Reply via email to