diff options
author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-06-28 17:24:02 +0000 |
---|---|---|
committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-06-28 17:24:02 +0000 |
commit | d357a4cc6a67d599bab72c4cc3e8a3fe7214d5de (patch) | |
tree | d23f9273fbe8dcf159e3d28d76d9417537002954 | |
parent | aaf0b375e0c493cd0d0119fc372eb85f5ccb0002 (diff) |
generic: rtl8366: add common read_debugfs_mibs function
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21984 3c298f89-4303-0410-b956-a3cf2f4a3e73
3 files changed, 56 insertions, 144 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c index feb7d2ca94..d0b3680562 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c @@ -582,6 +582,47 @@ static ssize_t rtl8366_write_debugfs_reg(struct file *file, return count; } +static ssize_t rtl8366_read_debugfs_mibs(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct rtl8366_smi *smi = file->private_data; + int i, j, len = 0; + char *buf = smi->buf; + + len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s", + "Counter"); + + for (i = 0; i < smi->num_ports; i++) { + char port_buf[10]; + + snprintf(port_buf, sizeof(port_buf), "Port %d", i); + len += snprintf(buf + len, sizeof(smi->buf) - len, " %12s", + port_buf); + } + len += snprintf(buf + len, sizeof(smi->buf) - len, "\n"); + + for (i = 0; i < smi->num_mib_counters; i++) { + len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s ", + smi->mib_counters[i].name); + for (j = 0; j < smi->num_ports; j++) { + unsigned long long counter = 0; + + if (!smi->ops->get_mib_counter(smi, i, j, &counter)) + len += snprintf(buf + len, + sizeof(smi->buf) - len, + "%12llu ", counter); + else + len += snprintf(buf + len, + sizeof(smi->buf) - len, + "%12s ", "error"); + } + len += snprintf(buf + len, sizeof(smi->buf) - len, "\n"); + } + + return simple_read_from_buffer(user_buf, count, ppos, buf, len); +} + static const struct file_operations fops_rtl8366_regs = { .read = rtl8366_read_debugfs_reg, .write = rtl8366_write_debugfs_reg, @@ -595,6 +636,12 @@ static const struct file_operations fops_rtl8366_vlan_mc = { .owner = THIS_MODULE }; +static const struct file_operations fops_rtl8366_mibs = { + .read = rtl8366_read_debugfs_mibs, + .open = rtl8366_debugfs_open, + .owner = THIS_MODULE +}; + static void rtl8366_debugfs_init(struct rtl8366_smi *smi) { struct dentry *node; @@ -628,9 +675,17 @@ static void rtl8366_debugfs_init(struct rtl8366_smi *smi) node = debugfs_create_file("vlan_mc", S_IRUSR, root, smi, &fops_rtl8366_vlan_mc); - if (!node) + if (!node) { dev_err(smi->parent, "Creating debugfs file '%s' failed\n", "vlan_mc"); + return; + } + + node = debugfs_create_file("mibs", S_IRUSR, smi->debugfs_root, smi, + &fops_rtl8366_mibs); + if (!node) + dev_err(smi->parent, "Creating debugfs file '%s' failed\n", + "mibs"); } static void rtl8366_debugfs_remove(struct rtl8366_smi *smi) diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c index a4623f027d..4182693658 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c @@ -20,10 +20,6 @@ #include "rtl8366_smi.h" -#ifdef CONFIG_RTL8366S_PHY_DEBUG_FS -#include <linux/debugfs.h> -#endif - #define RTL8366RB_DRIVER_DESC "Realtek RTL8366RB ethernet switch driver" #define RTL8366RB_DRIVER_VER "0.2.2" @@ -671,72 +667,6 @@ static int rtl8366rb_vlan_set_4ktable(struct rtl8366_smi *smi, int enable) (enable) ? RTL8366RB_CHIP_CTRL_VLAN_4KTB : 0); } -#ifdef CONFIG_RTL8366S_PHY_DEBUG_FS -static ssize_t rtl8366rb_read_debugfs_mibs(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) -{ - struct rtl8366_smi *smi = file->private_data; - int i, j, len = 0; - char *buf = smi->buf; - - len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s", - "Counter"); - - for (i = 0; i < smi->num_ports; i++) { - char port_buf[10]; - - snprintf(port_buf, sizeof(port_buf), "Port %d", i); - len += snprintf(buf + len, sizeof(smi->buf) - len, " %12s", - port_buf); - } - len += snprintf(buf + len, sizeof(smi->buf) - len, "\n"); - - for (i = 0; i < smi->num_mib_counters; i++) { - len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s ", - smi->mib_counters[i].name); - for (j = 0; j < smi->num_ports; j++) { - unsigned long long counter = 0; - - if (!smi->ops->get_mib_counter(smi, i, j, &counter)) - len += snprintf(buf + len, - sizeof(smi->buf) - len, - "%12llu ", counter); - else - len += snprintf(buf + len, - sizeof(smi->buf) - len, - "%12s ", "error"); - } - len += snprintf(buf + len, sizeof(smi->buf) - len, "\n"); - } - - return simple_read_from_buffer(user_buf, count, ppos, buf, len); -} - -static const struct file_operations fops_rtl8366rb_mibs = { - .read = rtl8366rb_read_debugfs_mibs, - .open = rtl8366_debugfs_open, - .owner = THIS_MODULE -}; - -static void rtl8366rb_debugfs_init(struct rtl8366_smi *smi) -{ - struct dentry *node; - - if (!smi->debugfs_root) - return; - - node = debugfs_create_file("mibs", S_IRUSR, smi->debugfs_root, smi, - &fops_rtl8366rb_mibs); - if (!node) - dev_err(smi->parent, "Creating debugfs file '%s' failed\n", - "mibs"); -} - -#else -static inline void rtl8366rb_debugfs_init(struct rtl8366_smi *smi) {} -#endif /* CONFIG_RTL8366S_PHY_DEBUG_FS */ - static int rtl8366rb_sw_reset_mibs(struct switch_dev *dev, const struct switch_attr *attr, struct switch_val *val) @@ -1241,8 +1171,6 @@ static int rtl8366rb_setup(struct rtl8366rb *rtl) struct rtl8366_smi *smi = &rtl->smi; int ret; - rtl8366rb_debugfs_init(smi); - ret = rtl8366rb_reset_chip(smi); if (ret) return ret; diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366s.c b/target/linux/generic/files/drivers/net/phy/rtl8366s.c index ebba2bb67c..f0d394065c 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366s.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366s.c @@ -20,10 +20,6 @@ #include "rtl8366_smi.h" -#ifdef CONFIG_RTL8366S_PHY_DEBUG_FS -#include <linux/debugfs.h> -#endif - #define RTL8366S_DRIVER_DESC "Realtek RTL8366S ethernet switch driver" #define RTL8366S_DRIVER_VER "0.2.2" @@ -659,71 +655,6 @@ static int rtl8366s_vlan_set_4ktable(struct rtl8366_smi *smi, int enable) 1, (enable) ? 1 : 0); } -#ifdef CONFIG_RTL8366S_PHY_DEBUG_FS -static ssize_t rtl8366s_read_debugfs_mibs(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) -{ - struct rtl8366_smi *smi = file->private_data; - int i, j, len = 0; - char *buf = smi->buf; - - len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s", - "Counter"); - - for (i = 0; i < smi->num_ports; i++) { - char port_buf[10]; - - snprintf(port_buf, sizeof(port_buf), "Port %d", i); - len += snprintf(buf + len, sizeof(smi->buf) - len, " %12s", - port_buf); - } - len += snprintf(buf + len, sizeof(smi->buf) - len, "\n"); - - for (i = 0; i < smi->num_mib_counters; i++) { - len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s ", - smi->mib_counters[i].name); - for (j = 0; j < smi->num_ports; j++) { - unsigned long long counter = 0; - - if (!smi->ops->get_mib_counter(smi, i, j, &counter)) - len += snprintf(buf + len, - sizeof(smi->buf) - len, - "%12llu ", counter); - else - len += snprintf(buf + len, - sizeof(smi->buf) - len, - "%12s ", "error"); - } - len += snprintf(buf + len, sizeof(smi->buf) - len, "\n"); - } - - return simple_read_from_buffer(user_buf, count, ppos, buf, len); -} - -static const struct file_operations fops_rtl8366s_mibs = { - .read = rtl8366s_read_debugfs_mibs, - .open = rtl8366_debugfs_open, - .owner = THIS_MODULE -}; - -static void rtl8366s_debugfs_init(struct rtl8366_smi *smi) -{ - struct dentry *node; - - if (!smi->debugfs_root) - return; - - node = debugfs_create_file("mibs", S_IRUSR, smi->debugfs_root, smi, - &fops_rtl8366s_mibs); - if (!node) - dev_err(smi->parent, "Creating debugfs file '%s' failed\n", - "mibs"); -} -#else -static inline void rtl8366s_debugfs_init(struct rtl8366_smi *smi) {} -#endif /* CONFIG_RTL8366S_PHY_DEBUG_FS */ - static int rtl8366s_sw_reset_mibs(struct switch_dev *dev, const struct switch_attr *attr, struct switch_val *val) @@ -1229,8 +1160,6 @@ static int rtl8366s_setup(struct rtl8366s *rtl) struct rtl8366_smi *smi = &rtl->smi; int ret; - rtl8366s_debugfs_init(smi); - ret = rtl8366s_reset_chip(smi); if (ret) return ret; |