From: Victor Lu <[email protected]>

[why]
On DCE, the cursor is not being disabled on commits where there is no
CRTC or FB enabled.

[how]
Explicitly disable the cursor in the commit tail only if the pending
commit disables the CRTC.

Signed-off-by: Victor Lu <[email protected]>
Acked-by: Bindu Ramamurthy <[email protected]>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

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 88893c9711cb..c147ef8120b9 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -8176,6 +8176,16 @@ static void amdgpu_dm_atomic_commit_tail(struct 
drm_atomic_state *state)
                        new_crtc_state->active_changed,
                        new_crtc_state->connectors_changed);
 
+               /* Disable cursor if disabling crtc */
+               if (old_crtc_state->active && !new_crtc_state->active) {
+                       struct dc_cursor_position position;
+
+                       memset(&position, 0, sizeof(position));
+                       mutex_lock(&dm->dc_lock);
+                       
dc_stream_set_cursor_position(dm_old_crtc_state->stream, &position);
+                       mutex_unlock(&dm->dc_lock);
+               }
+
                /* Copy all transient state flags into dc state */
                if (dm_new_crtc_state->stream) {
                        
amdgpu_dm_crtc_copy_transient_flags(&dm_new_crtc_state->base,
-- 
2.25.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to