Skip to content

Commit

Permalink
drm/amd/display: unblock abm when odm is enabled only on configs that…
Browse files Browse the repository at this point in the history
… support it

[Why]
When ODM is enabled, ABM is blocked on dcn31 but unblocked on dcn30.

Since the dcn31 firmware is now able to handle ABM interop with ODM, it
is no longer necessary to block ABM when ODM is enabled.

Since the dcn30 firmware does not handle ABM interop with ODM, leaving
that combination unblocked can lead to one side of the screen appearing
brighter than the other.

[How]
When ODM is enabled, unblock abm on dcn31 and block it on dcn30

Reviewed-by: Anthony Koo <anthony.koo@amd.com>
Acked-by: Mikita Lipski <mikita.lipski@amd.com>
Signed-off-by: Josip Pavic <Josip.Pavic@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
  • Loading branch information
Josip Pavic authored and Alex Deucher committed Sep 14, 2021
1 parent 8e79442 commit 6077911
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 16 deletions.
1 change: 1 addition & 0 deletions drivers/gpu/drm/amd/display/dc/dcn30/dcn30_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ static const struct hw_sequencer_funcs dcn30_funcs = {
.set_disp_pattern_generator = dcn30_set_disp_pattern_generator,
.get_dcc_en_bits = dcn10_get_dcc_en_bits,
.update_visual_confirm_color = dcn20_update_visual_confirm_color,
.is_abm_supported = dcn21_is_abm_supported
};

static const struct hwseq_private_funcs dcn30_private_funcs = {
Expand Down
15 changes: 0 additions & 15 deletions drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.c
Original file line number Diff line number Diff line change
Expand Up @@ -595,18 +595,3 @@ void dcn31_reset_hw_ctx_wrap(
}
}
}

bool dcn31_is_abm_supported(struct dc *dc,
struct dc_state *context, struct dc_stream_state *stream)
{
int i;

for (i = 0; i < dc->res_pool->pipe_count; i++) {
struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[i];

if (pipe_ctx->stream == stream &&
(pipe_ctx->prev_odm_pipe == NULL && pipe_ctx->next_odm_pipe == NULL))
return true;
}
return false;
}
1 change: 0 additions & 1 deletion drivers/gpu/drm/amd/display/dc/dcn31/dcn31_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ static const struct hw_sequencer_funcs dcn31_funcs = {
.set_pipe = dcn21_set_pipe,
.z10_restore = dcn31_z10_restore,
.z10_save_init = dcn31_z10_save_init,
.is_abm_supported = dcn31_is_abm_supported,
.set_disp_pattern_generator = dcn30_set_disp_pattern_generator,
.update_visual_confirm_color = dcn20_update_visual_confirm_color,
};
Expand Down

0 comments on commit 6077911

Please sign in to comment.