diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2010-06-08 20:19:14 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2010-06-08 20:19:14 +0000 |
commit | 464d38476292a38c4328c4acc520bb07c9a277ce (patch) | |
tree | c0b10f3c014dcef88e67ad8f1d961bdafa2b372e | |
parent | 94c6afe09d1e6b6dcfed35648ae18471bb3fd3cb (diff) | |
download | upstream-464d38476292a38c4328c4acc520bb07c9a277ce.tar.gz upstream-464d38476292a38c4328c4acc520bb07c9a277ce.tar.bz2 upstream-464d38476292a38c4328c4acc520bb07c9a277ce.zip |
ip17xx: fix autonegotioation issues
SVN-Revision: 21727
-rw-r--r-- | target/linux/generic-2.6/files/drivers/net/phy/ip17xx.c | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/target/linux/generic-2.6/files/drivers/net/phy/ip17xx.c b/target/linux/generic-2.6/files/drivers/net/phy/ip17xx.c index 92a5046636..262123a57f 100644 --- a/target/linux/generic-2.6/files/drivers/net/phy/ip17xx.c +++ b/target/linux/generic-2.6/files/drivers/net/phy/ip17xx.c @@ -1298,21 +1298,12 @@ static int ip17xx_config_init(struct phy_device *pdev) struct net_device *dev = pdev->attached_dev; int err; - pdev->irq = PHY_IGNORE_INTERRUPT; err = register_switch(&state->dev, dev); if (err < 0) return err; - ip17xx_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); - + ip17xx_reset(&state->dev); return 0; } @@ -1330,8 +1321,24 @@ static int ip17xx_config_aneg(struct phy_device *pdev) return 0; } +static int ip17xx_aneg_done(struct phy_device *pdev) +{ + return BMSR_ANEGCOMPLETE; +} + +static int ip17xx_update_link(struct phy_device *pdev) +{ + pdev->link = 1; + return 0; +} + static int ip17xx_read_status(struct phy_device *pdev) { + pdev->speed = SPEED_100; + pdev->duplex = DUPLEX_FULL; + pdev->pause = pdev->asym_pause = 0; + pdev->link = 1; + return 0; } @@ -1344,6 +1351,8 @@ static struct phy_driver ip17xx_driver = { .remove = ip17xx_remove, .config_init = ip17xx_config_init, .config_aneg = ip17xx_config_aneg, + .aneg_done = ip17xx_aneg_done, + .update_link = ip17xx_update_link, .read_status = ip17xx_read_status, .driver = { .owner = THIS_MODULE }, }; @@ -1357,6 +1366,8 @@ static struct phy_driver ip175a_driver = { .remove = ip17xx_remove, .config_init = ip17xx_config_init, .config_aneg = ip17xx_config_aneg, + .aneg_done = ip17xx_aneg_done, + .update_link = ip17xx_update_link, .read_status = ip17xx_read_status, .driver = { .owner = THIS_MODULE }, }; |