|
@@ -535,6 +535,67 @@ done:
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+/* Proc debug_mask file read handler.
|
|
|
+ * This function is called when the 'debug_mask' file is opened for reading
|
|
|
+ * This function can be used read driver debugging mask value.
|
|
|
+ */
|
|
|
+static ssize_t
|
|
|
+mwifiex_debug_mask_read(struct file *file, char __user *ubuf,
|
|
|
+ size_t count, loff_t *ppos)
|
|
|
+{
|
|
|
+ struct mwifiex_private *priv =
|
|
|
+ (struct mwifiex_private *)file->private_data;
|
|
|
+ unsigned long page = get_zeroed_page(GFP_KERNEL);
|
|
|
+ char *buf = (char *)page;
|
|
|
+ size_t ret = 0;
|
|
|
+ int pos = 0;
|
|
|
+
|
|
|
+ if (!buf)
|
|
|
+ return -ENOMEM;
|
|
|
+
|
|
|
+ pos += snprintf(buf, PAGE_SIZE, "debug mask=0x%08x\n",
|
|
|
+ priv->adapter->debug_mask);
|
|
|
+ ret = simple_read_from_buffer(ubuf, count, ppos, buf, pos);
|
|
|
+
|
|
|
+ free_page(page);
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
+/* Proc debug_mask file read handler.
|
|
|
+ * This function is called when the 'debug_mask' file is opened for reading
|
|
|
+ * This function can be used read driver debugging mask value.
|
|
|
+ */
|
|
|
+static ssize_t
|
|
|
+mwifiex_debug_mask_write(struct file *file, const char __user *ubuf,
|
|
|
+ size_t count, loff_t *ppos)
|
|
|
+{
|
|
|
+ int ret;
|
|
|
+ unsigned long debug_mask;
|
|
|
+ struct mwifiex_private *priv = (void *)file->private_data;
|
|
|
+ unsigned long addr = get_zeroed_page(GFP_KERNEL);
|
|
|
+ char *buf = (void *)addr;
|
|
|
+ size_t buf_size = min(count, (size_t)(PAGE_SIZE - 1));
|
|
|
+
|
|
|
+ if (!buf)
|
|
|
+ return -ENOMEM;
|
|
|
+
|
|
|
+ if (copy_from_user(buf, ubuf, buf_size)) {
|
|
|
+ ret = -EFAULT;
|
|
|
+ goto done;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (kstrtoul(buf, 0, &debug_mask)) {
|
|
|
+ ret = -EINVAL;
|
|
|
+ goto done;
|
|
|
+ }
|
|
|
+
|
|
|
+ priv->adapter->debug_mask = debug_mask;
|
|
|
+ ret = count;
|
|
|
+done:
|
|
|
+ free_page(addr);
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
/* Proc memrw file write handler.
|
|
|
* This function is called when the 'memrw' file is opened for writing
|
|
|
* This function can be used to write to a memory location.
|
|
@@ -829,6 +890,7 @@ MWIFIEX_DFS_FILE_OPS(rdeeprom);
|
|
|
MWIFIEX_DFS_FILE_OPS(memrw);
|
|
|
MWIFIEX_DFS_FILE_OPS(hscfg);
|
|
|
MWIFIEX_DFS_FILE_OPS(histogram);
|
|
|
+MWIFIEX_DFS_FILE_OPS(debug_mask);
|
|
|
|
|
|
/*
|
|
|
* This function creates the debug FS directory structure and the files.
|
|
@@ -854,6 +916,7 @@ mwifiex_dev_debugfs_init(struct mwifiex_private *priv)
|
|
|
MWIFIEX_DFS_ADD_FILE(memrw);
|
|
|
MWIFIEX_DFS_ADD_FILE(hscfg);
|
|
|
MWIFIEX_DFS_ADD_FILE(histogram);
|
|
|
+ MWIFIEX_DFS_ADD_FILE(debug_mask);
|
|
|
}
|
|
|
|
|
|
/*
|