rt2x00: Add debugfs access for rfcsr register
[cascardo/linux.git] / drivers / net / wireless / rt2x00 / rt2x00debug.c
index 5bb1221..3bb8caf 100644 (file)
@@ -70,6 +70,7 @@ struct rt2x00debug_intf {
         *     - eeprom offset/value files
         *     - bbp offset/value files
         *     - rf offset/value files
+        *     - rfcsr offset/value files
         *   - queue folder
         *     - frame dump file
         *     - queue stats file
@@ -89,6 +90,8 @@ struct rt2x00debug_intf {
        struct dentry *bbp_val_entry;
        struct dentry *rf_off_entry;
        struct dentry *rf_val_entry;
+       struct dentry *rfcsr_off_entry;
+       struct dentry *rfcsr_val_entry;
        struct dentry *queue_folder;
        struct dentry *queue_frame_dump_entry;
        struct dentry *queue_stats_entry;
@@ -131,6 +134,7 @@ struct rt2x00debug_intf {
        unsigned int offset_eeprom;
        unsigned int offset_bbp;
        unsigned int offset_rf;
+       unsigned int offset_rfcsr;
 };
 
 void rt2x00debug_update_crypto(struct rt2x00_dev *rt2x00dev,
@@ -525,6 +529,7 @@ RT2X00DEBUGFS_OPS(csr, "0x%.8x\n", u32);
 RT2X00DEBUGFS_OPS(eeprom, "0x%.4x\n", u16);
 RT2X00DEBUGFS_OPS(bbp, "0x%.2x\n", u8);
 RT2X00DEBUGFS_OPS(rf, "0x%.8x\n", u32);
+RT2X00DEBUGFS_OPS(rfcsr, "0x%.2x\n", u8);
 
 static ssize_t rt2x00debug_read_dev_flags(struct file *file,
                                          char __user *buf,
@@ -614,7 +619,7 @@ static struct dentry *rt2x00debug_create_file_chipset(const char *name,
        const struct rt2x00debug *debug = intf->debug;
        char *data;
 
-       data = kzalloc(8 * MAX_LINE_LENGTH, GFP_KERNEL);
+       data = kzalloc(9 * MAX_LINE_LENGTH, GFP_KERNEL);
        if (!data)
                return NULL;
 
@@ -637,6 +642,7 @@ static struct dentry *rt2x00debug_create_file_chipset(const char *name,
        RT2X00DEBUGFS_SPRINTF_REGISTER(eeprom);
        RT2X00DEBUGFS_SPRINTF_REGISTER(bbp);
        RT2X00DEBUGFS_SPRINTF_REGISTER(rf);
+       RT2X00DEBUGFS_SPRINTF_REGISTER(rfcsr);
 #undef RT2X00DEBUGFS_SPRINTF_REGISTER
 
        blob->size = strlen(blob->data);
@@ -720,6 +726,7 @@ void rt2x00debug_register(struct rt2x00_dev *rt2x00dev)
        RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, eeprom);
        RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, bbp);
        RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, rf);
+       RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, rfcsr);
 
 #undef RT2X00DEBUGFS_CREATE_REGISTER_ENTRY
 
@@ -771,6 +778,8 @@ void rt2x00debug_deregister(struct rt2x00_dev *rt2x00dev)
        debugfs_remove(intf->queue_stats_entry);
        debugfs_remove(intf->queue_frame_dump_entry);
        debugfs_remove(intf->queue_folder);
+       debugfs_remove(intf->rfcsr_val_entry);
+       debugfs_remove(intf->rfcsr_off_entry);
        debugfs_remove(intf->rf_val_entry);
        debugfs_remove(intf->rf_off_entry);
        debugfs_remove(intf->bbp_val_entry);