Fix the plane max height and width limits taking into account the
joined pipe limits too.

Bspec: 28692, 49199, 68858
Fixes: 63dc014e37b9 ("drm/i915/dp: Allow big joiner modes in 
intel_dp_mode_valid(), v3.")
Signed-off-by: Suraj Kandpal <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_display.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index ef1436146325..fc578af4f394 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -8450,9 +8450,22 @@ intel_mode_valid_max_plane_size(struct drm_i915_private 
*dev_priv,
         * plane so let's not advertize modes that are
         * too big for that.
         */
-       if (DISPLAY_VER(dev_priv) >= 11) {
-               plane_width_max = 5120 * num_joined_pipes;
-               plane_height_max = 4320;
+       if (DISPLAY_VER(dev_priv) >= 20) {
+               if (num_joined_pipes > 1) {
+                       plane_width_max = 8192;
+                       plane_height_max = 4800;
+               } else {
+                       plane_width_max = 5120;
+                       plane_height_max = 4096;
+               }
+       } else if (DISPLAY_VER(dev_priv) >= 11) {
+               if (num_joined_pipes > 1) {
+                       plane_width_max = 7680;
+                       plane_height_max = 4320;
+               } else {
+                       plane_width_max = 5120;
+                       plane_height_max = 4096;
+               }
        } else {
                plane_width_max = 5120;
                plane_height_max = 4096;
-- 
2.34.1

Reply via email to