drm/amd/display: Add debug bit to disable unbounded requesting
authorDillon Varone <Dillon.Varone@amd.com>
Sat, 26 Nov 2022 07:03:32 +0000 (02:03 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 15 Dec 2022 17:18:18 +0000 (12:18 -0500)
[Description]
Add debug bit to disable unbounded requesting.

Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Acked-by: Jasdeep Dhillon <jdhillon@amd.com>
Signed-off-by: Dillon Varone <Dillon.Varone@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c
drivers/gpu/drm/amd/display/dc/dcn321/dcn321_resource.c

index 85ebeaa..a76031d 100644 (file)
@@ -872,6 +872,7 @@ struct dc_debug_options {
        enum lttpr_mode lttpr_mode_override;
        unsigned int dsc_delay_factor_wa_x1000;
        unsigned int min_prefetch_in_strobe_ns;
+       bool disable_unbounded_requesting;
 };
 
 struct gpu_info_soc_bounding_box_v1_0;
index e4dbc83..dfecdf3 100644 (file)
@@ -726,6 +726,7 @@ static const struct dc_debug_options debug_defaults_drv = {
        .allow_sw_cursor_fallback = false, // Linux can't do SW cursor "fallback"
        .alloc_extra_way_for_cursor = true,
        .min_prefetch_in_strobe_ns = 60000, // 60us
+       .disable_unbounded_requesting = false,
 };
 
 static const struct dc_debug_options debug_defaults_diags = {
index 783935c..04fca78 100644 (file)
@@ -357,6 +357,7 @@ void dcn32_set_det_allocations(struct dc *dc, struct dc_state *context,
        int i, pipe_cnt;
        struct resource_context *res_ctx = &context->res_ctx;
        struct pipe_ctx *pipe;
+       bool disable_unbounded_requesting = dc->debug.disable_z9_mpc || dc->debug.disable_unbounded_requesting;
 
        for (i = 0, pipe_cnt = 0; i < dc->res_pool->pipe_count; i++) {
 
@@ -373,7 +374,7 @@ void dcn32_set_det_allocations(struct dc *dc, struct dc_state *context,
         */
        if (pipe_cnt == 1) {
                pipes[0].pipe.src.det_size_override = DCN3_2_MAX_DET_SIZE;
-               if (pipe->plane_state && !dc->debug.disable_z9_mpc && pipe->plane_state->tiling_info.gfx9.swizzle != DC_SW_LINEAR) {
+               if (pipe->plane_state && !disable_unbounded_requesting && pipe->plane_state->tiling_info.gfx9.swizzle != DC_SW_LINEAR) {
                        if (!is_dual_plane(pipe->plane_state->format)) {
                                pipes[0].pipe.src.det_size_override = DCN3_2_DEFAULT_DET_SIZE;
                                pipes[0].pipe.src.unbounded_req_mode = true;
index d1f36df..62e400e 100644 (file)
@@ -724,6 +724,7 @@ static const struct dc_debug_options debug_defaults_drv = {
        .allow_sw_cursor_fallback = false, // Linux can't do SW cursor "fallback"
        .alloc_extra_way_for_cursor = true,
        .min_prefetch_in_strobe_ns = 60000, // 60us
+       .disable_unbounded_requesting = false,
 };
 
 static const struct dc_debug_options debug_defaults_diags = {