From ddc2e2270b1cd5596f8c83710625685f96d93867 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Tue, 8 Dec 2009 14:06:18 +0000
Subject: [PATCH] ar71xx: make the rtl8306 switch attach to eth0 instead of
 eth1 on the wrt160nl, fixes wan port detection (#6309)

SVN-Revision: 18699
---
 target/linux/ar71xx/base-files/etc/defconfig/wrt160nl/network | 2 +-
 target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt160nl.c    | 2 +-
 target/linux/generic-2.6/files/drivers/net/phy/rtl8306.c      | 3 +++
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/target/linux/ar71xx/base-files/etc/defconfig/wrt160nl/network b/target/linux/ar71xx/base-files/etc/defconfig/wrt160nl/network
index 24fca72085..974119bd9b 100644
--- a/target/linux/ar71xx/base-files/etc/defconfig/wrt160nl/network
+++ b/target/linux/ar71xx/base-files/etc/defconfig/wrt160nl/network
@@ -15,7 +15,7 @@ config interface wan
 	option ifname	eth1
 	option proto	dhcp
 
-config switch eth1
+config switch eth0
 	option reset	1
 	option enable_vlan 1
 
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt160nl.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt160nl.c
index 0a73be112c..9f5f6f1971 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt160nl.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt160nl.c
@@ -124,7 +124,7 @@ static void __init wrt160nl_setup(void)
 	ar71xx_add_device_mdio(0x0);
 
 	ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
-	ar71xx_eth0_data.phy_mask = 0xf;
+	ar71xx_eth0_data.phy_mask = 0x01;
 	ar71xx_eth0_data.speed = SPEED_100;
 	ar71xx_eth0_data.duplex = DUPLEX_FULL;
 
diff --git a/target/linux/generic-2.6/files/drivers/net/phy/rtl8306.c b/target/linux/generic-2.6/files/drivers/net/phy/rtl8306.c
index 259ff5006f..5c8e81f79d 100644
--- a/target/linux/generic-2.6/files/drivers/net/phy/rtl8306.c
+++ b/target/linux/generic-2.6/files/drivers/net/phy/rtl8306.c
@@ -913,6 +913,9 @@ rtl8306_fixup(struct phy_device *pdev)
 	struct rtl_priv priv;
 	u16 chipid;
 
+	if (pdev->addr != 0)
+		return 0;
+
 	priv.page = -1;
 	priv.bus = pdev->bus;
 	chipid = rtl_get(&priv.dev, RTL_REG_CHIPID);
-- 
2.30.2