aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0172-drm-amdgpu-cz-force-vce-clocks-when-sclks-are-forced.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0172-drm-amdgpu-cz-force-vce-clocks-when-sclks-are-forced.patch')
-rw-r--r--common/recipes-kernel/linux/files/0172-drm-amdgpu-cz-force-vce-clocks-when-sclks-are-forced.patch74
1 files changed, 74 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0172-drm-amdgpu-cz-force-vce-clocks-when-sclks-are-forced.patch b/common/recipes-kernel/linux/files/0172-drm-amdgpu-cz-force-vce-clocks-when-sclks-are-forced.patch
new file mode 100644
index 00000000..59784b80
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0172-drm-amdgpu-cz-force-vce-clocks-when-sclks-are-forced.patch
@@ -0,0 +1,74 @@
+From c93f76093ff3bc1e92e2c56cb23ee96b2b304d6f Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Fri, 18 Dec 2015 11:33:30 -0500
+Subject: [PATCH 0172/1110] drm/amdgpu/cz: force vce clocks when sclks are
+ forced
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Reviewed-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 24 +++++++++++++++++++++++-
+ 1 file changed, 23 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/cz_dpm.c b/drivers/gpu/drm/amd/amdgpu/cz_dpm.c
+index bdf5a22..4dd17f2 100644
+--- a/drivers/gpu/drm/amd/amdgpu/cz_dpm.c
++++ b/drivers/gpu/drm/amd/amdgpu/cz_dpm.c
+@@ -1986,6 +1986,14 @@ static int cz_dpm_force_dpm_level(struct amdgpu_device *adev,
+ ret = cz_dpm_uvd_force_highest(adev);
+ if (ret)
+ return ret;
++
++ /* vce */
++ ret = cz_dpm_unforce_vce_dpm_levels(adev);
++ if (ret)
++ return ret;
++ ret = cz_dpm_vce_force_highest(adev);
++ if (ret)
++ return ret;
+ break;
+ case AMDGPU_DPM_FORCED_LEVEL_LOW:
+ /* sclk */
+@@ -2003,6 +2011,14 @@ static int cz_dpm_force_dpm_level(struct amdgpu_device *adev,
+ ret = cz_dpm_uvd_force_lowest(adev);
+ if (ret)
+ return ret;
++
++ /* vce */
++ ret = cz_dpm_unforce_vce_dpm_levels(adev);
++ if (ret)
++ return ret;
++ ret = cz_dpm_vce_force_lowest(adev);
++ if (ret)
++ return ret;
+ break;
+ case AMDGPU_DPM_FORCED_LEVEL_AUTO:
+ /* sclk */
+@@ -2014,6 +2030,11 @@ static int cz_dpm_force_dpm_level(struct amdgpu_device *adev,
+ ret = cz_dpm_unforce_uvd_dpm_levels(adev);
+ if (ret)
+ return ret;
++
++ /* vce */
++ ret = cz_dpm_unforce_vce_dpm_levels(adev);
++ if (ret)
++ return ret;
+ break;
+ default:
+ break;
+@@ -2154,7 +2175,8 @@ static int cz_update_vce_dpm(struct amdgpu_device *adev)
+ pi->vce_dpm.hard_min_clk = table->entries[table->count-1].ecclk;
+
+ } else { /* non-stable p-state cases. without vce.Arbiter.EcclkHardMin */
+- pi->vce_dpm.hard_min_clk = table->entries[0].ecclk;
++ /* leave it as set by user */
++ /*pi->vce_dpm.hard_min_clk = table->entries[0].ecclk;*/
+ }
+
+ cz_send_msg_to_smc_with_parameter(adev,
+--
+2.7.4
+