Changeset 24993


Ignore:
Timestamp:
2011-01-14T19:19:25+01:00 (7 years ago)
Author:
juhosg
Message:

backfire: generic: rtl8366: add debugfs file for VLAN4K table (backport of r24933)

Location:
branches/backfire/target/linux/generic-2.6/files/drivers/net/phy
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/backfire/target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c

    r24990 r24993  
    562562} 
    563563 
     564#define RTL8366_VLAN4K_PAGE_SIZE        64 
     565#define RTL8366_VLAN4K_NUM_PAGES        (4096 / RTL8366_VLAN4K_PAGE_SIZE) 
     566 
     567static ssize_t rtl8366_read_debugfs_vlan_4k(struct file *file, 
     568                                            char __user *user_buf, 
     569                                            size_t count, loff_t *ppos) 
     570{ 
     571        struct rtl8366_smi *smi = (struct rtl8366_smi *)file->private_data; 
     572        int i, len = 0; 
     573        int offset; 
     574        char *buf = smi->buf; 
     575 
     576        if (smi->dbg_vlan_4k_page >= RTL8366_VLAN4K_NUM_PAGES) { 
     577                len += snprintf(buf + len, sizeof(smi->buf) - len, 
     578                                "invalid page: %u\n", smi->dbg_vlan_4k_page); 
     579                return simple_read_from_buffer(user_buf, count, ppos, buf, len); 
     580        } 
     581 
     582        len += snprintf(buf + len, sizeof(smi->buf) - len, 
     583                        "%4s %6s %6s %3s\n", 
     584                        "vid", "member", "untag", "fid"); 
     585 
     586        offset = RTL8366_VLAN4K_PAGE_SIZE * smi->dbg_vlan_4k_page; 
     587        for (i = 0; i < RTL8366_VLAN4K_PAGE_SIZE; i++) { 
     588                struct rtl8366_vlan_4k vlan4k; 
     589 
     590                smi->ops->get_vlan_4k(smi, offset + i, &vlan4k); 
     591 
     592                len += snprintf(buf + len, sizeof(smi->buf) - len, 
     593                                "%4d 0x%04x 0x%04x %3d\n", 
     594                                vlan4k.vid, vlan4k.member, 
     595                                vlan4k.untag, vlan4k.fid); 
     596        } 
     597 
     598        return simple_read_from_buffer(user_buf, count, ppos, buf, len); 
     599} 
     600 
    564601static ssize_t rtl8366_read_debugfs_pvid(struct file *file, 
    565602                                         char __user *user_buf, 
     
    704741}; 
    705742 
     743static const struct file_operations fops_rtl8366_vlan_4k = { 
     744        .read   = rtl8366_read_debugfs_vlan_4k, 
     745        .open   = rtl8366_debugfs_open, 
     746        .owner  = THIS_MODULE 
     747}; 
     748 
    706749static const struct file_operations fops_rtl8366_pvid = { 
    707750        .read   = rtl8366_read_debugfs_pvid, 
     
    752795                dev_err(smi->parent, "Creating debugfs file '%s' failed\n", 
    753796                        "vlan_mc"); 
     797                return; 
     798        } 
     799 
     800        node = debugfs_create_u8("vlan_4k_page", S_IRUGO | S_IWUSR, root, 
     801                                  &smi->dbg_vlan_4k_page); 
     802        if (!node) { 
     803                dev_err(smi->parent, "Creating debugfs file '%s' failed\n", 
     804                        "vlan_4k_page"); 
     805                return; 
     806        } 
     807 
     808        node = debugfs_create_file("vlan_4k", S_IRUSR, root, smi, 
     809                                   &fops_rtl8366_vlan_4k); 
     810        if (!node) { 
     811                dev_err(smi->parent, "Creating debugfs file '%s' failed\n", 
     812                        "vlan_4k"); 
    754813                return; 
    755814        } 
  • branches/backfire/target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.h

    r24990 r24993  
    5353        struct dentry           *debugfs_root; 
    5454        u16                     dbg_reg; 
     55        u8                      dbg_vlan_4k_page; 
    5556#endif 
    5657}; 
Note: See TracChangeset for help on using the changeset viewer.