Commit cb5932f8 authored by Jonathan Kim's avatar Jonathan Kim Committed by Alex Deucher
Browse files

drm/amdgpu: fix vega20 pstate status change



vega20 only requires all devices be set to same pstate level for low
pstate and not high.

Signed-off-by: default avatarJonathan Kim <Jonathan.Kim@amd.com>
Reviewed-by: default avatarEvan Quan <Evan.Quan@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 2af81531
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -276,6 +276,7 @@ int amdgpu_xgmi_set_pstate(struct amdgpu_device *adev, int pstate)
	struct amdgpu_hive_info *hive = amdgpu_get_xgmi_hive(adev, 0);
	struct amdgpu_device *tmp_adev;
	bool update_hive_pstate = true;
	bool is_high_pstate = pstate && adev->asic_type == CHIP_VEGA20;

	if (!hive)
		return 0;
@@ -283,8 +284,8 @@ int amdgpu_xgmi_set_pstate(struct amdgpu_device *adev, int pstate)
	mutex_lock(&hive->hive_lock);

	if (hive->pstate == pstate) {
		mutex_unlock(&hive->hive_lock);
		return 0;
		adev->pstate = is_high_pstate ? pstate : adev->pstate;
		goto out;
	}

	dev_dbg(adev->dev, "Set xgmi pstate %d.\n", pstate);
@@ -317,7 +318,7 @@ int amdgpu_xgmi_set_pstate(struct amdgpu_device *adev, int pstate)
			break;
		}
	}
	if (update_hive_pstate)
	if (update_hive_pstate || is_high_pstate)
		hive->pstate = pstate;

out: