diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1901-drm-amdgpu-move-common-pm-sysfs-code-to-amdgpu_devic.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1901-drm-amdgpu-move-common-pm-sysfs-code-to-amdgpu_devic.patch | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1901-drm-amdgpu-move-common-pm-sysfs-code-to-amdgpu_devic.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1901-drm-amdgpu-move-common-pm-sysfs-code-to-amdgpu_devic.patch new file mode 100644 index 00000000..ad505294 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1901-drm-amdgpu-move-common-pm-sysfs-code-to-amdgpu_devic.patch @@ -0,0 +1,169 @@ +From 3bd0355b42f1588123f370b636b7246bfc68ce4a Mon Sep 17 00:00:00 2001 +From: Rex Zhu <Rex.Zhu@amd.com> +Date: Fri, 22 Sep 2017 17:47:27 +0800 +Subject: [PATCH 1901/4131] drm/amdgpu: move common pm sysfs code to + amdgpu_device.c + +Change-Id: I41b16ee94758fcbc6b2bd97e74be14c9b74b2ae6 +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 ++++++ + drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 8 +++++++- + drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 7 +------ + drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 1 - + drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 7 ------- + drivers/gpu/drm/amd/amdgpu/si_dpm.c | 6 ------ + 6 files changed, 14 insertions(+), 21 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +index ce1f1ba..01a244d 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +@@ -57,6 +57,7 @@ + #include "amdgpu_vf_error.h" + + #include "amdgpu_amdkfd.h" ++#include "amdgpu_pm.h" + + MODULE_FIRMWARE("amdgpu/vega10_gpu_info.bin"); + MODULE_FIRMWARE("amdgpu/raven_gpu_info.bin"); +@@ -2285,6 +2286,10 @@ int amdgpu_device_init(struct amdgpu_device *adev, + + amdgpu_fbdev_init(adev); + ++ r = amdgpu_pm_sysfs_init(adev); ++ if (r) ++ DRM_ERROR("registering pm debugfs failed (%d).\n", r); ++ + r = amdgpu_gem_debugfs_init(adev); + if (r) + DRM_ERROR("registering gem debugfs failed (%d).\n", r); +@@ -2385,6 +2390,7 @@ void amdgpu_device_fini(struct amdgpu_device *adev) + adev->rmmio = NULL; + + amdgpu_doorbell_fini(adev); ++ amdgpu_pm_sysfs_fini(adev); + amdgpu_debugfs_regs_cleanup(adev); + } + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +index 74539c2..44d74db 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +@@ -1315,7 +1315,10 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev) + + if (adev->pm.sysfs_initialized) + return 0; +- ++ ++ if (adev->pm.dpm_enabled == 0) ++ return 0; ++ + if (adev->powerplay.pp_funcs->get_temperature == NULL) + return 0; + +@@ -1416,6 +1419,9 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev) + + void amdgpu_pm_sysfs_fini(struct amdgpu_device *adev) + { ++ if (adev->pm.dpm_enabled == 0) ++ return; ++ + if (adev->pm.int_hwmon_dev) + hwmon_device_unregister(adev->pm.int_hwmon_dev); + device_remove_file(adev->dev, &dev_attr_power_dpm_state); +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c +index 2d2f0960..1ad6323 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c +@@ -137,10 +137,8 @@ static int amdgpu_pp_late_init(void *handle) + ret = adev->powerplay.ip_funcs->late_init( + adev->powerplay.pp_handle); + +- if (adev->pp_enabled && adev->pm.dpm_enabled) { +- amdgpu_pm_sysfs_init(adev); ++ if (adev->pp_enabled && adev->pm.dpm_enabled) + amdgpu_dpm_dispatch_task(adev, AMD_PP_TASK_COMPLETE_INIT, NULL, NULL); +- } + + return ret; + } +@@ -199,9 +197,6 @@ static int amdgpu_pp_hw_fini(void *handle) + int ret = 0; + struct amdgpu_device *adev = (struct amdgpu_device *)handle; + +- if (adev->pp_enabled && adev->pm.dpm_enabled) +- amdgpu_pm_sysfs_fini(adev); +- + if (adev->powerplay.ip_funcs->hw_fini) + ret = adev->powerplay.ip_funcs->hw_fini( + adev->powerplay.pp_handle); +diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c +index 68ce1bd..68b505c 100644 +--- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c ++++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c +@@ -6365,7 +6365,6 @@ static int ci_dpm_sw_fini(void *handle) + flush_work(&adev->pm.dpm.thermal.work); + + mutex_lock(&adev->pm.mutex); +- amdgpu_pm_sysfs_fini(adev); + ci_dpm_fini(adev); + mutex_unlock(&adev->pm.mutex); + +diff --git a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c +index b57399a..f33d1ff 100644 +--- a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c ++++ b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c +@@ -2969,16 +2969,10 @@ static int kv_dpm_late_init(void *handle) + { + /* powerdown unused blocks for now */ + struct amdgpu_device *adev = (struct amdgpu_device *)handle; +- int ret; + + if (!amdgpu_dpm) + return 0; + +- /* init the sysfs and debugfs files late */ +- ret = amdgpu_pm_sysfs_init(adev); +- if (ret) +- return ret; +- + kv_dpm_powergate_acp(adev, true); + kv_dpm_powergate_samu(adev, true); + +@@ -3040,7 +3034,6 @@ static int kv_dpm_sw_fini(void *handle) + flush_work(&adev->pm.dpm.thermal.work); + + mutex_lock(&adev->pm.mutex); +- amdgpu_pm_sysfs_fini(adev); + kv_dpm_fini(adev); + mutex_unlock(&adev->pm.mutex); + +diff --git a/drivers/gpu/drm/amd/amdgpu/si_dpm.c b/drivers/gpu/drm/amd/amdgpu/si_dpm.c +index ffa2f3f..b8256566 100644 +--- a/drivers/gpu/drm/amd/amdgpu/si_dpm.c ++++ b/drivers/gpu/drm/amd/amdgpu/si_dpm.c +@@ -7585,11 +7585,6 @@ static int si_dpm_late_init(void *handle) + if (!amdgpu_dpm) + return 0; + +- /* init the sysfs and debugfs files late */ +- ret = amdgpu_pm_sysfs_init(adev); +- if (ret) +- return ret; +- + ret = si_set_temperature_range(adev); + if (ret) + return ret; +@@ -7745,7 +7740,6 @@ static int si_dpm_sw_fini(void *handle) + flush_work(&adev->pm.dpm.thermal.work); + + mutex_lock(&adev->pm.mutex); +- amdgpu_pm_sysfs_fini(adev); + si_dpm_fini(adev); + mutex_unlock(&adev->pm.mutex); + +-- +2.7.4 + |