Commit 8dac4e7d authored by Su Sung Chung's avatar Su Sung Chung Committed by Alex Deucher

drm/amd/display: store timing sync info in dc_stream_status

in program_timing_sync, after all the pipes are
grouped, store timing sync info in dc_stream_status
Signed-off-by: default avatarSu Sung Chung <Su.Chung@amd.com>
Reviewed-by: default avatarTony Cheng <Tony.Cheng@amd.com>
Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 4f69bc8c
...@@ -869,8 +869,9 @@ static void program_timing_sync( ...@@ -869,8 +869,9 @@ static void program_timing_sync(
struct dc *dc, struct dc *dc,
struct dc_state *ctx) struct dc_state *ctx)
{ {
int i, j; int i, j, k;
int group_index = 0; int group_index = 0;
int num_group = 0;
int pipe_count = dc->res_pool->pipe_count; int pipe_count = dc->res_pool->pipe_count;
struct pipe_ctx *unsynced_pipes[MAX_PIPES] = { NULL }; struct pipe_ctx *unsynced_pipes[MAX_PIPES] = { NULL };
...@@ -922,6 +923,18 @@ static void program_timing_sync( ...@@ -922,6 +923,18 @@ static void program_timing_sync(
} }
} }
for (k = 0; k < group_size; k++) {
struct dc_stream_status *status = dc_stream_get_status_from_state(ctx, pipe_set[k]->stream);
status->timing_sync_info.group_id = num_group;
status->timing_sync_info.group_size = group_size;
if (k == 0)
status->timing_sync_info.master = true;
else
status->timing_sync_info.master = false;
}
/* remove any other pipes with plane as they have already been synced */ /* remove any other pipes with plane as they have already been synced */
for (j = j + 1; j < group_size; j++) { for (j = j + 1; j < group_size; j++) {
if (pipe_set[j]->plane_state) { if (pipe_set[j]->plane_state) {
...@@ -936,6 +949,7 @@ static void program_timing_sync( ...@@ -936,6 +949,7 @@ static void program_timing_sync(
dc, group_index, group_size, pipe_set); dc, group_index, group_size, pipe_set);
group_index++; group_index++;
} }
num_group++;
} }
} }
......
...@@ -32,11 +32,17 @@ ...@@ -32,11 +32,17 @@
/******************************************************************************* /*******************************************************************************
* Stream Interfaces * Stream Interfaces
******************************************************************************/ ******************************************************************************/
struct timing_sync_info {
int group_id;
int group_size;
bool master;
};
struct dc_stream_status { struct dc_stream_status {
int primary_otg_inst; int primary_otg_inst;
int stream_enc_inst; int stream_enc_inst;
int plane_count; int plane_count;
struct timing_sync_info timing_sync_info;
struct dc_plane_state *plane_states[MAX_SURFACE_NUM]; struct dc_plane_state *plane_states[MAX_SURFACE_NUM];
}; };
......
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