[PATCH 3/6] drm/radeon: Use new drm debugfs file helper

Ben Widawsky benjamin.widawsky at intel.com
Tue Jan 21 12:33:19 PST 2014


The debugfs helper duplicates the functionality used by Armada, so let's
just use that.

WARNING: only compile tested

Cc: Christian König <christian.koenig at amd.com>
Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
---
 drivers/gpu/drm/radeon/radeon.h     |  5 -----
 drivers/gpu/drm/radeon/radeon_ttm.c | 43 ++++++++++++++++++++++---------------
 2 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index c5519ca..ceec468 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -418,11 +418,6 @@ struct radeon_mman {
 	struct ttm_bo_device		bdev;
 	bool				mem_global_referenced;
 	bool				initialized;
-
-#if defined(CONFIG_DEBUG_FS)
-	struct dentry			*vram;
-	struct dentry			*gtt;
-#endif
 };
 
 /* bo virtual address in a specific vm */
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index 77f5b0c..cf7caf2 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -971,27 +971,34 @@ static const struct file_operations radeon_ttm_gtt_fops = {
 	.llseek = default_llseek
 };
 
+static const struct radeon_debugfs_files {
+	const char *name;
+	const struct file_operations *fops;
+} radeon_debugfs_files[] = {
+	{"radeon_vram", &radeon_ttm_vram_fops},
+	{"radeon_gtt", &radeon_ttm_gtt_fops},
+};
 #endif
 
 static int radeon_ttm_debugfs_init(struct radeon_device *rdev)
 {
 #if defined(CONFIG_DEBUG_FS)
 	unsigned count;
+	int i, ret;
 
 	struct drm_minor *minor = rdev->ddev->primary;
-	struct dentry *ent, *root = minor->debugfs_root;
-
-	ent = debugfs_create_file("radeon_vram", S_IFREG | S_IRUGO, root,
-				  rdev, &radeon_ttm_vram_fops);
-	if (IS_ERR(ent))
-		return PTR_ERR(ent);
-	rdev->mman.vram = ent;
-
-	ent = debugfs_create_file("radeon_gtt", S_IFREG | S_IRUGO, root,
-				  rdev, &radeon_ttm_gtt_fops);
-	if (IS_ERR(ent))
-		return PTR_ERR(ent);
-	rdev->mman.gtt = ent;
+	struct dentry *root = minor->debugfs_root;
+
+	for (i = 0; i < ARRAY_SIZE(radeon_debugfs_files); i++) {
+		ret = drm_debugfs_create_file(root, minor,
+					      radeon_debugfs_files[i].name,
+					      radeon_debugfs_files[i].fops,
+					      S_IFREG | S_IWUSR);
+		if (ret) {
+			radeon_ttm_debugfs_fini(rdev);
+			return ret;
+		}
+	}
 
 	count = ARRAY_SIZE(radeon_ttm_debugfs_list);
 
@@ -1010,11 +1017,13 @@ static int radeon_ttm_debugfs_init(struct radeon_device *rdev)
 static void radeon_ttm_debugfs_fini(struct radeon_device *rdev)
 {
 #if defined(CONFIG_DEBUG_FS)
+	int i;
 
-	debugfs_remove(rdev->mman.vram);
-	rdev->mman.vram = NULL;
+	for (i = 0; i < ARRAY_SIZE(radeon_debugfs_files); i++) {
+		struct drm_info_list *info_list =
+			(struct drm_info_list *)&radeon_debugfs_files[i];
 
-	debugfs_remove(rdev->mman.gtt);
-	rdev->mman.gtt = NULL;
+		drm_debugfs_remove_files(info_list, 1, rdev->ddev->primary);
+	}
 #endif
 }
-- 
1.8.5.3



More information about the dri-devel mailing list