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: Daniel Wheeler <daniel.wheeler@amd.com> Reviewed-by: Alvin Lee <Alvin.Lee2@amd.com> Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com> Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
c19d3eace4
commit
e50f67cf5e
@ -2244,6 +2244,9 @@ void dcn10_enable_timing_synchronization(
|
||||
DC_SYNC_INFO("Setting up OTG reset trigger\n");
|
||||
|
||||
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;
|
||||
tg = grouped_pipes[i]->stream_res.tg;
|
||||
tg->funcs->get_otg_active_size(tg, &width, &height);
|
||||
@ -2254,13 +2257,21 @@ void dcn10_enable_timing_synchronization(
|
||||
for (i = 0; i < group_size; i++) {
|
||||
if (grouped_pipes[i]->stream == NULL)
|
||||
continue;
|
||||
|
||||
if (grouped_pipes[i]->stream && grouped_pipes[i]->stream->mall_stream_config.type == SUBVP_PHANTOM)
|
||||
continue;
|
||||
|
||||
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,
|
||||
grouped_pipes[0]->stream_res.tg->inst);
|
||||
}
|
||||
|
||||
DC_SYNC_INFO("Waiting for trigger\n");
|
||||
|
||||
@ -2268,12 +2279,21 @@ void dcn10_enable_timing_synchronization(
|
||||
* synchronized. Look at last pipe programmed to reset.
|
||||
*/
|
||||
|
||||
wait_for_reset_trigger_to_occur(dc_ctx, grouped_pipes[1]->stream_res.tg);
|
||||
for (i = 1; i < group_size; i++)
|
||||
grouped_pipes[i]->stream_res.tg->funcs->disable_reset_trigger(
|
||||
grouped_pipes[i]->stream_res.tg);
|
||||
if (grouped_pipes[1]->stream && grouped_pipes[1]->stream->mall_stream_config.type != SUBVP_PHANTOM)
|
||||
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);
|
||||
}
|
||||
|
||||
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;
|
||||
tg = grouped_pipes[i]->stream_res.tg;
|
||||
tg->funcs->get_otg_active_size(tg, &width, &height);
|
||||
|
Loading…
Reference in New Issue
Block a user