From: Stanislav Lisovskiy <stanislav.lisovs...@intel.com>

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.lisovs...@intel.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nauti...@intel.com>
---
 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 a0afb4991334..eb92fda21e87 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -999,8 +999,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