summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-03-22 20:19:23 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-03-22 20:19:23 +0000
commitbfa8064ccdf5fb7e342e3979b2a569a6979afbc5 (patch)
tree3ea611d49e505059cf07d5db20d7cff6589d7b41
parent86883cc2e0a92d391474abd94792ee872abe80a8 (diff)
downloadmaster-31e0f0ae-bfa8064ccdf5fb7e342e3979b2a569a6979afbc5.tar.gz
master-31e0f0ae-bfa8064ccdf5fb7e342e3979b2a569a6979afbc5.tar.bz2
master-31e0f0ae-bfa8064ccdf5fb7e342e3979b2a569a6979afbc5.zip
atheros: in later kernels, vlan 0 no longer works as expected, switch to (1,2) instead of (0,1) for lan/wan
SVN-Revision: 14981
-rwxr-xr-xtarget/linux/atheros/base-files/etc/preinit.arch6
-rw-r--r--target/linux/atheros/base-files/etc/uci-defaults/network4
-rw-r--r--target/linux/generic-2.6/files/drivers/net/phy/mvswitch.c8
3 files changed, 10 insertions, 8 deletions
diff --git a/target/linux/atheros/base-files/etc/preinit.arch b/target/linux/atheros/base-files/etc/preinit.arch
index 26bbf2c520..9bda9cc75e 100755
--- a/target/linux/atheros/base-files/etc/preinit.arch
+++ b/target/linux/atheros/base-files/etc/preinit.arch
@@ -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
}
diff --git a/target/linux/atheros/base-files/etc/uci-defaults/network b/target/linux/atheros/base-files/etc/uci-defaults/network
index 63bc5416b3..fa97109404 100644
--- a/target/linux/atheros/base-files/etc/uci-defaults/network
+++ b/target/linux/atheros/base-files/etc/uci-defaults/network
@@ -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
diff --git a/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.c b/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.c
index 427bad4050..9a85411e0e 100644
--- a/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.c
+++ b/target/linux/generic-2.6/files/drivers/net/phy/mvswitch.c
@@ -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;