Am 07.05.20 um 11:13 schrieb Bernard Zhao:
There is DEVICE_ATTR mechanism in separate attribute define.
So this change is to use attr array, also use
sysfs_create_files in init function & sysfs_remove_files in
fini function.
This maybe make the code a bit readable.

Signed-off-by: Bernard Zhao <bern...@vivo.com>

Reviewed-by: Christian König <christian.koe...@amd.com>


Changes since V1:
*Use DEVICE_ATTR mechanism

Link for V1:
*https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fpatchwork%2Fpatch%2F1228076%2F&amp;data=02%7C01%7Cchristian.koenig%40amd.com%7C073b9043be5346b3c90c08d7f266e6fb%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637244396096735223&amp;sdata=PjFsYvmw2pvVisZ6TzMqOyoSr0m3DsFN%2F0q%2B%2FfBxACg%3D&amp;reserved=0
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 43 ++++++--------------
  1 file changed, 13 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
index 82a3299e53c0..57bbc70662ff 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
@@ -148,6 +148,15 @@ static DEVICE_ATTR(mem_info_vis_vram_used, S_IRUGO,
  static DEVICE_ATTR(mem_info_vram_vendor, S_IRUGO,
                   amdgpu_mem_info_vram_vendor, NULL);
+static struct attribute *amdgpu_vram_mgr_attributes[] = {
+       &dev_attr_mem_info_vram_total.attr,
+       &dev_attr_mem_info_vis_vram_total.attr,
+       &dev_attr_mem_info_vram_used.attr,
+       &dev_attr_mem_info_vis_vram_used.attr,
+       &dev_attr_mem_info_vram_vendor.attr,
+       NULL
+};
+
  /**
   * amdgpu_vram_mgr_init - init VRAM manager and DRM MM
   *
@@ -172,31 +181,9 @@ static int amdgpu_vram_mgr_init(struct 
ttm_mem_type_manager *man,
        man->priv = mgr;
/* Add the two VRAM-related sysfs files */
-       ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_total);
-       if (ret) {
-               DRM_ERROR("Failed to create device file mem_info_vram_total\n");
-               return ret;
-       }
-       ret = device_create_file(adev->dev, &dev_attr_mem_info_vis_vram_total);
-       if (ret) {
-               DRM_ERROR("Failed to create device file 
mem_info_vis_vram_total\n");
-               return ret;
-       }
-       ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_used);
-       if (ret) {
-               DRM_ERROR("Failed to create device file mem_info_vram_used\n");
-               return ret;
-       }
-       ret = device_create_file(adev->dev, &dev_attr_mem_info_vis_vram_used);
-       if (ret) {
-               DRM_ERROR("Failed to create device file 
mem_info_vis_vram_used\n");
-               return ret;
-       }
-       ret = device_create_file(adev->dev, &dev_attr_mem_info_vram_vendor);
-       if (ret) {
-               DRM_ERROR("Failed to create device file 
mem_info_vram_vendor\n");
-               return ret;
-       }
+       ret = sysfs_create_files(&adev->dev->kobj, amdgpu_vram_mgr_attributes);
+       if (ret)
+               DRM_ERROR("Failed to register sysfs\n");
return 0;
  }
@@ -219,11 +206,7 @@ static int amdgpu_vram_mgr_fini(struct 
ttm_mem_type_manager *man)
        spin_unlock(&mgr->lock);
        kfree(mgr);
        man->priv = NULL;
-       device_remove_file(adev->dev, &dev_attr_mem_info_vram_total);
-       device_remove_file(adev->dev, &dev_attr_mem_info_vis_vram_total);
-       device_remove_file(adev->dev, &dev_attr_mem_info_vram_used);
-       device_remove_file(adev->dev, &dev_attr_mem_info_vis_vram_used);
-       device_remove_file(adev->dev, &dev_attr_mem_info_vram_vendor);
+       sysfs_remove_files(&adev->dev->kobj, amdgpu_vram_mgr_attributes);
        return 0;
  }

Reply via email to