1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // SPDX-License-Identifier: GPL-2.0-only
- /*
- * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
- */
- #include <linux/slab.h>
- #include "mmrm_debug.h"
- int msm_mmrm_debug = MMRM_ERR | MMRM_WARN | MMRM_PRINTK;
- u8 msm_mmrm_enable_throttle_feature = 1;
- u8 msm_mmrm_allow_multiple_register = 0;
- #define MAX_DBG_BUF_SIZE 4096
- static ssize_t msm_mmrm_debugfs_info_read(
- struct file *file, char __user *buf, size_t count, loff_t *ppos)
- {
- char *dbuf, *cur, *end;
- ssize_t len = 0;
- dbuf = kzalloc(MAX_DBG_BUF_SIZE, GFP_KERNEL);
- if (!dbuf) {
- d_mpr_e("%s: Allocation failed!\n", __func__);
- return -ENOMEM;
- }
- cur = dbuf;
- end = cur + MAX_DBG_BUF_SIZE;
- // TODO: Fill cur here
- len = simple_read_from_buffer(buf, count, ppos, dbuf, cur - dbuf);
- kfree(dbuf);
- return len;
- }
- const struct file_operations msm_mmrm_debugfs_info_fops = {
- .open = simple_open,
- .read = msm_mmrm_debugfs_info_read,
- };
- struct dentry *msm_mmrm_debugfs_init(void)
- {
- struct dentry *dir;
- int file_val;
- /* create a directory in debugfs root (/sys/kernel/debug) */
- dir = debugfs_create_dir("msm_mmrm", NULL);
- if (IS_ERR_OR_NULL(dir)) {
- d_mpr_e("%s: Call to debugfs_create_dir(%s) failed!\n", __func__, "mmrm");
- goto failed_create_dir;
- }
- /* basic info */
- if (!debugfs_create_file("info", 0444, dir, &file_val, &msm_mmrm_debugfs_info_fops)) {
- d_mpr_e("%s: Call to debugfs_create_file(%s) failed!\n", __func__, "info");
- goto failed_create_dir;
- }
- /* add other params here */
- debugfs_create_u32("debug_level", 0644, dir, &msm_mmrm_debug);
- debugfs_create_u8("allow_multiple_register", 0644, dir, &msm_mmrm_allow_multiple_register);
- debugfs_create_u8("enable_throttle_feature", 0644, dir, &msm_mmrm_enable_throttle_feature);
- return dir;
- failed_create_dir:
- d_mpr_e("%s: error\n", __func__);
- return NULL;
- }
- void msm_mmrm_debugfs_deinit(struct dentry *dir)
- {
- debugfs_remove_recursive(dir);
- }
|