diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0303-drm-amdgpu-cz-unforce-dpm-levels-before-forcing-to-l.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0303-drm-amdgpu-cz-unforce-dpm-levels-before-forcing-to-l.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0303-drm-amdgpu-cz-unforce-dpm-levels-before-forcing-to-l.patch b/common/recipes-kernel/linux/files/0303-drm-amdgpu-cz-unforce-dpm-levels-before-forcing-to-l.patch new file mode 100644 index 00000000..16abea5d --- /dev/null +++ b/common/recipes-kernel/linux/files/0303-drm-amdgpu-cz-unforce-dpm-levels-before-forcing-to-l.patch @@ -0,0 +1,48 @@ +From 85cfe096552b7792032105dbcedeab019ac4c26e Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Tue, 14 Jul 2015 12:26:41 -0400 +Subject: [PATCH 0303/1050] drm/amdgpu/cz: unforce dpm levels before forcing to + low/high + +This is necessary to properly reset the min/max limits before +clamping them otherwise we may get improper clamping depending +on what what was the last forced level. + +Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/cz_dpm.c b/drivers/gpu/drm/amd/amdgpu/cz_dpm.c +index f75a31d..8d95547 100644 +--- a/drivers/gpu/drm/amd/amdgpu/cz_dpm.c ++++ b/drivers/gpu/drm/amd/amdgpu/cz_dpm.c +@@ -1687,17 +1687,23 @@ static int cz_dpm_unforce_dpm_levels(struct amdgpu_device *adev) + } + + static int cz_dpm_force_dpm_level(struct amdgpu_device *adev, +- enum amdgpu_dpm_forced_level level) ++ enum amdgpu_dpm_forced_level level) + { + int ret = 0; + + switch (level) { + case AMDGPU_DPM_FORCED_LEVEL_HIGH: ++ ret = cz_dpm_unforce_dpm_levels(adev); ++ if (ret) ++ return ret; + ret = cz_dpm_force_highest(adev); + if (ret) + return ret; + break; + case AMDGPU_DPM_FORCED_LEVEL_LOW: ++ ret = cz_dpm_unforce_dpm_levels(adev); ++ if (ret) ++ return ret; + ret = cz_dpm_force_lowest(adev); + if (ret) + return ret; +-- +1.9.1 + |