Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2f52ac8 authored by Rex Zhu's avatar Rex Zhu Committed by Alex Deucher
Browse files

drm/amdgpu: move common pm sysfs code to amdgpu_device.c

parent c98171cc
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -56,6 +56,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");
@@ -2216,6 +2217,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);
@@ -2312,6 +2317,7 @@ void amdgpu_device_fini(struct amdgpu_device *adev)
	iounmap(adev->rmmio);
	adev->rmmio = NULL;
	amdgpu_doorbell_fini(adev);
	amdgpu_pm_sysfs_fini(adev);
	amdgpu_debugfs_regs_cleanup(adev);
}

+6 −0
Original line number Diff line number Diff line
@@ -1317,6 +1317,9 @@ 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;

@@ -1417,6 +1420,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);
+1 −6
Original line number Diff line number Diff line
@@ -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);
+0 −1
Original line number Diff line number Diff line
@@ -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);

+0 −7
Original line number Diff line number Diff line
@@ -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);

Loading