generic: rtl8366: standardize read_debugfs_mibs functions
SVN-Revision: 21983
This commit is contained in:
		| @@ -38,6 +38,8 @@ struct rtl8366_smi { | |||||||
| 	unsigned int		cpu_port; | 	unsigned int		cpu_port; | ||||||
| 	unsigned int		num_ports; | 	unsigned int		num_ports; | ||||||
| 	unsigned int		num_vlan_mc; | 	unsigned int		num_vlan_mc; | ||||||
|  | 	unsigned int		num_mib_counters; | ||||||
|  | 	struct rtl8366_mib_counter *mib_counters; | ||||||
|  |  | ||||||
| 	struct rtl8366_smi_ops	*ops; | 	struct rtl8366_smi_ops	*ops; | ||||||
|  |  | ||||||
| @@ -79,6 +81,8 @@ struct rtl8366_smi_ops { | |||||||
| 			       const struct rtl8366_vlan_4k *vlan4k); | 			       const struct rtl8366_vlan_4k *vlan4k); | ||||||
| 	int	(*get_mc_index)(struct rtl8366_smi *smi, int port, int *val); | 	int	(*get_mc_index)(struct rtl8366_smi *smi, int port, int *val); | ||||||
| 	int	(*set_mc_index)(struct rtl8366_smi *smi, int port, int index); | 	int	(*set_mc_index)(struct rtl8366_smi *smi, int port, int index); | ||||||
|  | 	int	(*get_mib_counter)(struct rtl8366_smi *smi, int counter, | ||||||
|  | 				   int port, unsigned long long *val); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| int rtl8366_smi_init(struct rtl8366_smi *smi); | int rtl8366_smi_init(struct rtl8366_smi *smi); | ||||||
|   | |||||||
| @@ -366,7 +366,7 @@ static int rtl8366rb_write_phy_reg(struct rtl8366_smi *smi, | |||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| static int rtl8366_get_mib_counter(struct rtl8366_smi *smi, int counter, | static int rtl8366rb_get_mib_counter(struct rtl8366_smi *smi, int counter, | ||||||
| 				     int port, unsigned long long *val) | 				     int port, unsigned long long *val) | ||||||
| { | { | ||||||
| 	int i; | 	int i; | ||||||
| @@ -680,19 +680,25 @@ static ssize_t rtl8366rb_read_debugfs_mibs(struct file *file, | |||||||
| 	int i, j, len = 0; | 	int i, j, len = 0; | ||||||
| 	char *buf = smi->buf; | 	char *buf = smi->buf; | ||||||
|  |  | ||||||
| 	len += snprintf(buf + len, sizeof(smi->buf) - len, |  | ||||||
| 			"%-36s %12s %12s %12s %12s %12s %12s\n", |  | ||||||
| 			"Counter", |  | ||||||
| 			"Port 0", "Port 1", "Port 2", |  | ||||||
| 			"Port 3", "Port 4", "Port 5"); |  | ||||||
|  |  | ||||||
| 	for (i = 0; i < ARRAY_SIZE(rtl8366rb_mib_counters); ++i) { |  | ||||||
| 	len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s", | 	len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s", | ||||||
| 				rtl8366rb_mib_counters[i].name); | 			"Counter"); | ||||||
| 		for (j = 0; j < RTL8366RB_NUM_PORTS; ++j) { |  | ||||||
|  | 	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; | 			unsigned long long counter = 0; | ||||||
|  |  | ||||||
| 			if (!rtl8366_get_mib_counter(smi, i, j, &counter)) | 			if (!smi->ops->get_mib_counter(smi, i, j, &counter)) | ||||||
| 				len += snprintf(buf + len, | 				len += snprintf(buf + len, | ||||||
| 						sizeof(smi->buf) - len, | 						sizeof(smi->buf) - len, | ||||||
| 						"%12llu ", counter); | 						"%12llu ", counter); | ||||||
| @@ -981,7 +987,7 @@ static int rtl8366rb_sw_get_port_mib(struct switch_dev *dev, | |||||||
| 	for (i = 0; i < ARRAY_SIZE(rtl8366rb_mib_counters); ++i) { | 	for (i = 0; i < ARRAY_SIZE(rtl8366rb_mib_counters); ++i) { | ||||||
| 		len += snprintf(buf + len, sizeof(smi->buf) - len, | 		len += snprintf(buf + len, sizeof(smi->buf) - len, | ||||||
| 				"%-36s: ", rtl8366rb_mib_counters[i].name); | 				"%-36s: ", rtl8366rb_mib_counters[i].name); | ||||||
| 		if (!rtl8366_get_mib_counter(smi, i, val->port_vlan, &counter)) | 		if (!rtl8366rb_get_mib_counter(smi, i, val->port_vlan, &counter)) | ||||||
| 			len += snprintf(buf + len, sizeof(smi->buf) - len, | 			len += snprintf(buf + len, sizeof(smi->buf) - len, | ||||||
| 					"%llu\n", counter); | 					"%llu\n", counter); | ||||||
| 		else | 		else | ||||||
| @@ -1289,6 +1295,7 @@ static struct rtl8366_smi_ops rtl8366rb_smi_ops = { | |||||||
| 	.set_vlan_4k	= rtl8366rb_set_vlan_4k, | 	.set_vlan_4k	= rtl8366rb_set_vlan_4k, | ||||||
| 	.get_mc_index	= rtl8366rb_get_mc_index, | 	.get_mc_index	= rtl8366rb_get_mc_index, | ||||||
| 	.set_mc_index	= rtl8366rb_set_mc_index, | 	.set_mc_index	= rtl8366rb_set_mc_index, | ||||||
|  | 	.get_mib_counter = rtl8366rb_get_mib_counter, | ||||||
| }; | }; | ||||||
|  |  | ||||||
| static int __init rtl8366rb_probe(struct platform_device *pdev) | static int __init rtl8366rb_probe(struct platform_device *pdev) | ||||||
| @@ -1327,6 +1334,8 @@ static int __init rtl8366rb_probe(struct platform_device *pdev) | |||||||
| 	smi->cpu_port = RTL8366RB_PORT_NUM_CPU; | 	smi->cpu_port = RTL8366RB_PORT_NUM_CPU; | ||||||
| 	smi->num_ports = RTL8366RB_NUM_PORTS; | 	smi->num_ports = RTL8366RB_NUM_PORTS; | ||||||
| 	smi->num_vlan_mc = RTL8366RB_NUM_VLANS; | 	smi->num_vlan_mc = RTL8366RB_NUM_VLANS; | ||||||
|  | 	smi->mib_counters = rtl8366rb_mib_counters; | ||||||
|  | 	smi->num_mib_counters = ARRAY_SIZE(rtl8366rb_mib_counters); | ||||||
|  |  | ||||||
| 	err = rtl8366_smi_init(smi); | 	err = rtl8366_smi_init(smi); | ||||||
| 	if (err) | 	if (err) | ||||||
|   | |||||||
| @@ -664,23 +664,29 @@ static ssize_t rtl8366s_read_debugfs_mibs(struct file *file, | |||||||
| 					  char __user *user_buf, | 					  char __user *user_buf, | ||||||
| 					  size_t count, loff_t *ppos) | 					  size_t count, loff_t *ppos) | ||||||
| { | { | ||||||
| 	struct rtl8366_smi *smi = (struct rtl8366_smi *)file->private_data; | 	struct rtl8366_smi *smi = file->private_data; | ||||||
| 	int i, j, len = 0; | 	int i, j, len = 0; | ||||||
| 	char *buf = smi->buf; | 	char *buf = smi->buf; | ||||||
|  |  | ||||||
| 	len += snprintf(buf + len, sizeof(smi->buf) - len, |  | ||||||
| 			"%-36s %12s %12s %12s %12s %12s %12s\n", |  | ||||||
| 			"Counter", |  | ||||||
| 			"Port 0", "Port 1", "Port 2", |  | ||||||
| 			"Port 3", "Port 4", "Port 5"); |  | ||||||
|  |  | ||||||
| 	for (i = 0; i < ARRAY_SIZE(rtl8366s_mib_counters); ++i) { |  | ||||||
| 	len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s", | 	len += snprintf(buf + len, sizeof(smi->buf) - len, "%-36s", | ||||||
| 				rtl8366s_mib_counters[i].name); | 			"Counter"); | ||||||
| 		for (j = 0; j < RTL8366S_NUM_PORTS; ++j) { |  | ||||||
|  | 	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; | 			unsigned long long counter = 0; | ||||||
|  |  | ||||||
| 			if (!rtl8366_get_mib_counter(smi, i, j, &counter)) | 			if (!smi->ops->get_mib_counter(smi, i, j, &counter)) | ||||||
| 				len += snprintf(buf + len, | 				len += snprintf(buf + len, | ||||||
| 						sizeof(smi->buf) - len, | 						sizeof(smi->buf) - len, | ||||||
| 						"%12llu ", counter); | 						"%12llu ", counter); | ||||||
| @@ -1277,6 +1283,7 @@ static struct rtl8366_smi_ops rtl8366s_smi_ops = { | |||||||
| 	.set_vlan_4k	= rtl8366s_set_vlan_4k, | 	.set_vlan_4k	= rtl8366s_set_vlan_4k, | ||||||
| 	.get_mc_index	= rtl8366s_get_mc_index, | 	.get_mc_index	= rtl8366s_get_mc_index, | ||||||
| 	.set_mc_index	= rtl8366s_set_mc_index, | 	.set_mc_index	= rtl8366s_set_mc_index, | ||||||
|  | 	.get_mib_counter = rtl8366_get_mib_counter, | ||||||
| }; | }; | ||||||
|  |  | ||||||
| static int __init rtl8366s_probe(struct platform_device *pdev) | static int __init rtl8366s_probe(struct platform_device *pdev) | ||||||
| @@ -1315,6 +1322,8 @@ static int __init rtl8366s_probe(struct platform_device *pdev) | |||||||
| 	smi->cpu_port = RTL8366S_PORT_NUM_CPU; | 	smi->cpu_port = RTL8366S_PORT_NUM_CPU; | ||||||
| 	smi->num_ports = RTL8366S_NUM_PORTS; | 	smi->num_ports = RTL8366S_NUM_PORTS; | ||||||
| 	smi->num_vlan_mc = RTL8366S_NUM_VLANS; | 	smi->num_vlan_mc = RTL8366S_NUM_VLANS; | ||||||
|  | 	smi->mib_counters = rtl8366s_mib_counters; | ||||||
|  | 	smi->num_mib_counters = ARRAY_SIZE(rtl8366s_mib_counters); | ||||||
|  |  | ||||||
| 	err = rtl8366_smi_init(smi); | 	err = rtl8366_smi_init(smi); | ||||||
| 	if (err) | 	if (err) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Gabor Juhos
					Gabor Juhos