Ignore:
Timestamp:
2010-07-01T20:08:52+02:00 (6 years ago)
Author:
juhosg
Message:

backfire: generic: rtl8366: add common read_debugfs_mibs function (backport of 21984)

File:
1 edited

Legend:

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

    r22027 r22030  
    583583} 
    584584 
     585static ssize_t rtl8366_read_debugfs_mibs(struct file *file, 
     586                                         char __user *user_buf, 
     587                                         size_t count, loff_t *ppos) 
     588{ 
     589        struct rtl8366_smi *smi = file->private_data; 
     590        int i, j, len = 0; 
     591        char *buf = smi->buf; 
     592 
     593        len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s", 
     594                        "Counter"); 
     595 
     596        for (i = 0; i < smi->num_ports; i++) { 
     597                char port_buf[10]; 
     598 
     599                snprintf(port_buf, sizeof(port_buf), "Port %d", i); 
     600                len += snprintf(buf + len, sizeof(smi->buf) - len, " %12s", 
     601                                port_buf); 
     602        } 
     603        len += snprintf(buf + len, sizeof(smi->buf) - len, "\n"); 
     604 
     605        for (i = 0; i < smi->num_mib_counters; i++) { 
     606                len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s ", 
     607                                smi->mib_counters[i].name); 
     608                for (j = 0; j < smi->num_ports; j++) { 
     609                        unsigned long long counter = 0; 
     610 
     611                        if (!smi->ops->get_mib_counter(smi, i, j, &counter)) 
     612                                len += snprintf(buf + len, 
     613                                                sizeof(smi->buf) - len, 
     614                                                "%12llu ", counter); 
     615                        else 
     616                                len += snprintf(buf + len, 
     617                                                sizeof(smi->buf) - len, 
     618                                                "%12s ", "error"); 
     619                } 
     620                len += snprintf(buf + len, sizeof(smi->buf) - len, "\n"); 
     621        } 
     622 
     623        return simple_read_from_buffer(user_buf, count, ppos, buf, len); 
     624} 
     625 
    585626static const struct file_operations fops_rtl8366_regs = { 
    586627        .read   = rtl8366_read_debugfs_reg, 
     
    596637}; 
    597638 
     639static const struct file_operations fops_rtl8366_mibs = { 
     640        .read = rtl8366_read_debugfs_mibs, 
     641        .open = rtl8366_debugfs_open, 
     642        .owner = THIS_MODULE 
     643}; 
     644 
    598645static void rtl8366_debugfs_init(struct rtl8366_smi *smi) 
    599646{ 
     
    629676        node = debugfs_create_file("vlan_mc", S_IRUSR, root, smi, 
    630677                                   &fops_rtl8366_vlan_mc); 
     678        if (!node) { 
     679                dev_err(smi->parent, "Creating debugfs file '%s' failed\n", 
     680                        "vlan_mc"); 
     681                return; 
     682        } 
     683 
     684        node = debugfs_create_file("mibs", S_IRUSR, smi->debugfs_root, smi, 
     685                                   &fops_rtl8366_mibs); 
    631686        if (!node) 
    632687                dev_err(smi->parent, "Creating debugfs file '%s' failed\n", 
    633                         "vlan_mc"); 
     688                        "mibs"); 
    634689} 
    635690 
Note: See TracChangeset for help on using the changeset viewer.