From: Christopher Snowhill <ch...@kode54.net> amdgpu apparently fudges atomic flips if some software is also tweaking the cursor planes during flips, which results in lovely fallback to non- atomic flips.
Fixes: 41129e236f14 ("drm/amdgpu: Enable async flip on overlay planes") Signed-off-by: Christopher Snowhill <ch...@kode54.net> --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Is there some reason why this was decided to be this way? I see it hasn't changed much since 2018, until the addition of overlay plane checking. Re: https://gitlab.freedesktop.org/drm/amd/-/issues/4263 diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c index b7c6e8d13435..f0c98d67e1f3 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c @@ -1268,7 +1268,8 @@ static int amdgpu_dm_plane_atomic_async_check(struct drm_plane *plane, struct dm_crtc_state *dm_new_crtc_state; if (flip) { - if (plane->type != DRM_PLANE_TYPE_OVERLAY) + if (plane->type != DRM_PLANE_TYPE_OVERLAY && + plane->type != DRM_PLANE_TYPE_CURSOR) return -EINVAL; } else if (plane->type != DRM_PLANE_TYPE_CURSOR) { return -EINVAL; -- 2.50.0