diff options
| author | Felix Fietkau <nbd@openwrt.org> | 2006-01-14 17:49:21 +0000 |
|---|---|---|
| committer | Felix Fietkau <nbd@openwrt.org> | 2006-01-14 17:49:21 +0000 |
| commit | 000a7778974723e21b10d76aa499bd68c8df46d8 (patch) | |
| tree | 9943a4356684661db7412778148f195334a3363b /openwrt/target/linux/package/switch/src/switch-robo.c | |
| parent | 2690a24bfe34d63da6a2b5ec57d08a725228e704 (diff) | |
| download | mtk-20170518-000a7778974723e21b10d76aa499bd68c8df46d8.zip mtk-20170518-000a7778974723e21b10d76aa499bd68c8df46d8.tar.gz mtk-20170518-000a7778974723e21b10d76aa499bd68c8df46d8.tar.bz2 | |
sync kmod-switch with whiterussian
SVN-Revision: 2981
Diffstat (limited to 'openwrt/target/linux/package/switch/src/switch-robo.c')
| -rw-r--r-- | openwrt/target/linux/package/switch/src/switch-robo.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/openwrt/target/linux/package/switch/src/switch-robo.c b/openwrt/target/linux/package/switch/src/switch-robo.c index 63110d7..6af0ff7 100644 --- a/openwrt/target/linux/package/switch/src/switch-robo.c +++ b/openwrt/target/linux/package/switch/src/switch-robo.c @@ -278,8 +278,15 @@ static int handle_vlan_port_read(void *driver, char *buf, int nr) if ((val32 & (1 << 20)) /* valid */) { for (j = 0; j < 6; j++) { if (val32 & (1 << j)) { - len += sprintf(buf + len, "%d%s\t", j, - (val32 & (1 << (j + 6))) ? (j == 5 ? "u" : "") : "t"); + len += sprintf(buf + len, "%d", j); + if (val32 & (1 << (j + 6))) { + if (j == 5) buf[len++] = 'u'; + } else { + buf[len++] = 't'; + if (robo_read16(ROBO_VLAN_PAGE, ROBO_VLAN_PORT0_DEF_TAG + (j << 1)) == nr) + buf[len++] = '*'; + } + buf[len++] = '\t'; } } len += sprintf(buf + len, "\n"); @@ -291,8 +298,15 @@ static int handle_vlan_port_read(void *driver, char *buf, int nr) if ((val16 & (1 << 14)) /* valid */) { for (j = 0; j < 6; j++) { if (val16 & (1 << j)) { - len += sprintf(buf + len, "%d%s\t", j, (val16 & (1 << (j + 7))) ? - (j == 5 ? "u" : "") : "t"); + len += sprintf(buf + len, "%d", j); + if (val16 & (1 << (j + 7))) { + if (j == 5) buf[len++] = 'u'; + } else { + buf[len++] = 't'; + if (robo_read16(ROBO_VLAN_PAGE, ROBO_VLAN_PORT0_DEF_TAG + (j << 1)) == nr) + buf[len++] = '*'; + } + buf[len++] = '\t'; } } len += sprintf(buf + len, "\n"); @@ -415,7 +429,7 @@ static int __init robo_init() if (notfound) return -ENODEV; else { - switch_config main[] = { + switch_config cfg[] = { {"enable", handle_enable_read, handle_enable_write}, {"enable_vlan", handle_enable_vlan_read, handle_enable_vlan_write}, {"reset", NULL, handle_reset}, @@ -432,7 +446,7 @@ static int __init robo_init() cpuport: 5, ports: 6, vlans: 16, - driver_handlers: main, + driver_handlers: cfg, port_handlers: NULL, vlan_handlers: vlan, }; |
