summaryrefslogtreecommitdiff
path: root/mali_pixel/memory_group_manager.c
diff options
context:
space:
mode:
authorSidath Senanayake <sidaths@google.com>2020-12-15 15:41:40 +0000
committerSidath Senanayake <sidaths@google.com>2021-05-05 16:04:25 +0100
commitd36c69610c3126373c23617776c759f235a88b37 (patch)
treeed0eb4518f9c79c037ea4ad31f8fe759fadc4f7e /mali_pixel/memory_group_manager.c
parente79c6ccf628f8f6a3b8bf5fc2ee8c99dba6c6868 (diff)
downloadgpu-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.c75
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();