aboutsummaryrefslogtreecommitdiffstats
path: root/package/switch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2013-02-13 16:03:47 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2013-02-13 16:03:47 +0000
commitb8a84038a54c86d323955f264958a5bc1cb6102f (patch)
treeabb9da65b9cfcef59e1354f4ea65b31f4c8f9970 /package/switch
parent3c51948454e18fbeada3058511a0177e261f8a81 (diff)
downloadupstream-b8a84038a54c86d323955f264958a5bc1cb6102f.tar.gz
upstream-b8a84038a54c86d323955f264958a5bc1cb6102f.tar.bz2
upstream-b8a84038a54c86d323955f264958a5bc1cb6102f.zip
switch: fix switches with more than 6 ports
This is based on a patch by jcharest and the Broadcom SDK. SVN-Revision: 35582
Diffstat (limited to 'package/switch')
-rw-r--r--package/switch/src/switch-robo.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/package/switch/src/switch-robo.c b/package/switch/src/switch-robo.c
index 0ab2f69341..0e39c8fe56 100644
--- a/package/switch/src/switch-robo.c
+++ b/package/switch/src/switch-robo.c
@@ -78,7 +78,7 @@ struct robo_switch {
int gpio_lanports_enable;
struct ifreq ifr;
struct net_device *dev;
- unsigned char port[6];
+ unsigned char port[9];
};
/* Currently we can only have one device in the system. */
@@ -308,9 +308,6 @@ static int robo_probe(char *devname)
}
robo.device = devname;
- for (i = 0; i < 5; i++)
- robo.port[i] = i;
- robo.port[5] = 8;
/* try access using MII ioctls - get phy address */
err = do_ioctl(SIOCGMIIPHY);
@@ -386,6 +383,14 @@ static int robo_probe(char *devname)
robo.is_5365 = false;
robo.gmii = robo_gmii();
+ if (robo.devid == ROBO_DEVICE_ID_5325) {
+ for (i = 0; i < 5; i++)
+ robo.port[i] = i;
+ } else {
+ for (i = 0; i < 8; i++)
+ robo.port[i] = i;
+ }
+ robo.port[i] = ROBO_IM_PORT_CTRL;
robo_switch_reset();
err = robo_switch_enable();