drm/amd/display: Set cursor position as per address.
authorYongqiang Sun <yongqiang.sun@amd.com>
Wed, 18 Oct 2017 15:59:13 +0000 (11:59 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 4 Dec 2017 21:33:23 +0000 (16:33 -0500)
In case of pipe split, cursor position should also be
programmed as per cursor address.

Signed-off-by: Yongqiang Sun <yongqiang.sun@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c

index b477a65..40178d8 100644 (file)
@@ -2414,7 +2414,6 @@ static void program_all_pipe_in_tree(
        }
 
        if (pipe_ctx->plane_state != NULL) {
-               struct dc_cursor_position position = { 0 };
                struct pipe_ctx *cur_pipe_ctx =
                                &dc->current_state->res_ctx.pipe_ctx[pipe_ctx->pipe_idx];
 
@@ -2434,11 +2433,13 @@ static void program_all_pipe_in_tree(
                update_dchubp_dpp(dc, pipe_ctx, context);
 
                /* TODO: this is a hack w/a for switching from mpo to pipe split */
-               dc_stream_set_cursor_position(pipe_ctx->stream, &position);
+               if (pipe_ctx->stream->cursor_attributes.address.quad_part != 0) {
+                       struct dc_cursor_position position = { 0 };
 
-               if (pipe_ctx->stream->cursor_attributes.address.quad_part != 0)
+                       dc_stream_set_cursor_position(pipe_ctx->stream, &position);
                        dc_stream_set_cursor_attributes(pipe_ctx->stream,
                                &pipe_ctx->stream->cursor_attributes);
+               }
 
                if (cur_pipe_ctx->plane_state != pipe_ctx->plane_state) {
                        dc->hwss.set_input_transfer_func(