Sfoglia il codice sorgente

Merge "ASoC: wcd934x-dsp-cntl: add debugfs node to perform debug dumps"

Linux Build Service Account 6 anni fa
parent
commit
9970fc4999

+ 15 - 5
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",

+ 1 - 0
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;