diff options
author | Sidath Senanayake <sidaths@google.com> | 2020-12-15 15:41:40 +0000 |
---|---|---|
committer | Sidath Senanayake <sidaths@google.com> | 2021-05-05 16:04:25 +0100 |
commit | d36c69610c3126373c23617776c759f235a88b37 (patch) | |
tree | ed0eb4518f9c79c037ea4ad31f8fe759fadc4f7e /mali_pixel/memory_group_manager.c | |
parent | e79c6ccf628f8f6a3b8bf5fc2ee8c99dba6c6868 (diff) | |
download | gpu-d36c69610c3126373c23617776c759f235a88b37.tar.gz |
mali_pixel: mgm: Clean up debugfs implementation
Signed-off-by: Sidath Senanayake <sidaths@google.com>
Change-Id: I0ae2ad8d5bdcf4223e5db3854172cfdcd88682f4
Diffstat (limited to 'mali_pixel/memory_group_manager.c')
-rw-r--r-- | mali_pixel/memory_group_manager.c | 75 |
1 files changed, 33 insertions, 42 deletions
diff --git a/mali_pixel/memory_group_manager.c b/mali_pixel/memory_group_manager.c index 785324e..d76e46b 100644 --- a/mali_pixel/memory_group_manager.c +++ b/mali_pixel/memory_group_manager.c @@ -114,6 +114,10 @@ struct mgm_groups { #endif }; +/* + * DebugFS + */ + #ifdef CONFIG_DEBUG_FS static int mgm_debugfs_state_get(void *data, u64 *val) @@ -168,9 +172,24 @@ static void mgm_debugfs_term(struct mgm_groups *data) } #define MGM_DEBUGFS_GROUP_NAME_MAX 10 + +/* + * attribs - An array of the debug fs files present for each group + */ +static struct { + const char *name; + const struct file_operations *fops; +} attribs[] = { + { "state", &fops_mgm_state}, + { "size", &fops_mgm_size}, + { "lp_size", &fops_mgm_lp_size}, + { "insert_pfn", &fops_mgm_insert_pfn}, + { "update_gpu_pte", &fops_mgm_update_gpu_pte}, +}; + static int mgm_debugfs_init(struct mgm_groups *mgm_data) { - int i; + int i, j; struct dentry *e, *g; char debugfs_group_name[MGM_DEBUGFS_GROUP_NAME_MAX]; @@ -199,46 +218,16 @@ static int mgm_debugfs_init(struct mgm_groups *mgm_data) goto remove_debugfs; } - e = debugfs_create_file("state", 0444, g, &mgm_data->groups[i], - &fops_mgm_state); - if (IS_ERR(e)) { - dev_err(mgm_data->dev, - "debugfs: Couldn't create state[%d]\n", i); - goto remove_debugfs; - } + for (j=0; j < ARRAY_SIZE(attribs); j++) { + e = debugfs_create_file(attribs[j].name, 0444, g, + &mgm_data->groups[i], attribs[j].fops); - - e = debugfs_create_file("size", 0444, g, &mgm_data->groups[i], - &fops_mgm_size); - if (IS_ERR(e)) { - dev_err(mgm_data->dev, - "debugfs: Couldn't create size[%d]\n", i); - goto remove_debugfs; - } - - e = debugfs_create_file("lp_size", 0444, g, - &mgm_data->groups[i], &fops_mgm_lp_size); - if (IS_ERR(e)) { - dev_err(mgm_data->dev, - "debugfs: Couldn't create lp_size[%d]\n", i); - goto remove_debugfs; - } - - e = debugfs_create_file("insert_pfn", 0444, g, - &mgm_data->groups[i], &fops_mgm_insert_pfn); - if (IS_ERR(e)) { - dev_err(mgm_data->dev, - "debugfs: Couldn't create insert_pfn[%d]\n", i); - goto remove_debugfs; - } - - e = debugfs_create_file("update_gpu_pte", 0444, g, - &mgm_data->groups[i], &fops_mgm_update_gpu_pte); - if (IS_ERR(e)) { - dev_err(mgm_data->dev, - "debugfs: Couldn't create update_gpu_pte[%d]\n", - i); - goto remove_debugfs; + if (IS_ERR(e)) { + dev_err(mgm_data->dev, + "debugfs: Couldn't create %s[%d]\n", + attribs[j].name, i); + goto remove_debugfs; + } } } @@ -601,6 +590,7 @@ static int memory_group_manager_probe(struct platform_device *pdev) { struct memory_group_manager_device *mgm_dev; struct mgm_groups *mgm_data; + int ret; mgm_dev = kzalloc(sizeof(*mgm_dev), GFP_KERNEL); if (!mgm_dev) @@ -623,10 +613,11 @@ static int memory_group_manager_probe(struct platform_device *pdev) mgm_dev->data = mgm_data; mgm_data->dev = &pdev->dev; - if (mgm_initialize_data(mgm_data)) { + ret = mgm_initialize_data(mgm_data); + if (ret) { kfree(mgm_data); kfree(mgm_dev); - return -ENOENT; + return ret; } mgm_initialize_g3d_regs(); |