drm/amd/display: don't expose rotation prop for cursor plane
authorSimon Ser <contact@emersion.fr>
Fri, 20 Nov 2020 20:19:00 +0000 (20:19 +0000)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 24 Nov 2020 17:09:52 +0000 (12:09 -0500)
Setting any rotation on the cursor plane is ignored by amdgpu.
Because of DCE/DCN design, it's not possible to rotate the cursor.
Instead of displaying the wrong result, stop advertising the rotation
property for the cursor plane.

Now that we check all cursor plane properties in amdgpu_dm_atomic_check,
remove the TODO.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
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 b27d17714ebdc2ef45e6ad97904922f31c86973f..08539f43158646c0edcf7c3a464c04d164aaef9b 100644 (file)
@@ -6604,7 +6604,8 @@ static int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm,
                DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
                DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
 
-       if (dm->adev->asic_type >= CHIP_BONAIRE)
+       if (dm->adev->asic_type >= CHIP_BONAIRE &&
+           plane->type != DRM_PLANE_TYPE_CURSOR)
                drm_plane_create_rotation_property(plane, DRM_MODE_ROTATE_0,
                                                   supported_rotations);
 
@@ -8967,7 +8968,6 @@ static int dm_update_plane_state(struct dc *dc,
        dm_new_plane_state = to_dm_plane_state(new_plane_state);
        dm_old_plane_state = to_dm_plane_state(old_plane_state);
 
-       /*TODO Implement better atomic check for cursor plane */
        if (plane->type == DRM_PLANE_TYPE_CURSOR) {
                if (!enable || !new_plane_crtc ||
                        drm_atomic_plane_disabling(plane->state, new_plane_state))