Commit e77a8005 authored by JinZe Xu's avatar JinZe Xu Committed by Alex Deucher
Browse files

drm/amd/display: Use region6 size in fw_meta_info



[Why]
If driver allocated region6 size is not same as the size in firmware,
dmcub won't enable region6.

[How]
Use region6 size in dmcub_fw_meta instead of a constant value.

Reviewed-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: default avatarJinZe Xu <jinze.xu@amd.com>
Signed-off-by: default avatarHamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent bc042928
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -497,6 +497,7 @@ enum dmub_status
	const struct dmub_fw_meta_info *fw_info;
	uint32_t fw_state_size = DMUB_FW_STATE_SIZE;
	uint32_t trace_buffer_size = DMUB_TRACE_BUFFER_SIZE;
	uint32_t shared_state_size = DMUB_FW_HEADER_SHARED_STATE_SIZE;
	uint32_t window_sizes[DMUB_WINDOW_TOTAL] = { 0 };

	if (!dmub->sw_init)
@@ -514,6 +515,7 @@ enum dmub_status

		fw_state_size = fw_info->fw_region_size;
		trace_buffer_size = fw_info->trace_buffer_size;
		shared_state_size = fw_info->shared_state_size;

		/**
		 * If DM didn't fill in a version, then fill it in based on
@@ -534,7 +536,7 @@ enum dmub_status
	window_sizes[DMUB_WINDOW_5_TRACEBUFF] = trace_buffer_size;
	window_sizes[DMUB_WINDOW_6_FW_STATE] = fw_state_size;
	window_sizes[DMUB_WINDOW_7_SCRATCH_MEM] = DMUB_SCRATCH_MEM_SIZE;
	window_sizes[DMUB_WINDOW_SHARED_STATE] = DMUB_FW_HEADER_SHARED_STATE_SIZE;
	window_sizes[DMUB_WINDOW_SHARED_STATE] = max(DMUB_FW_HEADER_SHARED_STATE_SIZE, shared_state_size);

	out->fb_size =
		dmub_srv_calc_regions_for_memory_type(params, out, window_sizes, DMUB_WINDOW_MEMORY_TYPE_FB);