summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openwrt/target/linux/package/switch/src/switch-adm.c21
1 files changed, 11 insertions, 10 deletions
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