* RE: [PATCH] drm/amd/display: Reject cursor plane on DCE when scaled differently than primary
2026-01-30 0:45 ` Rodrigo Siqueira
@ 2026-01-30 13:36 ` Wheeler, Daniel
2026-02-09 17:29 ` Alex Hung
1 sibling, 0 replies; 4+ messages in thread
From: Wheeler, Daniel @ 2026-01-30 13:36 UTC (permalink / raw)
To: Rodrigo Siqueira, Timur Kristóf, Hung, Alex,
Chung, ChiaHsuan (Tom)
Cc: amd-gfx@lists.freedesktop.org, Deucher, Alexander,
Limonciello, Mario, LIPSKI, IVAN, Wentland, Harry,
Li, Sun peng (Leo)
[Public]
+@Chung, ChiaHsuan (Tom) as he's running promotion next week.
Thanks for the heads up Siqueira!
Thank you,
Dan Wheeler
Sr. Technologist | AMD
SW Display
------------------------------------------------------------------------------------------------------------------
1 Commerce Valley Dr E, Thornhill, ON L3T 7X6
amd.com
-----Original Message-----
From: Rodrigo Siqueira <siqueira@igalia.com>
Sent: Thursday, January 29, 2026 7:45 PM
To: Timur Kristóf <timur.kristof@gmail.com>; Hung, Alex <Alex.Hung@amd.com>; Wheeler, Daniel <Daniel.Wheeler@amd.com>
Cc: amd-gfx@lists.freedesktop.org; Deucher, Alexander <Alexander.Deucher@amd.com>; Limonciello, Mario <Mario.Limonciello@amd.com>; LIPSKI, IVAN <IVAN.LIPSKI@amd.com>; Wentland, Harry <Harry.Wentland@amd.com>; Li, Sun peng (Leo) <Sunpeng.Li@amd.com>
Subject: Re: [PATCH] drm/amd/display: Reject cursor plane on DCE when scaled differently than primary
On 01/18, Timur Kristóf wrote:
> Currently DCE doesn't support the overlay cursor, so the
> dm_crtc_get_cursor_mode() function returns DM_CURSOR_NATIVE_MODE
> unconditionally. The outcome is that it doesn't check for the
> conditions that would necessitate the overlay cursor, meaning that it
> doesn't reject cases where the native cursor mode isn't supported on
> DCE.
>
> Remove the early return from dm_crtc_get_cursor_mode() for DCE and
> instead let it perform the necessary checks and return
> DM_CURSOR_OVERLAY_MODE. Add a later check that rejects when
> DM_CURSOR_OVERLAY_MODE would be used with DCE.
>
> Fixes: 1b04dcca4fb1 ("drm/amd/display: Introduce overlay cursor mode")
> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4600
> Suggested-by: Leo Li <sunpeng.li@amd.com>
> Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 655c9fcb078a..3e1ba5521f2b 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -12262,10 +12262,9 @@ static int dm_crtc_get_cursor_mode(struct
> amdgpu_device *adev,
>
> /* Overlay cursor not supported on HW before DCN
> * DCN401 does not have the cursor-on-scaled-plane or cursor-on-yuv-plane restrictions
> - * as previous DCN generations, so enable native mode on DCN401 in addition to DCE
> + * as previous DCN generations, so enable native mode on DCN401
> */
> - if (amdgpu_ip_version(adev, DCE_HWIP, 0) == 0 ||
> - amdgpu_ip_version(adev, DCE_HWIP, 0) == IP_VERSION(4, 0, 1)) {
> + if (amdgpu_ip_version(adev, DCE_HWIP, 0) == IP_VERSION(4, 0, 1)) {
> *cursor_mode = DM_CURSOR_NATIVE_MODE;
> return 0;
> }
> @@ -12585,6 +12584,12 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
> * need to be added for DC to not disable a plane by mistake
> */
> if (dm_new_crtc_state->cursor_mode == DM_CURSOR_OVERLAY_MODE) {
> + if (amdgpu_ip_version(adev, DCE_HWIP, 0) == 0) {
> + drm_dbg(dev, "Overlay cursor not supported on DCE\n");
> + ret = -EINVAL;
> + goto fail;
> + }
> +
> ret = drm_atomic_add_affected_planes(state, crtc);
> if (ret)
> goto fail;
> --
> 2.52.0
>
Hi,
This change lgtm.
Alex, Dan,
Could you include this patch in the next week promotion?
Reviewed-by: Rodrigo Siqueira <siqueira@igalia.com>
Thanks
--
Rodrigo Siqueira
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] drm/amd/display: Reject cursor plane on DCE when scaled differently than primary
2026-01-30 0:45 ` Rodrigo Siqueira
2026-01-30 13:36 ` Wheeler, Daniel
@ 2026-02-09 17:29 ` Alex Hung
1 sibling, 0 replies; 4+ messages in thread
From: Alex Hung @ 2026-02-09 17:29 UTC (permalink / raw)
To: Rodrigo Siqueira, Timur Kristóf, Dan Wheeler
Cc: amd-gfx, Alexander.Deucher, Mario Limonciello, Ivan Lipski,
harry.wentland, Leo Li
On 1/29/26 17:45, Rodrigo Siqueira wrote:
> On 01/18, Timur Kristóf wrote:
>> Currently DCE doesn't support the overlay cursor, so the
>> dm_crtc_get_cursor_mode() function returns DM_CURSOR_NATIVE_MODE
>> unconditionally. The outcome is that it doesn't check for the
>> conditions that would necessitate the overlay cursor, meaning
>> that it doesn't reject cases where the native cursor mode isn't
>> supported on DCE.
>>
>> Remove the early return from dm_crtc_get_cursor_mode() for
>> DCE and instead let it perform the necessary checks and
>> return DM_CURSOR_OVERLAY_MODE. Add a later check that rejects
>> when DM_CURSOR_OVERLAY_MODE would be used with DCE.
>>
>> Fixes: 1b04dcca4fb1 ("drm/amd/display: Introduce overlay cursor mode")
>> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4600
>> Suggested-by: Leo Li <sunpeng.li@amd.com>
>> Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
>> ---
>> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 11 ++++++++---
>> 1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> index 655c9fcb078a..3e1ba5521f2b 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> @@ -12262,10 +12262,9 @@ static int dm_crtc_get_cursor_mode(struct amdgpu_device *adev,
>>
>> /* Overlay cursor not supported on HW before DCN
>> * DCN401 does not have the cursor-on-scaled-plane or cursor-on-yuv-plane restrictions
>> - * as previous DCN generations, so enable native mode on DCN401 in addition to DCE
>> + * as previous DCN generations, so enable native mode on DCN401
>> */
>> - if (amdgpu_ip_version(adev, DCE_HWIP, 0) == 0 ||
>> - amdgpu_ip_version(adev, DCE_HWIP, 0) == IP_VERSION(4, 0, 1)) {
>> + if (amdgpu_ip_version(adev, DCE_HWIP, 0) == IP_VERSION(4, 0, 1)) {
>> *cursor_mode = DM_CURSOR_NATIVE_MODE;
>> return 0;
>> }
>> @@ -12585,6 +12584,12 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
>> * need to be added for DC to not disable a plane by mistake
>> */
>> if (dm_new_crtc_state->cursor_mode == DM_CURSOR_OVERLAY_MODE) {
>> + if (amdgpu_ip_version(adev, DCE_HWIP, 0) == 0) {
>> + drm_dbg(dev, "Overlay cursor not supported on DCE\n");
>> + ret = -EINVAL;
>> + goto fail;
>> + }
>> +
>> ret = drm_atomic_add_affected_planes(state, crtc);
>> if (ret)
>> goto fail;
>> --
>> 2.52.0
>>
>
> Hi,
>
> This change lgtm.
>
> Alex, Dan,
> Could you include this patch in the next week promotion?
>
> Reviewed-by: Rodrigo Siqueira <siqueira@igalia.com>
>
> Thanks
>
This was tested in promotion test and no issues were found.
^ permalink raw reply [flat|nested] 4+ messages in thread