summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/hwss
diff options
context:
space:
mode:
authorPiotr Maziarz <piotr.maziarz@amd.com>2026-09-03 13:31:05 +0200
committerAlex Deucher <alexander.deucher@amd.com>2026-09-23 13:19:46 -0400
commit23c7a0a0ecd9a23aba3d61f65c8b4eacf5cd5908 (patch)
tree18554c7293d6316d80ab45d7f0522ea9fbbe9a4a /drivers/gpu/drm/amd/display/dc/hwss
parent06421edfe74b5897dfcc37c00c8e0c40310cdc4f (diff)
downloadlinux-next-23c7a0a0ecd9a23aba3d61f65c8b4eacf5cd5908.tar.gz
linux-next-23c7a0a0ecd9a23aba3d61f65c8b4eacf5cd5908.zip
drm/amd/display: Remove phantom SW state ops from block sequence
[Why] HWS_APPLY_UPDATE_FLAGS_FOR_PHANTOM and HWS_UPDATE_PHANTOM_VP_POSITION program no hardware. They only mutate driver state: pipe update flags, the phantom plane viewport and the phantom scaling params. A block sequence is built first and executed later, so both ops ran only after the builder had already inspected pipe_ctx->update_flags to decide which steps to emit. The phantom pipe was therefore built from stale flags. [How] Call apply_update_flags_for_phantom() and update_phantom_vp_position() directly from hwss_build_post_unlock_full_sequence(), before program_pipe_sequence(), matching the legacy dcn401_post_unlock_program_front_end() ordering. Reviewed-by: Alvin Lee <alvin.lee2@amd.com> Signed-off-by: Piotr Maziarz <piotr.maziarz@amd.com> Signed-off-by: George Zhang <george.zhang@amd.com> Tested-by: Dan Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/hwss')
-rw-r--r--drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h20
1 files changed, 0 insertions, 20 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h b/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
index 7d4310c0ef3f..cc1c54c46e25 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
+++ b/drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h
@@ -249,16 +249,6 @@ struct hubp_wait_pipe_read_start_params {
struct hubp *hubp;
};
-struct apply_update_flags_for_phantom_params {
- struct pipe_ctx *pipe_ctx;
-};
-
-struct update_phantom_vp_position_params {
- struct dc *dc;
- struct pipe_ctx *pipe_ctx;
- struct dc_state *context;
-};
-
struct set_odm_combine_params {
struct timing_generator *tg;
int opp_inst[MAX_PIPES];
@@ -1098,8 +1088,6 @@ union block_sequence_params {
struct control_cm_hist_params control_cm_hist_params;
struct program_cursor_update_now_params program_cursor_update_now_params;
struct hubp_wait_pipe_read_start_params hubp_wait_pipe_read_start_params;
- struct apply_update_flags_for_phantom_params apply_update_flags_for_phantom_params;
- struct update_phantom_vp_position_params update_phantom_vp_position_params;
struct set_odm_combine_params set_odm_combine_params;
struct set_odm_bypass_params set_odm_bypass_params;
struct opp_pipe_clock_control_params opp_pipe_clock_control_params;
@@ -1278,8 +1266,6 @@ enum block_sequence_func {
DPP_PROGRAM_CM_HIST,
PROGRAM_CURSOR_UPDATE_NOW,
HUBP_WAIT_PIPE_READ_START,
- HWS_APPLY_UPDATE_FLAGS_FOR_PHANTOM,
- HWS_UPDATE_PHANTOM_VP_POSITION,
OPTC_SET_ODM_COMBINE,
OPTC_SET_ODM_BYPASS,
OPP_PIPE_CLOCK_CONTROL,
@@ -2248,12 +2234,6 @@ void hwss_add_lsdma_send_pio_copy(struct block_sequence_state *seq_state,
void hwss_add_hubp_wait_pipe_read_start(struct block_sequence_state *seq_state,
struct hubp *hubp);
-void hwss_add_hws_apply_update_flags_for_phantom(struct block_sequence_state *seq_state,
- struct pipe_ctx *pipe_ctx);
-
-void hwss_add_hws_update_phantom_vp_position(struct block_sequence_state *seq_state,
- struct dc *dc, struct dc_state *context, struct pipe_ctx *pipe_ctx);
-
void hwss_add_optc_set_odm_combine(struct block_sequence_state *seq_state,
struct timing_generator *tg, int opp_inst[MAX_PIPES], int opp_head_count,
int odm_slice_width, int last_odm_slice_width);