aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic-2.6
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2010-06-08 20:18:47 +0000
committerGabor Juhos <juhosg@openwrt.org>2010-06-08 20:18:47 +0000
commit6ae9f46b7fd6c19699e169eba0b3969e8c6723c0 (patch)
tree92a5d2c7ad709d6370640ea342564fa8412aae80 /target/linux/generic-2.6
parent50dc4ef20ab79b1bb587769f0d15b5e6bce61a03 (diff)
downloadupstream-6ae9f46b7fd6c19699e169eba0b3969e8c6723c0.tar.gz
upstream-6ae9f46b7fd6c19699e169eba0b3969e8c6723c0.tar.bz2
upstream-6ae9f46b7fd6c19699e169eba0b3969e8c6723c0.zip
ip17xx: Avoid auto-negotiation
Let ip175c_config_init() initialize the link state of the PHY and set the PHY state machine directly to the PHY_RUNNING state in order to skip the auto-negotiation phase. Previously, auto-negotiation on PHY 0 (switch port 0) influenced the ethernet driver connected to the CPU port, causing all sorts of weird effects. Signed-off-by: Martin Mares <mj@ucw.cz> Signed-off-by: Patrick Horn <patrick.horn@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21720 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic-2.6')
-rw-r--r--target/linux/generic-2.6/files/drivers/net/phy/ip175c.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/target/linux/generic-2.6/files/drivers/net/phy/ip175c.c b/target/linux/generic-2.6/files/drivers/net/phy/ip175c.c
index ede5d51341..ef4b4d9092 100644
--- a/target/linux/generic-2.6/files/drivers/net/phy/ip175c.c
+++ b/target/linux/generic-2.6/files/drivers/net/phy/ip175c.c
@@ -1344,6 +1344,11 @@ static int ip175c_config_init(struct phy_device *pdev)
ip175c_reset(&state->dev);
state->registered = true;
+
+ pdev->state = PHY_RUNNING;
+ pdev->speed = SPEED_100;
+ pdev->duplex = DUPLEX_FULL;
+ pdev->pause = pdev->asym_pause = 0;
netif_carrier_on(pdev->attached_dev);
return 0;
@@ -1365,9 +1370,6 @@ static int ip175c_config_aneg(struct phy_device *pdev)
static int ip175c_read_status(struct phy_device *pdev)
{
- pdev->speed = SPEED_100;
- pdev->duplex = DUPLEX_FULL;
- pdev->pause = pdev->asym_pause = 0;
return 0;
}