aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0303-drm-amdgpu-cz-unforce-dpm-levels-before-forcing-to-l.patch
diff options
context:
space:
mode:
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.patch48
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
+