ip17xx: Avoid auto-negotiation
authorGabor Juhos <juhosg@openwrt.org>
Tue, 8 Jun 2010 20:18:47 +0000 (20:18 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Tue, 8 Jun 2010 20:18:47 +0000 (20:18 +0000)
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>
SVN-Revision: 21720

target/linux/generic-2.6/files/drivers/net/phy/ip175c.c

index ede5d513415ffa873c0d1db9e6cb68e45ee692a3..ef4b4d909271d05159b596f5b79b3a48e4882203 100644 (file)
@@ -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;
 }