Commit 3be1406a authored by Yongqiang Sun's avatar Yongqiang Sun Committed by Alex Deucher

drm/amd/display: Add timing generator count to resource pool.

Use tg count in resource pool for further reference.
Signed-off-by: default avatarYongqiang Sun <yongqiang.sun@amd.com>
Reviewed-by: default avatarTony Cheng <Tony.Cheng@amd.com>
Acked-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 05133ac8
...@@ -849,6 +849,7 @@ static bool construct( ...@@ -849,6 +849,7 @@ static bool construct(
*************************************************/ *************************************************/
pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE; pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE;
pool->base.pipe_count = res_cap.num_timing_generator; pool->base.pipe_count = res_cap.num_timing_generator;
pool->base.timing_generator_count = pool->base.res_cap->num_timing_generator;
dc->caps.max_downscale_ratio = 200; dc->caps.max_downscale_ratio = 200;
dc->caps.i2c_speed_in_khz = 40; dc->caps.i2c_speed_in_khz = 40;
dc->caps.max_cursor_size = 128; dc->caps.max_cursor_size = 128;
......
...@@ -1152,7 +1152,7 @@ static bool construct( ...@@ -1152,7 +1152,7 @@ static bool construct(
pool->base.pipe_count = pool->base.res_cap->num_timing_generator; pool->base.pipe_count = pool->base.res_cap->num_timing_generator;
pool->base.underlay_pipe_index = pool->base.pipe_count; pool->base.underlay_pipe_index = pool->base.pipe_count;
pool->base.timing_generator_count = pool->base.res_cap->num_timing_generator;
dc->caps.max_downscale_ratio = 150; dc->caps.max_downscale_ratio = 150;
dc->caps.i2c_speed_in_khz = 100; dc->caps.i2c_speed_in_khz = 100;
dc->caps.max_cursor_size = 128; dc->caps.max_cursor_size = 128;
......
...@@ -1100,6 +1100,7 @@ static bool construct( ...@@ -1100,6 +1100,7 @@ static bool construct(
*************************************************/ *************************************************/
pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE; pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE;
pool->base.pipe_count = pool->base.res_cap->num_timing_generator; pool->base.pipe_count = pool->base.res_cap->num_timing_generator;
pool->base.timing_generator_count = pool->base.res_cap->num_timing_generator;
dc->caps.max_downscale_ratio = 200; dc->caps.max_downscale_ratio = 200;
dc->caps.i2c_speed_in_khz = 100; dc->caps.i2c_speed_in_khz = 100;
dc->caps.max_cursor_size = 128; dc->caps.max_cursor_size = 128;
......
...@@ -831,6 +831,7 @@ static bool construct( ...@@ -831,6 +831,7 @@ static bool construct(
/* TODO: Fill more data from GreenlandAsicCapability.cpp */ /* TODO: Fill more data from GreenlandAsicCapability.cpp */
pool->base.pipe_count = res_cap.num_timing_generator; pool->base.pipe_count = res_cap.num_timing_generator;
pool->base.timing_generator_count = pool->base.res_cap->num_timing_generator;
pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE; pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE;
dc->caps.max_downscale_ratio = 200; dc->caps.max_downscale_ratio = 200;
......
...@@ -790,6 +790,7 @@ static bool dce80_construct( ...@@ -790,6 +790,7 @@ static bool dce80_construct(
*************************************************/ *************************************************/
pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE; pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE;
pool->base.pipe_count = res_cap.num_timing_generator; pool->base.pipe_count = res_cap.num_timing_generator;
pool->base.timing_generator_count = res_cap.num_timing_generator;
dc->caps.max_downscale_ratio = 200; dc->caps.max_downscale_ratio = 200;
dc->caps.i2c_speed_in_khz = 40; dc->caps.i2c_speed_in_khz = 40;
dc->caps.max_cursor_size = 128; dc->caps.max_cursor_size = 128;
...@@ -955,6 +956,7 @@ static bool dce81_construct( ...@@ -955,6 +956,7 @@ static bool dce81_construct(
*************************************************/ *************************************************/
pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE; pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE;
pool->base.pipe_count = res_cap_81.num_timing_generator; pool->base.pipe_count = res_cap_81.num_timing_generator;
pool->base.timing_generator_count = res_cap_81.num_timing_generator;
dc->caps.max_downscale_ratio = 200; dc->caps.max_downscale_ratio = 200;
dc->caps.i2c_speed_in_khz = 40; dc->caps.i2c_speed_in_khz = 40;
dc->caps.max_cursor_size = 128; dc->caps.max_cursor_size = 128;
...@@ -1120,6 +1122,7 @@ static bool dce83_construct( ...@@ -1120,6 +1122,7 @@ static bool dce83_construct(
*************************************************/ *************************************************/
pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE; pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE;
pool->base.pipe_count = res_cap_83.num_timing_generator; pool->base.pipe_count = res_cap_83.num_timing_generator;
pool->base.timing_generator_count = res_cap_83.num_timing_generator;
dc->caps.max_downscale_ratio = 200; dc->caps.max_downscale_ratio = 200;
dc->caps.i2c_speed_in_khz = 40; dc->caps.i2c_speed_in_khz = 40;
dc->caps.max_cursor_size = 128; dc->caps.max_cursor_size = 128;
......
...@@ -133,7 +133,7 @@ void dcn10_log_hw_state(struct dc *dc) ...@@ -133,7 +133,7 @@ void dcn10_log_hw_state(struct dc *dc)
DTN_INFO("[%d]:\t %xh \t %xh \t %d \t %d \t " DTN_INFO("[%d]:\t %xh \t %xh \t %d \t %d \t "
"%xh \t %xh \t %xh \t " "%xh \t %xh \t %xh \t "
"%d \t %d \t %d \t %xh \t", "%d \t %d \t %d \t %xh \t",
i, hubp->inst,
s.pixel_format, s.pixel_format,
s.inuse_addr_hi, s.inuse_addr_hi,
s.viewport_width, s.viewport_width,
...@@ -155,7 +155,7 @@ void dcn10_log_hw_state(struct dc *dc) ...@@ -155,7 +155,7 @@ void dcn10_log_hw_state(struct dc *dc)
DTN_INFO("OTG:\t v_bs \t v_be \t v_ss \t v_se \t vpol \t vmax \t vmin \t " DTN_INFO("OTG:\t v_bs \t v_be \t v_ss \t v_se \t vpol \t vmax \t vmin \t "
"h_bs \t h_be \t h_ss \t h_se \t hpol \t htot \t vtot \t underflow\n"); "h_bs \t h_be \t h_ss \t h_se \t hpol \t htot \t vtot \t underflow\n");
for (i = 0; i < pool->res_cap->num_timing_generator; i++) { for (i = 0; i < pool->timing_generator_count; i++) {
struct timing_generator *tg = pool->timing_generators[i]; struct timing_generator *tg = pool->timing_generators[i];
struct dcn_otg_state s = {0}; struct dcn_otg_state s = {0};
...@@ -168,7 +168,7 @@ void dcn10_log_hw_state(struct dc *dc) ...@@ -168,7 +168,7 @@ void dcn10_log_hw_state(struct dc *dc)
DTN_INFO("[%d]:\t %d \t %d \t %d \t %d \t " DTN_INFO("[%d]:\t %d \t %d \t %d \t %d \t "
"%d \t %d \t %d \t %d \t %d \t %d \t " "%d \t %d \t %d \t %d \t %d \t %d \t "
"%d \t %d \t %d \t %d \t %d \t ", "%d \t %d \t %d \t %d \t %d \t ",
i, tg->inst,
s.v_blank_start, s.v_blank_start,
s.v_blank_end, s.v_blank_end,
s.v_sync_a_start, s.v_sync_a_start,
......
...@@ -1445,6 +1445,7 @@ static bool construct( ...@@ -1445,6 +1445,7 @@ static bool construct(
/* valid pipe num */ /* valid pipe num */
pool->base.pipe_count = j; pool->base.pipe_count = j;
pool->base.timing_generator_count = j;
/* within dml lib, it is hard code to 4. If ASIC pipe is fused, /* within dml lib, it is hard code to 4. If ASIC pipe is fused,
* the value may be changed * the value may be changed
......
...@@ -153,6 +153,7 @@ struct resource_pool { ...@@ -153,6 +153,7 @@ struct resource_pool {
unsigned int underlay_pipe_index; unsigned int underlay_pipe_index;
unsigned int stream_enc_count; unsigned int stream_enc_count;
unsigned int ref_clock_inKhz; unsigned int ref_clock_inKhz;
unsigned int timing_generator_count;
/* /*
* reserved clock source for DP * reserved clock source for DP
......
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