[PATCH 93/99] cw1200: Dynamic WSM messages dumps
Dmitry Tarnyagin
dmitry.tarnyagin at stericsson.com
Wed Feb 29 14:15:40 UTC 2012
From: Bartosz Markowski <bartosz.markowski at tieto.com>
Adds dynamic WSM dumps support. Creates new debugFS
entry 'wsm_dumps', which can be used to dynamicly
enable and disable WSM messages dumps.
ST-Ericsson ID: 419537
ST-Ericsson FOSS-OUT ID: NA
Change-Id: Id87f2e47cbc3023551dbae9d79981a6ce1cf6d29
Signed-off-by: Bartosz Markowski <bartosz.markowski at tieto.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/50357
Reviewed-by: QATOOLS
Reviewed-by: QABUILD
---
drivers/staging/cw1200/bh.c | 12 ++++++++----
drivers/staging/cw1200/cw1200.h | 3 +++
drivers/staging/cw1200/debug.c | 29 +++++++++++++++++++++++++++++
3 files changed, 40 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/cw1200/bh.c b/drivers/staging/cw1200/bh.c
index 34bf7d7..5c0fc62 100644
--- a/drivers/staging/cw1200/bh.c
+++ b/drivers/staging/cw1200/bh.c
@@ -397,8 +397,10 @@ rx:
break;
#if defined(CONFIG_CW1200_WSM_DUMPS)
- print_hex_dump_bytes("<-- ", DUMP_PREFIX_NONE,
- data, wsm_len);
+ if (unlikely(priv->wsm_enable_wsm_dumps))
+ print_hex_dump_bytes("<-- ",
+ DUMP_PREFIX_NONE,
+ data, wsm_len);
#endif /* CONFIG_CW1200_WSM_DUMPS */
wsm_id = __le32_to_cpu(wsm->id) & 0xFFF;
@@ -520,8 +522,10 @@ tx:
}
#if defined(CONFIG_CW1200_WSM_DUMPS)
- print_hex_dump_bytes("--> ", DUMP_PREFIX_NONE,
- data, __le32_to_cpu(wsm->len));
+ if (unlikely(priv->wsm_enable_wsm_dumps))
+ print_hex_dump_bytes("--> ",
+ DUMP_PREFIX_NONE,
+ data, __le32_to_cpu(wsm->len));
#endif /* CONFIG_CW1200_WSM_DUMPS */
wsm_txed(priv, data);
diff --git a/drivers/staging/cw1200/cw1200.h b/drivers/staging/cw1200/cw1200.h
index 46b8087..81b4533 100644
--- a/drivers/staging/cw1200/cw1200.h
+++ b/drivers/staging/cw1200/cw1200.h
@@ -206,6 +206,9 @@ struct cw1200_common {
struct wsm_cbc wsm_cbc;
atomic_t tx_lock;
+ /* WSM debug */
+ int wsm_enable_wsm_dumps;
+
/* Scan status */
struct cw1200_scan scan;
diff --git a/drivers/staging/cw1200/debug.c b/drivers/staging/cw1200/debug.c
index 7a2da55..46db833 100644
--- a/drivers/staging/cw1200/debug.c
+++ b/drivers/staging/cw1200/debug.c
@@ -468,6 +468,31 @@ static const struct file_operations fops_hang = {
};
#endif
+static ssize_t cw1200_wsm_dumps(struct file *file,
+ const char __user *user_buf, size_t count, loff_t *ppos)
+{
+ struct cw1200_common *priv = file->private_data;
+ char buf[1];
+
+ if (!count)
+ return -EINVAL;
+ if (copy_from_user(buf, user_buf, 1))
+ return -EFAULT;
+
+ if (buf[0] == '1')
+ priv->wsm_enable_wsm_dumps = 1;
+ else
+ priv->wsm_enable_wsm_dumps = 0;
+
+ return count;
+}
+
+static const struct file_operations fops_wsm_dumps = {
+ .open = cw1200_generic_open,
+ .write = cw1200_wsm_dumps,
+ .llseek = default_llseek,
+};
+
int cw1200_debug_init(struct cw1200_common *priv)
{
int ret = -ENOMEM;
@@ -500,6 +525,10 @@ int cw1200_debug_init(struct cw1200_common *priv)
goto err;
#endif
+ if (!debugfs_create_file("wsm_dumps", S_IWUSR, d->debugfs_phy,
+ priv, &fops_wsm_dumps))
+ goto err;
+
ret = cw1200_itp_init(priv);
if (ret)
goto err;
--
1.7.8.3
More information about the kernel
mailing list