Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f576426 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu/cz: force uvd clocks when sclks are forced

parent 044c0629
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -1971,23 +1971,47 @@ static int cz_dpm_force_dpm_level(struct amdgpu_device *adev,

	switch (level) {
	case AMDGPU_DPM_FORCED_LEVEL_HIGH:
		/* sclk */
		ret = cz_dpm_unforce_dpm_levels(adev);
		if (ret)
			return ret;
		ret = cz_dpm_force_highest(adev);
		if (ret)
			return ret;

		/* uvd */
		ret = cz_dpm_unforce_uvd_dpm_levels(adev);
		if (ret)
			return ret;
		ret = cz_dpm_uvd_force_highest(adev);
		if (ret)
			return ret;
		break;
	case AMDGPU_DPM_FORCED_LEVEL_LOW:
		/* sclk */
		ret = cz_dpm_unforce_dpm_levels(adev);
		if (ret)
			return ret;
		ret = cz_dpm_force_lowest(adev);
		if (ret)
			return ret;

		/* uvd */
		ret = cz_dpm_unforce_uvd_dpm_levels(adev);
		if (ret)
			return ret;
		ret = cz_dpm_uvd_force_lowest(adev);
		if (ret)
			return ret;
		break;
	case AMDGPU_DPM_FORCED_LEVEL_AUTO:
		/* sclk */
		ret = cz_dpm_unforce_dpm_levels(adev);
		if (ret)
			return ret;

		/* uvd */
		ret = cz_dpm_unforce_uvd_dpm_levels(adev);
		if (ret)
			return ret;
		break;