aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnisse Astier <anisse@astier.eu>2012-04-19 09:53:10 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-05-08 21:53:46 -0400
commitf2bd7f16e5ae50a26028b4244f7b9c8bba0c48d2 (patch)
tree3682f88cf73a5dcd7612e4cd679a61b76ccac161
parentf2efd20facac2de96d33210a982820db960d25d1 (diff)
rt2x00: Add debugfs access for rfcsr register
RFCSR is only used in rt2800. For other chipsets, the debug struct for rfcsr should be zeroed, which isn't be an issue, since the code can now cope with that. Signed-off-by: Anisse Astier <anisse@astier.eu> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/rt2x00/rt2800.h2
-rw-r--r--drivers/net/wireless/rt2x00/rt2800lib.c7
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00debug.c11
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00debug.h1
4 files changed, 20 insertions, 1 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
index d91f4f628f65..9348521e0832 100644
--- a/drivers/net/wireless/rt2x00/rt2800.h
+++ b/drivers/net/wireless/rt2x00/rt2800.h
@@ -102,6 +102,8 @@
102#define BBP_SIZE 0x00ff 102#define BBP_SIZE 0x00ff
103#define RF_BASE 0x0004 103#define RF_BASE 0x0004
104#define RF_SIZE 0x0010 104#define RF_SIZE 0x0010
105#define RFCSR_BASE 0x0000
106#define RFCSR_SIZE 0x0040
105 107
106/* 108/*
107 * Number of TX queues. 109 * Number of TX queues.
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 1cd16b416024..dfc90d34be6d 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -836,6 +836,13 @@ const struct rt2x00debug rt2800_rt2x00debug = {
836 .word_size = sizeof(u32), 836 .word_size = sizeof(u32),
837 .word_count = RF_SIZE / sizeof(u32), 837 .word_count = RF_SIZE / sizeof(u32),
838 }, 838 },
839 .rfcsr = {
840 .read = rt2800_rfcsr_read,
841 .write = rt2800_rfcsr_write,
842 .word_base = RFCSR_BASE,
843 .word_size = sizeof(u8),
844 .word_count = RFCSR_SIZE / sizeof(u8),
845 },
839}; 846};
840EXPORT_SYMBOL_GPL(rt2800_rt2x00debug); 847EXPORT_SYMBOL_GPL(rt2800_rt2x00debug);
841#endif /* CONFIG_RT2X00_LIB_DEBUGFS */ 848#endif /* CONFIG_RT2X00_LIB_DEBUGFS */
diff --git a/drivers/net/wireless/rt2x00/rt2x00debug.c b/drivers/net/wireless/rt2x00/rt2x00debug.c
index 5bb122162b5b..3bb8cafbac59 100644
--- a/drivers/net/wireless/rt2x00/rt2x00debug.c
+++ b/drivers/net/wireless/rt2x00/rt2x00debug.c
@@ -70,6 +70,7 @@ struct rt2x00debug_intf {
70 * - eeprom offset/value files 70 * - eeprom offset/value files
71 * - bbp offset/value files 71 * - bbp offset/value files
72 * - rf offset/value files 72 * - rf offset/value files
73 * - rfcsr offset/value files
73 * - queue folder 74 * - queue folder
74 * - frame dump file 75 * - frame dump file
75 * - queue stats file 76 * - queue stats file
@@ -89,6 +90,8 @@ struct rt2x00debug_intf {
89 struct dentry *bbp_val_entry; 90 struct dentry *bbp_val_entry;
90 struct dentry *rf_off_entry; 91 struct dentry *rf_off_entry;
91 struct dentry *rf_val_entry; 92 struct dentry *rf_val_entry;
93 struct dentry *rfcsr_off_entry;
94 struct dentry *rfcsr_val_entry;
92 struct dentry *queue_folder; 95 struct dentry *queue_folder;
93 struct dentry *queue_frame_dump_entry; 96 struct dentry *queue_frame_dump_entry;
94 struct dentry *queue_stats_entry; 97 struct dentry *queue_stats_entry;
@@ -131,6 +134,7 @@ struct rt2x00debug_intf {
131 unsigned int offset_eeprom; 134 unsigned int offset_eeprom;
132 unsigned int offset_bbp; 135 unsigned int offset_bbp;
133 unsigned int offset_rf; 136 unsigned int offset_rf;
137 unsigned int offset_rfcsr;
134}; 138};
135 139
136void rt2x00debug_update_crypto(struct rt2x00_dev *rt2x00dev, 140void rt2x00debug_update_crypto(struct rt2x00_dev *rt2x00dev,
@@ -525,6 +529,7 @@ RT2X00DEBUGFS_OPS(csr, "0x%.8x\n", u32);
525RT2X00DEBUGFS_OPS(eeprom, "0x%.4x\n", u16); 529RT2X00DEBUGFS_OPS(eeprom, "0x%.4x\n", u16);
526RT2X00DEBUGFS_OPS(bbp, "0x%.2x\n", u8); 530RT2X00DEBUGFS_OPS(bbp, "0x%.2x\n", u8);
527RT2X00DEBUGFS_OPS(rf, "0x%.8x\n", u32); 531RT2X00DEBUGFS_OPS(rf, "0x%.8x\n", u32);
532RT2X00DEBUGFS_OPS(rfcsr, "0x%.2x\n", u8);
528 533
529static ssize_t rt2x00debug_read_dev_flags(struct file *file, 534static ssize_t rt2x00debug_read_dev_flags(struct file *file,
530 char __user *buf, 535 char __user *buf,
@@ -614,7 +619,7 @@ static struct dentry *rt2x00debug_create_file_chipset(const char *name,
614 const struct rt2x00debug *debug = intf->debug; 619 const struct rt2x00debug *debug = intf->debug;
615 char *data; 620 char *data;
616 621
617 data = kzalloc(8 * MAX_LINE_LENGTH, GFP_KERNEL); 622 data = kzalloc(9 * MAX_LINE_LENGTH, GFP_KERNEL);
618 if (!data) 623 if (!data)
619 return NULL; 624 return NULL;
620 625
@@ -637,6 +642,7 @@ static struct dentry *rt2x00debug_create_file_chipset(const char *name,
637 RT2X00DEBUGFS_SPRINTF_REGISTER(eeprom); 642 RT2X00DEBUGFS_SPRINTF_REGISTER(eeprom);
638 RT2X00DEBUGFS_SPRINTF_REGISTER(bbp); 643 RT2X00DEBUGFS_SPRINTF_REGISTER(bbp);
639 RT2X00DEBUGFS_SPRINTF_REGISTER(rf); 644 RT2X00DEBUGFS_SPRINTF_REGISTER(rf);
645 RT2X00DEBUGFS_SPRINTF_REGISTER(rfcsr);
640#undef RT2X00DEBUGFS_SPRINTF_REGISTER 646#undef RT2X00DEBUGFS_SPRINTF_REGISTER
641 647
642 blob->size = strlen(blob->data); 648 blob->size = strlen(blob->data);
@@ -720,6 +726,7 @@ void rt2x00debug_register(struct rt2x00_dev *rt2x00dev)
720 RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, eeprom); 726 RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, eeprom);
721 RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, bbp); 727 RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, bbp);
722 RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, rf); 728 RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, rf);
729 RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, rfcsr);
723 730
724#undef RT2X00DEBUGFS_CREATE_REGISTER_ENTRY 731#undef RT2X00DEBUGFS_CREATE_REGISTER_ENTRY
725 732
@@ -771,6 +778,8 @@ void rt2x00debug_deregister(struct rt2x00_dev *rt2x00dev)
771 debugfs_remove(intf->queue_stats_entry); 778 debugfs_remove(intf->queue_stats_entry);
772 debugfs_remove(intf->queue_frame_dump_entry); 779 debugfs_remove(intf->queue_frame_dump_entry);
773 debugfs_remove(intf->queue_folder); 780 debugfs_remove(intf->queue_folder);
781 debugfs_remove(intf->rfcsr_val_entry);
782 debugfs_remove(intf->rfcsr_off_entry);
774 debugfs_remove(intf->rf_val_entry); 783 debugfs_remove(intf->rf_val_entry);
775 debugfs_remove(intf->rf_off_entry); 784 debugfs_remove(intf->rf_off_entry);
776 debugfs_remove(intf->bbp_val_entry); 785 debugfs_remove(intf->bbp_val_entry);
diff --git a/drivers/net/wireless/rt2x00/rt2x00debug.h b/drivers/net/wireless/rt2x00/rt2x00debug.h
index fa11409cb5c6..e11d39bdfef7 100644
--- a/drivers/net/wireless/rt2x00/rt2x00debug.h
+++ b/drivers/net/wireless/rt2x00/rt2x00debug.h
@@ -65,6 +65,7 @@ struct rt2x00debug {
65 RT2X00DEBUGFS_REGISTER_ENTRY(eeprom, u16); 65 RT2X00DEBUGFS_REGISTER_ENTRY(eeprom, u16);
66 RT2X00DEBUGFS_REGISTER_ENTRY(bbp, u8); 66 RT2X00DEBUGFS_REGISTER_ENTRY(bbp, u8);
67 RT2X00DEBUGFS_REGISTER_ENTRY(rf, u32); 67 RT2X00DEBUGFS_REGISTER_ENTRY(rf, u32);
68 RT2X00DEBUGFS_REGISTER_ENTRY(rfcsr, u8);
68}; 69};
69 70
70#endif /* RT2X00DEBUG_H */ 71#endif /* RT2X00DEBUG_H */