diff --git a/asoc/codecs/wcd934x/wcd934x-dsp-cntl.c b/asoc/codecs/wcd934x/wcd934x-dsp-cntl.c index de4f3997d4..f18cc81a91 100644 --- a/asoc/codecs/wcd934x/wcd934x-dsp-cntl.c +++ b/asoc/codecs/wcd934x/wcd934x-dsp-cntl.c @@ -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", diff --git a/asoc/codecs/wcd934x/wcd934x-dsp-cntl.h b/asoc/codecs/wcd934x/wcd934x-dsp-cntl.h index 0127a0df2d..5ce4fd85da 100644 --- a/asoc/codecs/wcd934x/wcd934x-dsp-cntl.h +++ b/asoc/codecs/wcd934x/wcd934x-dsp-cntl.h @@ -91,6 +91,7 @@ struct wcd_dsp_cntl { struct dentry *entry; u32 debug_mode; bool ramdump_enable; + bool dbg_dmp_enable; /* WDSP manager drivers data */ struct device *m_dev;