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

Alex Deucher <[email protected]> Wed, 5 Aug 2026 09:50:07 -0400
Newsgroups org.freedesktop.lists.amd-gfx
Message-ID <CADnq5_MUGJDoniYGTZ+Y6c++5wUjUXmCmC0-Fb8HG8-mJZpJMA@mail.gmail.com>
Applied.  Thanks!

Alex

On Tue, Aug 4, 2026 at 4:43 PM Ivan Lipski <[email protected]> wrote:
>
>
> 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
>