atheros: in later kernels, vlan 0 no longer works as expected, switch to (1,2) instea...
authorFelix Fietkau <nbd@openwrt.org>
Sun, 22 Mar 2009 20:19:23 +0000 (20:19 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 22 Mar 2009 20:19:23 +0000 (20:19 +0000)
SVN-Revision: 14981

target/linux/atheros/base-files/etc/preinit.arch
target/linux/atheros/base-files/etc/uci-defaults/network
target/linux/generic-2.6/files/drivers/net/phy/mvswitch.c

index 26bbf2c..9bda9cc 100755 (executable)
@@ -4,8 +4,8 @@ grep 'Atheros AR231[567]' /proc/cpuinfo > /dev/null && {
             -e "/sys/bus/mdio_bus/drivers/Marvell 88E6060/0:10" ]; then
                vconfig set_name_type DEV_PLUS_VID_NO_PAD
                ifconfig eth0 up
-               vconfig add eth0 0
-               ifname=eth0.0
+               vconfig add eth0 1
+               ifname=eth0.1
        else
                ifname=eth0
        fi
@@ -15,7 +15,7 @@ grep 'Atheros AR231[567]' /proc/cpuinfo > /dev/null && {
        sleep 2
        if [ -e "/sys/bus/mdio_bus/drivers/Infineon ADM6996/0:00" -o \
             -e "/sys/bus/mdio_bus/drivers/Marvell 88E6060/0:10" ]; then
-               vconfig rem eth0.0
+               vconfig rem eth0.1
                ifconfig eth0 down
        fi
 }
index 63bc541..fa97109 100644 (file)
@@ -2,9 +2,9 @@
 if [ -e "/sys/bus/mdio_bus/drivers/Infineon ADM6996/0:00" -o \
      -e "/sys/bus/mdio_bus/drivers/Marvell 88E6060/0:10" ]; then
        uci batch <<EOF
-set network.lan.ifname=eth0.0
+set network.lan.ifname=eth0.1
 set network.wan=interface
-set network.wan.ifname=eth0.1
+set network.wan.ifname=eth0.2
 set network.wan.proto=dhcp
 commit network
 EOF
index 427bad4..9a85411 100644 (file)
@@ -32,7 +32,7 @@
 
 /* Undefine this to use trailer mode instead.
  * I don't know if header mode works with all chips */
-#define HEADER_MODE    1
+//#define HEADER_MODE  1
 
 MODULE_DESCRIPTION("Marvell 88E6060 Switch driver");
 MODULE_AUTHOR("Felix Fietkau");
@@ -251,7 +251,7 @@ mvswitch_config_init(struct phy_device *pdev)
 
        /* initialize default vlans */
        for (i = 0; i < MV_PORTS; i++)
-               priv->vlans[(i == MV_WANPORT ? 1 : 0)] |= (1 << i);
+               priv->vlans[(i == MV_WANPORT ? 2 : 1)] |= (1 << i);
 
        /* before entering reset, disable all ports */
        for (i = 0; i < MV_PORTS; i++)
@@ -422,7 +422,9 @@ mvswitch_fixup(struct phy_device *dev)
 {
        u16 reg;
 
-       /* look for the switch on the bus */
+       if (dev->addr != 0x10)
+               return 0;
+
        reg = dev->bus->read(dev->bus, MV_PORTREG(IDENT, 0)) & MV_IDENT_MASK;
        if (reg != MV_IDENT_VALUE)
                return 0;