aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0990-drm-amd-powerplay-create-pp_od_clk_voltage-device-fi.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0990-drm-amd-powerplay-create-pp_od_clk_voltage-device-fi.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0990-drm-amd-powerplay-create-pp_od_clk_voltage-device-fi.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0990-drm-amd-powerplay-create-pp_od_clk_voltage-device-fi.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0990-drm-amd-powerplay-create-pp_od_clk_voltage-device-fi.patch
new file mode 100644
index 00000000..f8c6e25d
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0990-drm-amd-powerplay-create-pp_od_clk_voltage-device-fi.patch
@@ -0,0 +1,72 @@
+From f6d68b87483474ad3dad7eb7513f1555b0a68959 Mon Sep 17 00:00:00 2001
+From: Evan Quan <evan.quan@amd.com>
+Date: Mon, 7 Jan 2019 18:56:14 +0800
+Subject: [PATCH 0990/2940] drm/amd/powerplay: create pp_od_clk_voltage device
+ file under OD support
+
+Since pp_od_clk_voltage device file is for OD related sysfs operations.
+
+Signed-off-by: Evan Quan <evan.quan@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 22 ++++++++++++++--------
+ 1 file changed, 14 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+index 1f61ed95727c..6896dec97fc7 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+@@ -2008,6 +2008,7 @@ void amdgpu_pm_print_power_states(struct amdgpu_device *adev)
+
+ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev)
+ {
++ struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle;
+ int ret;
+
+ if (adev->pm.sysfs_initialized)
+@@ -2091,12 +2092,14 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev)
+ "pp_power_profile_mode\n");
+ return ret;
+ }
+- ret = device_create_file(adev->dev,
+- &dev_attr_pp_od_clk_voltage);
+- if (ret) {
+- DRM_ERROR("failed to create device file "
+- "pp_od_clk_voltage\n");
+- return ret;
++ if (hwmgr->od_enabled) {
++ ret = device_create_file(adev->dev,
++ &dev_attr_pp_od_clk_voltage);
++ if (ret) {
++ DRM_ERROR("failed to create device file "
++ "pp_od_clk_voltage\n");
++ return ret;
++ }
+ }
+ ret = device_create_file(adev->dev,
+ &dev_attr_gpu_busy_percent);
+@@ -2118,6 +2121,8 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev)
+
+ void amdgpu_pm_sysfs_fini(struct amdgpu_device *adev)
+ {
++ struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle;
++
+ if (adev->pm.dpm_enabled == 0)
+ return;
+
+@@ -2138,8 +2143,9 @@ void amdgpu_pm_sysfs_fini(struct amdgpu_device *adev)
+ device_remove_file(adev->dev, &dev_attr_pp_mclk_od);
+ device_remove_file(adev->dev,
+ &dev_attr_pp_power_profile_mode);
+- device_remove_file(adev->dev,
+- &dev_attr_pp_od_clk_voltage);
++ if (hwmgr->od_enabled)
++ device_remove_file(adev->dev,
++ &dev_attr_pp_od_clk_voltage);
+ device_remove_file(adev->dev, &dev_attr_gpu_busy_percent);
+ }
+
+--
+2.17.1
+