drm/amd/display: Add debug out when viewport too small
authorNikola Cornij <nikola.cornij@amd.com>
Sat, 27 Feb 2021 01:28:49 +0000 (20:28 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 24 Mar 2021 03:31:39 +0000 (23:31 -0400)
[why] It helps debugging display setup issues

Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Nikola Cornij <nikola.cornij@amd.com>
Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Acked-by: Solomon Chiu <solomon.chiu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 78aaed236ceaf53a3bd3eab48ad06c84eae6382c..2cf745c6d93a28382949245b41c7c79cfe50a6d2 100644 (file)
@@ -6569,13 +6569,17 @@ static int dm_plane_helper_check_state(struct drm_plane_state *state,
                        else if (state->crtc_y + state->crtc_h > new_crtc_state->mode.crtc_vdisplay)
                                viewport_height = new_crtc_state->mode.crtc_vdisplay - state->crtc_y;
 
-                       /* If completely outside of screen, viewport_width and/or viewport_height will be negative,
-                        * which is still OK to satisfy the condition below, thereby also covering these cases
-                        * (when plane is completely outside of screen).
-                        * x2 for width is because of pipe-split.
-                        */
-                       if (viewport_width < MIN_VIEWPORT_SIZE*2 || viewport_height < MIN_VIEWPORT_SIZE)
+                       if (viewport_width < 0 || viewport_height < 0) {
+                               DRM_DEBUG_ATOMIC("Plane completely outside of screen\n");
+                               return -EINVAL;
+                       } else if (viewport_width < MIN_VIEWPORT_SIZE*2) { /* x2 for width is because of pipe-split. */
+                               DRM_DEBUG_ATOMIC("Viewport width %d smaller than %d\n", viewport_width, MIN_VIEWPORT_SIZE*2);
+                               return -EINVAL;
+                       } else if (viewport_height < MIN_VIEWPORT_SIZE) {
+                               DRM_DEBUG_ATOMIC("Viewport height %d smaller than %d\n", viewport_height, MIN_VIEWPORT_SIZE);
                                return -EINVAL;
+                       }
+
                }
 
                /* Get min/max allowed scaling factors from plane caps. */