mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 16:37:50 +00:00
drm/amd/display: fix static screen detection setting
[WHY] OTG_STATIC_SCREEN_EVENT_MASK is changed in DCN3, but we still follow DCN2 to apply setting for OTG_STATIC_SCREEN_EVENT_MASK. [How] Add new function to apply correct settings for DCN3 series. Reviewed-by: Anthony Koo <anthony.koo@amd.com> Acked-by: Wayne Lin <wayne.lin@amd.com> Signed-off-by: SungHuai Wang <danny.wang@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
96271dd4d5
commit
b1803560ba
6 changed files with 23 additions and 4 deletions
|
@ -987,3 +987,20 @@ void dcn30_prepare_bandwidth(struct dc *dc,
|
|||
}
|
||||
}
|
||||
|
||||
void dcn30_set_static_screen_control(struct pipe_ctx **pipe_ctx,
|
||||
int num_pipes, const struct dc_static_screen_params *params)
|
||||
{
|
||||
unsigned int i;
|
||||
unsigned int triggers = 0;
|
||||
|
||||
if (params->triggers.surface_update)
|
||||
triggers |= 0x100;
|
||||
if (params->triggers.cursor_update)
|
||||
triggers |= 0x8;
|
||||
if (params->triggers.force_trigger)
|
||||
triggers |= 0x1;
|
||||
|
||||
for (i = 0; i < num_pipes; i++)
|
||||
pipe_ctx[i]->stream_res.tg->funcs->set_static_screen_control(pipe_ctx[i]->stream_res.tg,
|
||||
triggers, params->num_frames);
|
||||
}
|
||||
|
|
|
@ -87,5 +87,7 @@ void dcn30_set_hubp_blank(const struct dc *dc,
|
|||
void dcn30_prepare_bandwidth(struct dc *dc,
|
||||
struct dc_state *context);
|
||||
|
||||
void dcn30_set_static_screen_control(struct pipe_ctx **pipe_ctx,
|
||||
int num_pipes, const struct dc_static_screen_params *params);
|
||||
|
||||
#endif /* __DC_HWSS_DCN30_H__ */
|
||||
|
|
|
@ -64,7 +64,7 @@ static const struct hw_sequencer_funcs dcn30_funcs = {
|
|||
.update_bandwidth = dcn20_update_bandwidth,
|
||||
.set_drr = dcn10_set_drr,
|
||||
.get_position = dcn10_get_position,
|
||||
.set_static_screen_control = dcn10_set_static_screen_control,
|
||||
.set_static_screen_control = dcn30_set_static_screen_control,
|
||||
.setup_stereo = dcn10_setup_stereo,
|
||||
.set_avmute = dcn30_set_avmute,
|
||||
.log_hw_state = dcn10_log_hw_state,
|
||||
|
|
|
@ -67,7 +67,7 @@ static const struct hw_sequencer_funcs dcn31_funcs = {
|
|||
.update_bandwidth = dcn20_update_bandwidth,
|
||||
.set_drr = dcn10_set_drr,
|
||||
.get_position = dcn10_get_position,
|
||||
.set_static_screen_control = dcn10_set_static_screen_control,
|
||||
.set_static_screen_control = dcn30_set_static_screen_control,
|
||||
.setup_stereo = dcn10_setup_stereo,
|
||||
.set_avmute = dcn30_set_avmute,
|
||||
.log_hw_state = dcn10_log_hw_state,
|
||||
|
|
|
@ -69,7 +69,7 @@ static const struct hw_sequencer_funcs dcn314_funcs = {
|
|||
.update_bandwidth = dcn20_update_bandwidth,
|
||||
.set_drr = dcn10_set_drr,
|
||||
.get_position = dcn10_get_position,
|
||||
.set_static_screen_control = dcn10_set_static_screen_control,
|
||||
.set_static_screen_control = dcn30_set_static_screen_control,
|
||||
.setup_stereo = dcn10_setup_stereo,
|
||||
.set_avmute = dcn30_set_avmute,
|
||||
.log_hw_state = dcn10_log_hw_state,
|
||||
|
|
|
@ -65,7 +65,7 @@ static const struct hw_sequencer_funcs dcn32_funcs = {
|
|||
.update_bandwidth = dcn20_update_bandwidth,
|
||||
.set_drr = dcn10_set_drr,
|
||||
.get_position = dcn10_get_position,
|
||||
.set_static_screen_control = dcn10_set_static_screen_control,
|
||||
.set_static_screen_control = dcn30_set_static_screen_control,
|
||||
.setup_stereo = dcn10_setup_stereo,
|
||||
.set_avmute = dcn30_set_avmute,
|
||||
.log_hw_state = dcn10_log_hw_state,
|
||||
|
|
Loading…
Reference in a new issue