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

backfire: generic: rtl8366: move common debugfs code to rtl8366_smi.c (backport of 21981)

File:
1 edited

Legend:

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

    r22026 r22027  
    171171        struct rtl8366_smi      smi; 
    172172        struct switch_dev       dev; 
    173 #ifdef CONFIG_RTL8366S_PHY_DEBUG_FS 
    174         struct dentry           *debugfs_root; 
    175 #endif 
    176173}; 
    177174 
     
    196193        u16     member:6; 
    197194}; 
    198  
    199 #ifdef CONFIG_RTL8366S_PHY_DEBUG_FS 
    200 u16 g_dbg_reg; 
    201 #endif 
    202195 
    203196struct mib_counter { 
     
    675668 
    676669#ifdef CONFIG_RTL8366S_PHY_DEBUG_FS 
    677 static int rtl8366s_debugfs_open(struct inode *inode, struct file *file) 
    678 { 
    679         file->private_data = inode->i_private; 
    680         return 0; 
    681 } 
    682  
    683670static ssize_t rtl8366s_read_debugfs_mibs(struct file *file, 
    684671                                          char __user *user_buf, 
    685672                                          size_t count, loff_t *ppos) 
    686673{ 
    687         struct rtl8366s *rtl = (struct rtl8366s *)file->private_data; 
    688         struct rtl8366_smi *smi = &rtl->smi; 
     674        struct rtl8366_smi *smi = (struct rtl8366_smi *)file->private_data; 
    689675        int i, j, len = 0; 
    690676        char *buf = smi->buf; 
     
    717703} 
    718704 
    719 static ssize_t rtl8366s_read_debugfs_vlan_mc(struct file *file, 
    720                                              char __user *user_buf, 
    721                                              size_t count, loff_t *ppos) 
    722 { 
    723         struct rtl8366s *rtl = (struct rtl8366s *)file->private_data; 
    724         struct rtl8366_smi *smi = &rtl->smi; 
    725         int i, len = 0; 
    726         char *buf = smi->buf; 
    727  
    728         len += snprintf(buf + len, sizeof(smi->buf) - len, 
    729                         "%2s %6s %4s %6s %6s %3s\n", 
    730                         "id", "vid","prio", "member", "untag", "fid"); 
    731  
    732         for (i = 0; i < RTL8366S_NUM_VLANS; ++i) { 
    733                 struct rtl8366_vlan_mc vlanmc; 
    734  
    735                 rtl8366s_get_vlan_mc(smi, i, &vlanmc); 
    736  
    737                 len += snprintf(buf + len, sizeof(smi->buf) - len, 
    738                                 "%2d %6d %4d 0x%04x 0x%04x %3d\n", 
    739                                 i, vlanmc.vid, vlanmc.priority, 
    740                                 vlanmc.member, vlanmc.untag, vlanmc.fid); 
    741         } 
    742  
    743         return simple_read_from_buffer(user_buf, count, ppos, buf, len); 
    744 } 
    745  
    746 static ssize_t rtl8366s_read_debugfs_reg(struct file *file, 
    747                                          char __user *user_buf, 
    748                                          size_t count, loff_t *ppos) 
    749 { 
    750         struct rtl8366s *rtl = (struct rtl8366s *)file->private_data; 
    751         struct rtl8366_smi *smi = &rtl->smi; 
    752         u32 t, reg = g_dbg_reg; 
    753         int err, len = 0; 
    754         char *buf = smi->buf; 
    755  
    756         memset(buf, '\0', sizeof(smi->buf)); 
    757  
    758         err = rtl8366_smi_read_reg(smi, reg, &t); 
    759         if (err) { 
    760                 len += snprintf(buf, sizeof(smi->buf), 
    761                                 "Read failed (reg: 0x%04x)\n", reg); 
    762                 return simple_read_from_buffer(user_buf, count, ppos, buf, len); 
    763         } 
    764  
    765         len += snprintf(buf, sizeof(smi->buf), "reg = 0x%04x, val = 0x%04x\n", 
    766                         reg, t); 
    767  
    768         return simple_read_from_buffer(user_buf, count, ppos, buf, len); 
    769 } 
    770  
    771 static ssize_t rtl8366s_write_debugfs_reg(struct file *file, 
    772                                           const char __user *user_buf, 
    773                                           size_t count, loff_t *ppos) 
    774 { 
    775         struct rtl8366s *rtl = (struct rtl8366s *)file->private_data; 
    776         struct rtl8366_smi *smi = &rtl->smi; 
    777         unsigned long data; 
    778         u32 reg = g_dbg_reg; 
    779         int err; 
    780         size_t len; 
    781         char *buf = smi->buf; 
    782  
    783         len = min(count, sizeof(smi->buf) - 1); 
    784         if (copy_from_user(buf, user_buf, len)) { 
    785                 dev_err(rtl->parent, "copy from user failed\n"); 
    786                 return -EFAULT; 
    787         } 
    788  
    789         buf[len] = '\0'; 
    790         if (len > 0 && buf[len - 1] == '\n') 
    791                 buf[len - 1] = '\0'; 
    792  
    793  
    794         if (strict_strtoul(buf, 16, &data)) { 
    795                 dev_err(rtl->parent, "Invalid reg value %s\n", buf); 
    796         } else { 
    797                 err = rtl8366_smi_write_reg(smi, reg, data); 
    798                 if (err) { 
    799                         dev_err(rtl->parent, 
    800                                 "writing reg 0x%04x val 0x%04lx failed\n", 
    801                                 reg, data); 
    802                 } 
    803         } 
    804  
    805         return count; 
    806 } 
    807  
    808 static const struct file_operations fops_rtl8366s_regs = { 
    809         .read = rtl8366s_read_debugfs_reg, 
    810         .write = rtl8366s_write_debugfs_reg, 
    811         .open = rtl8366s_debugfs_open, 
     705static const struct file_operations fops_rtl8366s_mibs = { 
     706        .read = rtl8366s_read_debugfs_mibs, 
     707        .open = rtl8366_debugfs_open, 
    812708        .owner = THIS_MODULE 
    813709}; 
    814710 
    815 static const struct file_operations fops_rtl8366s_vlan_mc = { 
    816         .read = rtl8366s_read_debugfs_vlan_mc, 
    817         .open = rtl8366s_debugfs_open, 
    818         .owner = THIS_MODULE 
    819 }; 
    820  
    821 static const struct file_operations fops_rtl8366s_mibs = { 
    822         .read = rtl8366s_read_debugfs_mibs, 
    823         .open = rtl8366s_debugfs_open, 
    824         .owner = THIS_MODULE 
    825 }; 
    826  
    827 static void rtl8366s_debugfs_init(struct rtl8366s *rtl) 
     711static void rtl8366s_debugfs_init(struct rtl8366_smi *smi) 
    828712{ 
    829713        struct dentry *node; 
    830         struct dentry *root; 
    831  
    832         if (!rtl->debugfs_root) 
    833                 rtl->debugfs_root = debugfs_create_dir("rtl8366s", NULL); 
    834  
    835         if (!rtl->debugfs_root) { 
    836                 dev_err(rtl->parent, "Unable to create debugfs dir\n"); 
     714 
     715        if (!smi->debugfs_root) 
    837716                return; 
    838         } 
    839         root = rtl->debugfs_root; 
    840  
    841         node = debugfs_create_x16("reg", S_IRUGO | S_IWUSR, root, &g_dbg_reg); 
    842         if (!node) { 
    843                 dev_err(rtl->parent, "Creating debugfs file '%s' failed\n", 
    844                         "reg"); 
    845                 return; 
    846         } 
    847  
    848         node = debugfs_create_file("val", S_IRUGO | S_IWUSR, root, rtl, 
    849                                    &fops_rtl8366s_regs); 
    850         if (!node) { 
    851                 dev_err(rtl->parent, "Creating debugfs file '%s' failed\n", 
    852                         "val"); 
    853                 return; 
    854         } 
    855  
    856         node = debugfs_create_file("vlan_mc", S_IRUSR, root, rtl, 
    857                                    &fops_rtl8366s_vlan_mc); 
    858         if (!node) { 
    859                 dev_err(rtl->parent, "Creating debugfs file '%s' failed\n", 
    860                         "vlan_mc"); 
    861                 return; 
    862         } 
    863  
    864         node = debugfs_create_file("mibs", S_IRUSR, root, rtl, 
     717 
     718        node = debugfs_create_file("mibs", S_IRUSR, smi->debugfs_root, smi, 
    865719                                   &fops_rtl8366s_mibs); 
    866         if (!node) { 
    867                 dev_err(rtl->parent, "Creating debugfs file '%s' failed\n", 
     720        if (!node) 
     721                dev_err(smi->parent, "Creating debugfs file '%s' failed\n", 
    868722                        "mibs"); 
    869                 return; 
    870         } 
    871 } 
    872  
    873 static void rtl8366s_debugfs_remove(struct rtl8366s *rtl) 
    874 { 
    875         if (rtl->debugfs_root) { 
    876                 debugfs_remove_recursive(rtl->debugfs_root); 
    877                 rtl->debugfs_root = NULL; 
    878         } 
    879 } 
    880  
     723} 
    881724#else 
    882 static inline void rtl8366s_debugfs_init(struct rtl8366s *rtl) {} 
    883 static inline void rtl8366s_debugfs_remove(struct rtl8366s *rtl) {} 
     725static inline void rtl8366s_debugfs_init(struct rtl8366_smi *smi) {} 
    884726#endif /* CONFIG_RTL8366S_PHY_DEBUG_FS */ 
    885727 
     
    13891231        int ret; 
    13901232 
    1391         rtl8366s_debugfs_init(rtl); 
     1233        rtl8366s_debugfs_init(smi); 
    13921234 
    13931235        ret = rtl8366s_reset_chip(smi); 
     
    15391381        if (rtl) { 
    15401382                rtl8366s_switch_cleanup(rtl); 
    1541                 rtl8366s_debugfs_remove(rtl); 
    15421383                platform_set_drvdata(pdev, NULL); 
    15431384                rtl8366_smi_cleanup(&rtl->smi); 
Note: See TracChangeset for help on using the changeset viewer.