Commit 1d93c4db authored by Sung Joon Kim's avatar Sung Joon Kim Committed by Alex Deucher
Browse files

drm/amd/display: Use fixed DET Buffer Size



[why]
Regression from DML1.0 where we use differen DET buffer sizes for each
pipe. From the spec, we need to use DET buffer size of 384 kb for each
pipe

[how]
Ensure to use 384 kb DET buffer sizes for each available pipe.

Reviewed-by: default avatarCharlene Liu <charlene.liu@amd.com>
Acked-by: default avatarQingqing Zhuo <qingqing.zhuo@amd.com>
Signed-off-by: default avatarSung Joon Kim <sungkim@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e47d7ca7
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2078,7 +2078,8 @@ static bool dcn35_resource_construct(
	dc->dml2_options.callbacks.build_scaling_params = &resource_build_scaling_params;
	dc->dml2_options.callbacks.can_support_mclk_switch_using_fw_based_vblank_stretch = &dcn30_can_support_mclk_switch_using_fw_based_vblank_stretch;
	dc->dml2_options.callbacks.acquire_secondary_pipe_for_mpc_odm = &dc_resource_acquire_secondary_pipe_for_mpc_odm_legacy;
	dc->dml2_options.max_segments_per_hubp = 18;
	dc->dml2_options.max_segments_per_hubp = 24;

	dc->dml2_options.det_segment_size = DCN3_2_DET_SEG_SIZE;/*todo*/

	if (dc->config.sdpif_request_limit_words_per_umc == 0)
+13 −9
Original line number Diff line number Diff line
@@ -414,6 +414,9 @@ void dml2_apply_det_buffer_allocation_policy(struct dml2_context *in_ctx, struct

	for (plane_index = 0; plane_index < dml_dispcfg->num_surfaces; plane_index++) {

		if (in_ctx->config.override_det_buffer_size_kbytes)
			dml_dispcfg->plane.DETSizeOverride[plane_index] = max_det_size / in_ctx->config.dcn_pipe_count;
		else {
			dml_dispcfg->plane.DETSizeOverride[plane_index] = ((max_det_size / num_of_streams) / num_of_planes_per_stream[stream_index] / in_ctx->det_helper_scratch.dpps_per_surface[plane_index]);

			/* If the override size is not divisible by det_segment_size then round off to nearest number divisible by det_segment_size as
@@ -427,6 +430,7 @@ void dml2_apply_det_buffer_allocation_policy(struct dml2_context *in_ctx, struct
				stream_index++;
		}
	}
}

bool dml2_verify_det_buffer_configuration(struct dml2_context *in_ctx, struct dc_state *display_state, struct dml2_helper_det_policy_scratch *det_scratch)
{
+1 −0
Original line number Diff line number Diff line
@@ -137,6 +137,7 @@ struct dml2_configuration_options {
	bool skip_hw_state_mapping;
	bool optimize_odm_4to1;
	bool minimize_dispclk_using_odm;
	bool override_det_buffer_size_kbytes;
	struct dml2_dc_callbacks callbacks;
	struct {
		bool force_disable_subvp;