diff options
author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-07-15 13:05:36 +0000 |
---|---|---|
committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-07-15 13:05:36 +0000 |
commit | 5476411f3d3f5844be35a46de6a3f5559564279f (patch) | |
tree | ab69e7cf975294a6b3e660ce3af1ce0571346e80 /target/linux/generic/files/drivers/net | |
parent | a072aff468123d37b3a0a178b0557ba9b070e858 (diff) |
generic: rtl8366: add common rtl8366_sw_get_port_mib function
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22200 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic/files/drivers/net')
4 files changed, 39 insertions, 68 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 a596c311c..a45c844ca 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c @@ -754,6 +754,40 @@ int rtl8366_sw_set_port_pvid(struct switch_dev *dev, int port, int val) } EXPORT_SYMBOL_GPL(rtl8366_sw_set_port_pvid); +int rtl8366_sw_get_port_mib(struct switch_dev *dev, + const struct switch_attr *attr, + struct switch_val *val) +{ + struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); + int i, len = 0; + unsigned long long counter = 0; + char *buf = smi->buf; + + if (val->port_vlan >= smi->num_ports) + return -EINVAL; + + len += snprintf(buf + len, sizeof(smi->buf) - len, + "Port %d MIB counters\n", + val->port_vlan); + + for (i = 0; i < smi->num_mib_counters; ++i) { + len += snprintf(buf + len, sizeof(smi->buf) - len, + "%-36s: ", smi->mib_counters[i].name); + if (!smi->ops->get_mib_counter(smi, i, val->port_vlan, + &counter)) + len += snprintf(buf + len, sizeof(smi->buf) - len, + "%llu\n", counter); + else + len += snprintf(buf + len, sizeof(smi->buf) - len, + "%s\n", "error"); + } + + val->value.s = buf; + val->len = len; + return 0; +} +EXPORT_SYMBOL_GPL(rtl8366_sw_get_port_mib); + struct rtl8366_smi *rtl8366_smi_alloc(struct device *parent) { struct rtl8366_smi *smi; diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h index d27d94768..2e8f9298d 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h +++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h @@ -110,5 +110,8 @@ static inline struct rtl8366_smi *sw_to_rtl8366_smi(struct switch_dev *sw) int rtl8366_sw_get_port_pvid(struct switch_dev *dev, int port, int *val); int rtl8366_sw_set_port_pvid(struct switch_dev *dev, int port, int val); +int rtl8366_sw_get_port_mib(struct switch_dev *dev, + const struct switch_attr *attr, + struct switch_val *val); #endif /* _RTL8366_SMI_H */ diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c index d4fa74a86..b6d3f9805 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c @@ -792,39 +792,6 @@ static int rtl8366rb_sw_reset_port_mibs(struct switch_dev *dev, RTL8366RB_MIB_CTRL_PORT_RESET(val->port_vlan)); } -static int rtl8366rb_sw_get_port_mib(struct switch_dev *dev, - const struct switch_attr *attr, - struct switch_val *val) -{ - struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); - int i, len = 0; - unsigned long long counter = 0; - char *buf = smi->buf; - - if (val->port_vlan >= smi->num_ports) - return -EINVAL; - - len += snprintf(buf + len, sizeof(smi->buf) - len, - "Port %d MIB counters\n", - val->port_vlan); - - for (i = 0; i < smi->num_mib_counters; ++i) { - len += snprintf(buf + len, sizeof(smi->buf) - len, - "%-36s: ", smi->mib_counters[i].name); - if (!smi->ops->get_mib_counter(smi, i, val->port_vlan, - &counter)) - len += snprintf(buf + len, sizeof(smi->buf) - len, - "%llu\n", counter); - else - len += snprintf(buf + len, sizeof(smi->buf) - len, - "%s\n", "error"); - } - - val->value.s = buf; - val->len = len; - return 0; -} - static int rtl8366rb_sw_get_vlan_ports(struct switch_dev *dev, struct switch_val *val) { @@ -944,7 +911,7 @@ static struct switch_attr rtl8366rb_port[] = { .description = "Get MIB counters for port", .max = 33, .set = NULL, - .get = rtl8366rb_sw_get_port_mib, + .get = rtl8366_sw_get_port_mib, }, { .type = SWITCH_TYPE_INT, .name = "led", diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366s.c b/target/linux/generic/files/drivers/net/phy/rtl8366s.c index b603c2336..9936b4538 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366s.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366s.c @@ -819,39 +819,6 @@ static int rtl8366s_sw_reset_port_mibs(struct switch_dev *dev, 0, (1 << (val->port_vlan + 3))); } -static int rtl8366s_sw_get_port_mib(struct switch_dev *dev, - const struct switch_attr *attr, - struct switch_val *val) -{ - struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev); - int i, len = 0; - unsigned long long counter = 0; - char *buf = smi->buf; - - if (val->port_vlan >= smi->num_ports) - return -EINVAL; - - len += snprintf(buf + len, sizeof(smi->buf) - len, - "Port %d MIB counters\n", - val->port_vlan); - - for (i = 0; i < smi->num_mib_counters; ++i) { - len += snprintf(buf + len, sizeof(smi->buf) - len, - "%-36s: ", smi->mib_counters[i].name); - if (!smi->ops->get_mib_counter(smi, i, val->port_vlan, - &counter)) - len += snprintf(buf + len, sizeof(smi->buf) - len, - "%llu\n", counter); - else - len += snprintf(buf + len, sizeof(smi->buf) - len, - "%s\n", "error"); - } - - val->value.s = buf; - val->len = len; - return 0; -} - static int rtl8366s_sw_get_vlan_ports(struct switch_dev *dev, struct switch_val *val) { @@ -971,7 +938,7 @@ static struct switch_attr rtl8366s_port[] = { .description = "Get MIB counters for port", .max = 33, .set = NULL, - .get = rtl8366s_sw_get_port_mib, + .get = rtl8366_sw_get_port_mib, }, { .type = SWITCH_TYPE_INT, .name = "led", |