OSDN Git Service

drm/amd/display: add debug logs for dm_crtc_helper_atomic_check
authorSimon Ser <contact@emersion.fr>
Wed, 2 Dec 2020 22:38:46 +0000 (17:38 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 2 Dec 2020 22:39:07 +0000 (17:39 -0500)
Instead of silently failing the atomic check, explain what happened via
a debug log. This makes it easier for user-space to figure out why
something failed.

Signed-off-by: Simon Ser <contact@emersion.fr>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Harry Wentland <hwentlan@amd.com>
Cc: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 7201af1..49d1d94 100644 (file)
@@ -6071,8 +6071,10 @@ static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc,
         * userspace which stops using the HW cursor altogether in response to the resulting EINVAL.
         */
        if (crtc_state->enable &&
-           !(crtc_state->plane_mask & drm_plane_mask(crtc->primary)))
+           !(crtc_state->plane_mask & drm_plane_mask(crtc->primary))) {
+               DRM_DEBUG_ATOMIC("Can't enable a CRTC without enabling the primary plane\n");
                return -EINVAL;
+       }
 
        /* In some use cases, like reset, no stream is attached */
        if (!dm_crtc_state->stream)
@@ -6081,6 +6083,7 @@ static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc,
        if (dc_validate_stream(dc, dm_crtc_state->stream) == DC_OK)
                return 0;
 
+       DRM_DEBUG_ATOMIC("Failed DC stream validation\n");
        return ret;
 }