From: Martin Tsai <[email protected]>

Signed-off-by: Martin Tsai <[email protected]>
Reviewed-by: Tony Cheng <[email protected]>
Acked-by: Harry Wentland <[email protected]>
---
 .../gpu/drm/amd/display/dc/core/dc_stream.c    | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c 
b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
index 3b2ddbd8c054..3732a1de9d6c 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
@@ -178,6 +178,7 @@ bool dc_stream_set_cursor_attributes(
        int i;
        struct dc  *core_dc;
        struct resource_context *res_ctx;
+       struct pipe_ctx *pipe_to_program = NULL;
 
        if (NULL == stream) {
                dm_error("DC: dc_stream is NULL!\n");
@@ -205,9 +206,17 @@ bool dc_stream_set_cursor_attributes(
                if (pipe_ctx->top_pipe && pipe_ctx->plane_state != 
pipe_ctx->top_pipe->plane_state)
                        continue;
 
+               if (!pipe_to_program) {
+                       pipe_to_program = pipe_ctx;
+                       core_dc->hwss.pipe_control_lock(core_dc, 
pipe_to_program, true);
+               }
 
                core_dc->hwss.set_cursor_attribute(pipe_ctx);
        }
+
+       if (pipe_to_program)
+               core_dc->hwss.pipe_control_lock(core_dc, pipe_to_program, 
false);
+
        return true;
 }
 
@@ -218,6 +227,7 @@ bool dc_stream_set_cursor_position(
        int i;
        struct dc  *core_dc;
        struct resource_context *res_ctx;
+       struct pipe_ctx *pipe_to_program = NULL;
 
        if (NULL == stream) {
                dm_error("DC: dc_stream is NULL!\n");
@@ -243,9 +253,17 @@ bool dc_stream_set_cursor_position(
                                !pipe_ctx->plane_res.ipp)
                        continue;
 
+               if (!pipe_to_program) {
+                       pipe_to_program = pipe_ctx;
+                       core_dc->hwss.pipe_control_lock(core_dc, 
pipe_to_program, true);
+               }
+
                core_dc->hwss.set_cursor_position(pipe_ctx);
        }
 
+       if (pipe_to_program)
+               core_dc->hwss.pipe_control_lock(core_dc, pipe_to_program, 
false);
+
        return true;
 }
 
-- 
2.17.0

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

Reply via email to