diff options
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.patch | 72 |
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 + |