|
|
@@ -0,0 +1,72 @@
|
|
|
+From d64551dfc4c7fba6a94f7245393d173199ac9e07 Mon Sep 17 00:00:00 2001
|
|
|
+From: Ivo van Doorn <[email protected]>
|
|
|
+Date: Sun, 8 Feb 2009 17:39:35 +0100
|
|
|
+Subject: [PATCH] rt2x00: Export all register stats through debugfs
|
|
|
+
|
|
|
+By exporting the register base, and word size to userspace
|
|
|
+through debugfs it will be easier to create scripts which
|
|
|
+parse the register information. This makes debugging and
|
|
|
+register dumps information easier.
|
|
|
+This will unfortunately not be backward compatible with
|
|
|
+the previous approach, but that is not important in this case
|
|
|
+since manually fixing the layout of the dumpfile to match the
|
|
|
+new style then interpreting the data without a script.
|
|
|
+
|
|
|
+Also be more consistent with using tabs to seperate different
|
|
|
+fields.
|
|
|
+
|
|
|
+Signed-off-by: Ivo van Doorn <[email protected]>
|
|
|
+---
|
|
|
+ drivers/net/wireless/rt2x00/rt2x00debug.c | 33 ++++++++++++++++++++--------
|
|
|
+ 1 files changed, 23 insertions(+), 10 deletions(-)
|
|
|
+
|
|
|
+--- a/drivers/net/wireless/rt2x00/rt2x00debug.c
|
|
|
++++ b/drivers/net/wireless/rt2x00/rt2x00debug.c
|
|
|
+@@ -545,9 +545,9 @@ static struct dentry *rt2x00debug_create
|
|
|
+ return NULL;
|
|
|
+
|
|
|
+ blob->data = data;
|
|
|
+- data += sprintf(data, "driver: %s\n", intf->rt2x00dev->ops->name);
|
|
|
+- data += sprintf(data, "version: %s\n", DRV_VERSION);
|
|
|
+- data += sprintf(data, "compiled: %s %s\n", __DATE__, __TIME__);
|
|
|
++ data += sprintf(data, "driver:\t%s\n", intf->rt2x00dev->ops->name);
|
|
|
++ data += sprintf(data, "version:\t%s\n", DRV_VERSION);
|
|
|
++ data += sprintf(data, "compiled:\t%s %s\n", __DATE__, __TIME__);
|
|
|
+ blob->size = strlen(blob->data);
|
|
|
+
|
|
|
+ return debugfs_create_blob(name, S_IRUSR, intf->driver_folder, blob);
|
|
|
+@@ -568,14 +568,27 @@ static struct dentry *rt2x00debug_create
|
|
|
+ return NULL;
|
|
|
+
|
|
|
+ blob->data = data;
|
|
|
+- data += sprintf(data, "rt chip: %04x\n", intf->rt2x00dev->chip.rt);
|
|
|
+- data += sprintf(data, "rf chip: %04x\n", intf->rt2x00dev->chip.rf);
|
|
|
+- data += sprintf(data, "revision:%08x\n", intf->rt2x00dev->chip.rev);
|
|
|
++ data += sprintf(data, "rt chip:\t%04x\n", intf->rt2x00dev->chip.rt);
|
|
|
++ data += sprintf(data, "rf chip:\t%04x\n", intf->rt2x00dev->chip.rf);
|
|
|
++ data += sprintf(data, "revision:\t%08x\n", intf->rt2x00dev->chip.rev);
|
|
|
+ data += sprintf(data, "\n");
|
|
|
+- data += sprintf(data, "csr length: %d\n", debug->csr.word_count);
|
|
|
+- data += sprintf(data, "eeprom length: %d\n", debug->eeprom.word_count);
|
|
|
+- data += sprintf(data, "bbp length: %d\n", debug->bbp.word_count);
|
|
|
+- data += sprintf(data, "rf length: %d\n", debug->rf.word_count);
|
|
|
++ data += sprintf(data, "register\tbase\twords\twordsize\n");
|
|
|
++ data += sprintf(data, "csr\t%d\t%d\t%d\n",
|
|
|
++ debug->csr.word_base,
|
|
|
++ debug->csr.word_count,
|
|
|
++ debug->csr.word_size);
|
|
|
++ data += sprintf(data, "eeprom\t%d\t%d\t%d\n",
|
|
|
++ debug->eeprom.word_base,
|
|
|
++ debug->eeprom.word_count,
|
|
|
++ debug->eeprom.word_size);
|
|
|
++ data += sprintf(data, "bbp\t%d\t%d\t%d\n",
|
|
|
++ debug->bbp.word_base,
|
|
|
++ debug->bbp.word_count,
|
|
|
++ debug->bbp.word_size);
|
|
|
++ data += sprintf(data, "rf\t%d\t%d\t%d\n",
|
|
|
++ debug->rf.word_base,
|
|
|
++ debug->rf.word_count,
|
|
|
++ debug->rf.word_size);
|
|
|
+ blob->size = strlen(blob->data);
|
|
|
+
|
|
|
+ return debugfs_create_blob(name, S_IRUSR, intf->driver_folder, blob);
|