Commit e01bf270 authored by Lijo Lazar's avatar Lijo Lazar Committed by Alex Deucher
Browse files

drm/amd/pm: Fetch SMUv13.0.6 xgmi max speed/width



On SMUv13.0.6 SOCs, fetch the max values of xgmi speed/width from
firmware.

Signed-off-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Reviewed-by: default avatarAsad Kamal <asad.kamal@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 0180e0a5
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -805,6 +805,8 @@ static int smu_v13_0_6_setup_driver_pptable(struct smu_context *smu)
	int version = smu_v13_0_6_get_metrics_version(smu);
	int ret, i, retry = 100;
	uint32_t table_version;
	uint16_t max_speed;
	uint8_t max_width;

	if (amdgpu_ip_version(smu->adev, MP1_HWIP, 0) == IP_VERSION(13, 0, 12) &&
	    smu_v13_0_6_cap_supported(smu, SMU_CAP(STATIC_METRICS)))
@@ -840,6 +842,9 @@ static int smu_v13_0_6_setup_driver_pptable(struct smu_context *smu)
			SMUQ10_ROUND(GET_METRIC_FIELD(MaxGfxclkFrequency, version));
		pptable->MinGfxclkFrequency =
			SMUQ10_ROUND(GET_METRIC_FIELD(MinGfxclkFrequency, version));
		max_width = (uint8_t)GET_METRIC_FIELD(XgmiWidth, version);
		max_speed = (uint16_t)GET_METRIC_FIELD(XgmiBitrate, version);
		amgpu_xgmi_set_max_speed_width(smu->adev, max_speed, max_width);

		for (i = 0; i < 4; ++i) {
			pptable->FclkFrequencyTable[i] =