From: Felix Fietkau Date: Sun, 15 Jan 2006 16:18:50 +0000 (+0000) Subject: sync kmod-switch with whiterussian X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=372988515c3012214b26fe5bde9893cfd658894b;p=openwrt%2Fstaging%2Flinusw.git sync kmod-switch with whiterussian SVN-Revision: 2989 --- diff --git a/openwrt/target/linux/package/switch/src/switch-adm.c b/openwrt/target/linux/package/switch/src/switch-adm.c index 2ce87e777f..919d685cbd 100644 --- a/openwrt/target/linux/package/switch/src/switch-adm.c +++ b/openwrt/target/linux/package/switch/src/switch-adm.c @@ -413,6 +413,7 @@ static int handle_vlan_enable_write(void *driver, char *buf, int nr) static int handle_reset(void *driver, char *buf, int nr) { int i; + u32 cfg; /* * Reset sequence: RC high->low(100ms)->high(30ms) @@ -438,14 +439,15 @@ static int handle_reset(void *driver, char *buf, int nr) udelay(1000); /* Leave RC high and disable GPIO outputs */ adm_disout((__u8)(eecs | eesk | eedi)); + } - /* set up initial configuration for ports */ - for (i = 0; i <= 5; i++) { - int cfg = 0x8000 | /* Auto MDIX */ - (((i == 5) ? 1 : 0) << 4) | /* Tagging */ - 0xf; /* full duplex, 100Mbps, auto neg, flow ctrl */ - adm_wreg(port_conf[i], cfg); - } + + /* set up initial configuration for cpu port */ + cfg = (0x8000 | /* Auto MDIX */ + (0xf << 10) | /* PVID */ + (1 << 4) | /* Tagging */ + 0xf); /* full duplex, 100Mbps, auto neg, flow ctrl */ + adm_wreg(port_conf[5], cfg); /* vlan mode select register (0x11): vlan on, mac clone */ adm_wreg(0x11, 0xff30); @@ -490,13 +492,12 @@ static int detect_adm() eedi = getgpiopin("adm_eedi", 4); eerc = getgpiopin("adm_rc", 0); - } else if ((strcmp(nvram_get("boardtype"), "bcm94710dev") == 0) && - (strncmp(nvram_get("boardnum"), "42", 2) == 0)) { + } else if ((strcmp(nvram_get("boardtype") ?: "", "bcm94710dev") == 0) && + (strncmp(nvram_get("boardnum") ?: "", "42", 2) == 0)) { /* WRT54G v1.1 hack */ eecs = 2; eesk = 3; eedi = 5; - eerc = 6; ret = 1; } else