sync kmod-switch with whiterussian
authorFelix Fietkau <nbd@openwrt.org>
Sun, 15 Jan 2006 16:18:50 +0000 (16:18 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 15 Jan 2006 16:18:50 +0000 (16:18 +0000)
SVN-Revision: 2989

openwrt/target/linux/package/switch/src/switch-adm.c

index 2ce87e777fee15d3408a4516982110207ae51537..919d685cbdad95891168e2cc35b4cd24fd719e91 100644 (file)
@@ -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