Re: [PATCH] drm/amd/display: Set native cursor mode for disabled CRTCs again

Ivan Lipski <[email protected]> Tue, 4 Aug 2026 16:05:11 -0400
Newsgroups org.freedesktop.lists.amd-gfx
Organization AMD Inc.
Message-ID <[email protected]>
On 8/3/26 08:45, Timur Kristóf wrote:
> It was regressed by a refactor. Let's fix it again.
>
> Always set native cursor mode when the CRTC is disabled,
> to make sure it doesn't cause atomic commits to fail when
> they are trying to disable the CRTC.
Reviewed-by: Ivan Lipski <[email protected]>
>
> Fixes: 151164f96a4b ("drm/amd/display: add cursor module")
> Cc: Alex Hung <[email protected]>
> Signed-off-by: Timur Kristóf <[email protected]>
> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_cursor.c | 9 +++++++--
>   1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_cursor.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_cursor.c
> index ab50d58896ab..d565433ea06d 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_cursor.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_cursor.c
> @@ -290,15 +290,20 @@ int amdgpu_dm_crtc_get_cursor_mode(struct amdgpu_device *adev,
>   	/* Overlay cursor not supported on HW before DCN
>   	 * DCN401/420 does not have the cursor-on-scaled-plane or cursor-on-yuv-plane restrictions
>   	 * as previous DCN generations, so enable native mode on DCN401/420
> +	 *
> +	 * Always set native cursor mode when the CRTC is disabled,
> +	 * to make sure it doesn't cause atomic commits to fail when
> +	 * they are trying to disable the CRTC.
>   	 */
>   	if (amdgpu_ip_version(adev, DCE_HWIP, 0) == IP_VERSION(4, 0, 1) ||
>   	    amdgpu_ip_version(adev, DCE_HWIP, 0) == IP_VERSION(4, 2, 0) ||
>   #if defined(CONFIG_DRM_AMD_DC_DCN6_0)
>   	    amdgpu_ip_version(adev, DCE_HWIP, 0) == IP_VERSION(4, 2, 1) ||
> -	    amdgpu_ip_version(adev, DCE_HWIP, 0) == IP_VERSION(6, 0, 0)) {
> +	    amdgpu_ip_version(adev, DCE_HWIP, 0) == IP_VERSION(6, 0, 0) ||
>   #else
> -	    amdgpu_ip_version(adev, DCE_HWIP, 0) == IP_VERSION(4, 2, 1)) {
> +	    amdgpu_ip_version(adev, DCE_HWIP, 0) == IP_VERSION(4, 2, 1) ||
>   #endif
> +	    !dm_crtc_state->base.enable) {
>   		*cursor_mode = DM_CURSOR_NATIVE_MODE;
>   		return 0;
>   	}

-- 
Thanks,
Ivan Lipski