|
@@ -757,7 +757,8 @@ static int wcd_cntl_do_boot(struct wcd_dsp_cntl *cntl)
|
|
|
if (!ret) {
|
|
|
dev_err(codec->dev, "%s: WDSP boot timed out\n",
|
|
|
__func__);
|
|
|
- wcd_cntl_collect_debug_dumps(cntl, true);
|
|
|
+ if (cntl->dbg_dmp_enable)
|
|
|
+ wcd_cntl_collect_debug_dumps(cntl, true);
|
|
|
ret = -ETIMEDOUT;
|
|
|
goto err_boot;
|
|
|
} else {
|
|
@@ -976,6 +977,8 @@ static void wcd_cntl_debugfs_init(char *dir, struct wcd_dsp_cntl *cntl)
|
|
|
cntl->entry, &cntl->debug_mode);
|
|
|
debugfs_create_bool("ramdump_enable", 0644,
|
|
|
cntl->entry, &cntl->ramdump_enable);
|
|
|
+ debugfs_create_bool("debug_dump_enable", 0644,
|
|
|
+ cntl->entry, &cntl->dbg_dmp_enable);
|
|
|
done:
|
|
|
return;
|
|
|
}
|
|
@@ -1038,16 +1041,23 @@ static ssize_t wcd_miscdev_write(struct file *filep, const char __user *ubuf,
|
|
|
} else if (val[0] == '0') {
|
|
|
if (cntl->boot_reqs == 0) {
|
|
|
dev_err(cntl->codec->dev,
|
|
|
- "%s: WDSP already disabled\n", __func__);
|
|
|
+ "%s: WDSP already disabled\n",
|
|
|
+ __func__);
|
|
|
ret = -EINVAL;
|
|
|
goto done;
|
|
|
}
|
|
|
cntl->boot_reqs--;
|
|
|
vote = false;
|
|
|
} else if (!strcmp(val, "DEBUG_DUMP")) {
|
|
|
- dev_dbg(cntl->codec->dev,
|
|
|
- "%s: Collect dumps for debug use\n", __func__);
|
|
|
- wcd_cntl_collect_debug_dumps(cntl, false);
|
|
|
+ if (cntl->dbg_dmp_enable) {
|
|
|
+ dev_dbg(cntl->codec->dev,
|
|
|
+ "%s: Collect dumps for debug use\n", __func__);
|
|
|
+ wcd_cntl_collect_debug_dumps(cntl, false);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ * simply ignore the request from userspace
|
|
|
+ * if dbg_dump_enable is not set from debugfs
|
|
|
+ */
|
|
|
goto done;
|
|
|
} else {
|
|
|
dev_err(cntl->codec->dev, "%s: Invalid value %s\n",
|