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@xxxxxxx> Signed-off-by: Ben Widawsky <ben@xxxxxxxxxxxx> --- 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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel