Commit 5c1a431a authored by Lee, Alvin's avatar Lee, Alvin Committed by Alex Deucher

drm/amd/display: Added debug option for forcing subvp num ways

[Description]
Regkey option for forcing num ways for subvp for debug purposes
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Reviewed-by: default avatarJun Lei <Jun.Lei@amd.com>
Acked-by: default avatarPavle Kotarac <Pavle.Kotarac@amd.com>
Signed-off-by: default avatarAlvin Lee <Alvin.Lee2@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 43080c9b
...@@ -831,6 +831,7 @@ struct dc_debug_options { ...@@ -831,6 +831,7 @@ struct dc_debug_options {
bool force_disable_subvp; bool force_disable_subvp;
bool force_subvp_mclk_switch; bool force_subvp_mclk_switch;
bool allow_sw_cursor_fallback; bool allow_sw_cursor_fallback;
unsigned int force_subvp_num_ways;
bool force_usr_allow; bool force_usr_allow;
/* uses value at boot and disables switch */ /* uses value at boot and disables switch */
bool disable_dtb_ref_clk_switch; bool disable_dtb_ref_clk_switch;
......
...@@ -54,13 +54,14 @@ uint32_t dcn32_helper_calculate_num_ways_for_subvp(struct dc *dc, struct dc_stat ...@@ -54,13 +54,14 @@ uint32_t dcn32_helper_calculate_num_ways_for_subvp(struct dc *dc, struct dc_stat
uint32_t num_mblks = 0; uint32_t num_mblks = 0;
uint32_t cache_lines_per_plane = 0; uint32_t cache_lines_per_plane = 0;
uint32_t i = 0, j = 0; uint32_t i = 0, j = 0;
uint32_t mblk_width = 0; uint16_t mblk_width = 0;
uint32_t mblk_height = 0; uint16_t mblk_height = 0;
uint32_t full_vp_width_blk_aligned = 0; uint32_t full_vp_width_blk_aligned = 0;
uint32_t full_vp_height_blk_aligned = 0; uint32_t full_vp_height_blk_aligned = 0;
uint32_t mall_alloc_width_blk_aligned = 0; uint32_t mall_alloc_width_blk_aligned = 0;
uint32_t mall_alloc_height_blk_aligned = 0; uint32_t mall_alloc_height_blk_aligned = 0;
uint32_t full_vp_height = 0; uint16_t full_vp_height = 0;
bool subvp_in_use = false;
for (i = 0; i < dc->res_pool->pipe_count; i++) { for (i = 0; i < dc->res_pool->pipe_count; i++) {
struct pipe_ctx *pipe = &context->res_ctx.pipe_ctx[i]; struct pipe_ctx *pipe = &context->res_ctx.pipe_ctx[i];
...@@ -70,6 +71,7 @@ uint32_t dcn32_helper_calculate_num_ways_for_subvp(struct dc *dc, struct dc_stat ...@@ -70,6 +71,7 @@ uint32_t dcn32_helper_calculate_num_ways_for_subvp(struct dc *dc, struct dc_stat
pipe->stream->mall_stream_config.type == SUBVP_PHANTOM) { pipe->stream->mall_stream_config.type == SUBVP_PHANTOM) {
struct pipe_ctx *main_pipe = NULL; struct pipe_ctx *main_pipe = NULL;
subvp_in_use = true;
/* Get full viewport height from main pipe (required for MBLK calculation) */ /* Get full viewport height from main pipe (required for MBLK calculation) */
for (j = 0; j < dc->res_pool->pipe_count; j++) { for (j = 0; j < dc->res_pool->pipe_count; j++) {
main_pipe = &context->res_ctx.pipe_ctx[j]; main_pipe = &context->res_ctx.pipe_ctx[j];
...@@ -129,6 +131,9 @@ uint32_t dcn32_helper_calculate_num_ways_for_subvp(struct dc *dc, struct dc_stat ...@@ -129,6 +131,9 @@ uint32_t dcn32_helper_calculate_num_ways_for_subvp(struct dc *dc, struct dc_stat
if (cache_lines_used % lines_per_way > 0) if (cache_lines_used % lines_per_way > 0)
num_ways++; num_ways++;
if (subvp_in_use && dc->debug.force_subvp_num_ways > 0)
num_ways = dc->debug.force_subvp_num_ways;
return num_ways; return num_ways;
} }
......
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