From: Alvin Lee <alvin.l...@amd.com>

[Why & How]
Fix a minor sequencing issue where the address update for
a subvp flip should be saved in scratch registers before
the actual flip

Reviewed-by: Austin Zheng <austin.zh...@amd.com>
Acked-by: Wayne Lin <wayne....@amd.com>
Signed-off-by: Alvin Lee <alvin.l...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c 
b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
index a50df7126e39..fe07160932d6 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
@@ -528,11 +528,6 @@ void hwss_build_fast_sequence(struct dc *dc,
                                (*num_steps)++;
                        }
                        if (dc->hwss.update_plane_addr && 
current_mpc_pipe->plane_state->update_flags.bits.addr_update) {
-                               
block_sequence[*num_steps].params.update_plane_addr_params.dc = dc;
-                               
block_sequence[*num_steps].params.update_plane_addr_params.pipe_ctx = 
current_mpc_pipe;
-                               block_sequence[*num_steps].func = 
HUBP_UPDATE_PLANE_ADDR;
-                               (*num_steps)++;
-
                                if (resource_is_pipe_type(current_mpc_pipe, 
OTG_MASTER) &&
                                                
current_mpc_pipe->stream->mall_stream_config.type == SUBVP_MAIN) {
                                        
block_sequence[*num_steps].params.subvp_save_surf_addr.dc_dmub_srv = 
dc->ctx->dmub_srv;
@@ -541,6 +536,11 @@ void hwss_build_fast_sequence(struct dc *dc,
                                        block_sequence[*num_steps].func = 
DMUB_SUBVP_SAVE_SURF_ADDR;
                                        (*num_steps)++;
                                }
+
+                               
block_sequence[*num_steps].params.update_plane_addr_params.dc = dc;
+                               
block_sequence[*num_steps].params.update_plane_addr_params.pipe_ctx = 
current_mpc_pipe;
+                               block_sequence[*num_steps].func = 
HUBP_UPDATE_PLANE_ADDR;
+                               (*num_steps)++;
                        }
 
                        if (hws->funcs.set_input_transfer_func && 
current_mpc_pipe->plane_state->update_flags.bits.gamma_change) {
-- 
2.37.3

Reply via email to