Commit e50f67cf authored by Aurabindo Pillai's avatar Aurabindo Pillai Committed by Alex Deucher

drm/amd/display: Do not trigger timing sync for phantom pipes

[Why&How]
Doing timing sync seqence for phantom pipes will not go through since
they are not fully programmed like normal pipes. Skip the sequence on
such pipes
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Reviewed-by: default avatarAlvin Lee <Alvin.Lee2@amd.com>
Acked-by: default avatarQingqing Zhuo <qingqing.zhuo@amd.com>
Signed-off-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent c19d3eac
...@@ -2244,6 +2244,9 @@ void dcn10_enable_timing_synchronization( ...@@ -2244,6 +2244,9 @@ void dcn10_enable_timing_synchronization(
DC_SYNC_INFO("Setting up OTG reset trigger\n"); DC_SYNC_INFO("Setting up OTG reset trigger\n");
for (i = 1; i < group_size; i++) { for (i = 1; i < group_size; i++) {
if (grouped_pipes[i]->stream && grouped_pipes[i]->stream->mall_stream_config.type == SUBVP_PHANTOM)
continue;
opp = grouped_pipes[i]->stream_res.opp; opp = grouped_pipes[i]->stream_res.opp;
tg = grouped_pipes[i]->stream_res.tg; tg = grouped_pipes[i]->stream_res.tg;
tg->funcs->get_otg_active_size(tg, &width, &height); tg->funcs->get_otg_active_size(tg, &width, &height);
...@@ -2254,13 +2257,21 @@ void dcn10_enable_timing_synchronization( ...@@ -2254,13 +2257,21 @@ void dcn10_enable_timing_synchronization(
for (i = 0; i < group_size; i++) { for (i = 0; i < group_size; i++) {
if (grouped_pipes[i]->stream == NULL) if (grouped_pipes[i]->stream == NULL)
continue; continue;
if (grouped_pipes[i]->stream && grouped_pipes[i]->stream->mall_stream_config.type == SUBVP_PHANTOM)
continue;
grouped_pipes[i]->stream->vblank_synchronized = false; grouped_pipes[i]->stream->vblank_synchronized = false;
} }
for (i = 1; i < group_size; i++) for (i = 1; i < group_size; i++) {
if (grouped_pipes[i]->stream && grouped_pipes[i]->stream->mall_stream_config.type == SUBVP_PHANTOM)
continue;
grouped_pipes[i]->stream_res.tg->funcs->enable_reset_trigger( grouped_pipes[i]->stream_res.tg->funcs->enable_reset_trigger(
grouped_pipes[i]->stream_res.tg, grouped_pipes[i]->stream_res.tg,
grouped_pipes[0]->stream_res.tg->inst); grouped_pipes[0]->stream_res.tg->inst);
}
DC_SYNC_INFO("Waiting for trigger\n"); DC_SYNC_INFO("Waiting for trigger\n");
...@@ -2268,12 +2279,21 @@ void dcn10_enable_timing_synchronization( ...@@ -2268,12 +2279,21 @@ void dcn10_enable_timing_synchronization(
* synchronized. Look at last pipe programmed to reset. * synchronized. Look at last pipe programmed to reset.
*/ */
wait_for_reset_trigger_to_occur(dc_ctx, grouped_pipes[1]->stream_res.tg); if (grouped_pipes[1]->stream && grouped_pipes[1]->stream->mall_stream_config.type != SUBVP_PHANTOM)
for (i = 1; i < group_size; i++) wait_for_reset_trigger_to_occur(dc_ctx, grouped_pipes[1]->stream_res.tg);
for (i = 1; i < group_size; i++) {
if (grouped_pipes[i]->stream && grouped_pipes[i]->stream->mall_stream_config.type == SUBVP_PHANTOM)
continue;
grouped_pipes[i]->stream_res.tg->funcs->disable_reset_trigger( grouped_pipes[i]->stream_res.tg->funcs->disable_reset_trigger(
grouped_pipes[i]->stream_res.tg); grouped_pipes[i]->stream_res.tg);
}
for (i = 1; i < group_size; i++) { for (i = 1; i < group_size; i++) {
if (grouped_pipes[i]->stream && grouped_pipes[i]->stream->mall_stream_config.type == SUBVP_PHANTOM)
continue;
opp = grouped_pipes[i]->stream_res.opp; opp = grouped_pipes[i]->stream_res.opp;
tg = grouped_pipes[i]->stream_res.tg; tg = grouped_pipes[i]->stream_res.tg;
tg->funcs->get_otg_active_size(tg, &width, &height); tg->funcs->get_otg_active_size(tg, &width, &height);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment