summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
diff options
context:
space:
mode:
authorNirmoy Das <nirmoy.das@amd.com>2020-05-07 21:34:41 +0200
committerAlex Deucher <alexander.deucher@amd.com>2020-05-08 14:32:24 -0400
commit77f3a5cd7023d946a7bbcbb4c88aa5d601d5eb9b (patch)
tree024874b116dcbc7977eb986ad9b2ba794f72141a /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
parent85625e64295079525e5f841b576f9ab71d2c6237 (diff)
downloadlinux-77f3a5cd7023d946a7bbcbb4c88aa5d601d5eb9b.tar.bz2
drm/amdgpu: cleanup sysfs file handling
Create sysfs file using attributes. Signed-off-by: Nirmoy Das <nirmoy.das@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_device.c36
1 files changed, 12 insertions, 24 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index bf302c799832..cc41e8f5ad14 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2918,6 +2918,14 @@ static int amdgpu_device_get_job_timeout_settings(struct amdgpu_device *adev)
return ret;
}
+static const struct attribute *amdgpu_dev_attributes[] = {
+ &dev_attr_product_name.attr,
+ &dev_attr_product_number.attr,
+ &dev_attr_serial_number.attr,
+ &dev_attr_pcie_replay_count.attr,
+ NULL
+};
+
/**
* amdgpu_device_init - initialize the driver
*
@@ -3267,27 +3275,9 @@ fence_driver_init:
queue_delayed_work(system_wq, &adev->delayed_init_work,
msecs_to_jiffies(AMDGPU_RESUME_MS));
- r = device_create_file(adev->dev, &dev_attr_pcie_replay_count);
- if (r) {
- dev_err(adev->dev, "Could not create pcie_replay_count");
- return r;
- }
-
- r = device_create_file(adev->dev, &dev_attr_product_name);
+ r = sysfs_create_files(&adev->dev->kobj, amdgpu_dev_attributes);
if (r) {
- dev_err(adev->dev, "Could not create product_name");
- return r;
- }
-
- r = device_create_file(adev->dev, &dev_attr_product_number);
- if (r) {
- dev_err(adev->dev, "Could not create product_number");
- return r;
- }
-
- r = device_create_file(adev->dev, &dev_attr_serial_number);
- if (r) {
- dev_err(adev->dev, "Could not create serial_number");
+ dev_err(adev->dev, "Could not create amdgpu device attr\n");
return r;
}
@@ -3370,12 +3360,10 @@ void amdgpu_device_fini(struct amdgpu_device *adev)
adev->rmmio = NULL;
amdgpu_device_doorbell_fini(adev);
- device_remove_file(adev->dev, &dev_attr_pcie_replay_count);
if (adev->ucode_sysfs_en)
amdgpu_ucode_sysfs_fini(adev);
- device_remove_file(adev->dev, &dev_attr_product_name);
- device_remove_file(adev->dev, &dev_attr_product_number);
- device_remove_file(adev->dev, &dev_attr_serial_number);
+
+ sysfs_remove_files(&adev->dev->kobj, amdgpu_dev_attributes);
if (IS_ENABLED(CONFIG_PERF_EVENTS))
amdgpu_pmu_fini(adev);
if (amdgpu_discovery && adev->asic_type >= CHIP_NAVI10)