aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sky2.c
diff options
context:
space:
mode:
authorstephen hemminger <shemminger@vyatta.com>2010-03-29 07:36:20 +0000
committerDavid S. Miller <davem@davemloft.net>2010-03-30 19:43:48 -0700
commit9badba2543d165154c540b80e59ff06c1b3e3f76 (patch)
tree1b4c1748d144987a115a5dda6127360888a22374 /drivers/net/sky2.c
parentsky2: add XL revisions (diff)
downloadlinux-dev-9badba2543d165154c540b80e59ff06c1b3e3f76.tar.xz
linux-dev-9badba2543d165154c540b80e59ff06c1b3e3f76.zip
sky2: avoid duplicate link up on Optima chip
The Optima version has feature to detect link quickly without PHY interrupt, but it causes duplicate link up events. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sky2.c')
-rw-r--r--drivers/net/sky2.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index eec36995af22..f1c0ec308bfe 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -2146,7 +2146,8 @@ static void sky2_phy_intr(struct sky2_hw *hw, unsigned port)
istatus, phystat);
if (istatus & PHY_M_IS_AN_COMPL) {
- if (sky2_autoneg_done(sky2, phystat) == 0)
+ if (sky2_autoneg_done(sky2, phystat) == 0 &&
+ !netif_carrier_ok(dev))
sky2_link_up(sky2);
goto out;
}