Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=643b252123fab1a524449be3b79937f17e06a5ac
Commit:     643b252123fab1a524449be3b79937f17e06a5ac
Parent:     066cb637b1b562bebd09d237bfaaca6724f247e5
Author:     Ivo van Doorn <[EMAIL PROTECTED]>
AuthorDate: Tue Sep 25 20:13:51 2007 +0200
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Oct 10 16:53:04 2007 -0700

    rt2x00: Add rt2x00dev->flags to debugfs
    
    Loosely based on the patch by Matthijs Kooijman,
    this will add the dev_flags entry into debugfs which
    will display rt2x00dev->flags.
    This will allow easier debugging of flag handling.
    
    Signed-off-by: Ivo van Doorn <[EMAIL PROTECTED]>
    Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/rt2x00/rt2x00debug.c |   37 +++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00debug.c 
b/drivers/net/wireless/rt2x00/rt2x00debug.c
index 4d2aaec..9275d6f 100644
--- a/drivers/net/wireless/rt2x00/rt2x00debug.c
+++ b/drivers/net/wireless/rt2x00/rt2x00debug.c
@@ -57,6 +57,7 @@ struct rt2x00debug_intf {
         * - driver folder
         * - driver file
         * - chipset file
+        * - device flags file
         * - register offset/value files
         * - eeprom offset/value files
         * - bbp offset/value files
@@ -65,6 +66,7 @@ struct rt2x00debug_intf {
        struct dentry *driver_folder;
        struct dentry *driver_entry;
        struct dentry *chipset_entry;
+       struct dentry *dev_flags;
        struct dentry *csr_off_entry;
        struct dentry *csr_val_entry;
        struct dentry *eeprom_off_entry;
@@ -193,6 +195,34 @@ RT2X00DEBUGFS_OPS(eeprom, "0x%.4x\n", u16);
 RT2X00DEBUGFS_OPS(bbp, "0x%.2x\n", u8);
 RT2X00DEBUGFS_OPS(rf, "0x%.8x\n", u32);
 
+static ssize_t rt2x00debug_read_dev_flags(struct file *file,
+                                         char __user *buf,
+                                         size_t length,
+                                         loff_t *offset)
+{
+       struct rt2x00debug_intf *intf = file->private_data;
+       char line[16];
+       size_t size;
+
+       if (*offset)
+               return 0;
+
+       size = sprintf(line, "0x%.8x\n", (unsigned int)intf->rt2x00dev->flags);
+
+       if (copy_to_user(buf, line, size))
+               return -EFAULT;
+
+       *offset += size;
+       return size;
+}
+
+static const struct file_operations rt2x00debug_fop_dev_flags = {
+       .owner          = THIS_MODULE,
+       .read           = rt2x00debug_read_dev_flags,
+       .open           = rt2x00debug_file_open,
+       .release        = rt2x00debug_file_release,
+};
+
 static struct dentry *rt2x00debug_create_file_driver(const char *name,
                                                     struct rt2x00debug_intf
                                                     *intf,
@@ -270,6 +300,12 @@ void rt2x00debug_register(struct rt2x00_dev *rt2x00dev)
        if (IS_ERR(intf->chipset_entry))
                goto exit;
 
+       intf->dev_flags = debugfs_create_file("dev_flags", S_IRUGO,
+                                             intf->driver_folder, intf,
+                                             &rt2x00debug_fop_dev_flags);
+       if (IS_ERR(intf->dev_flags))
+               goto exit;
+
 #define RT2X00DEBUGFS_CREATE_ENTRY(__intf, __name)             \
 ({                                                             \
        (__intf)->__name##_off_entry =                          \
@@ -320,6 +356,7 @@ void rt2x00debug_deregister(struct rt2x00_dev *rt2x00dev)
        debugfs_remove(intf->eeprom_off_entry);
        debugfs_remove(intf->csr_val_entry);
        debugfs_remove(intf->csr_off_entry);
+       debugfs_remove(intf->dev_flags);
        debugfs_remove(intf->chipset_entry);
        debugfs_remove(intf->driver_entry);
        debugfs_remove(intf->driver_folder);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to