aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000e/82571.c
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2010-11-24 01:01:20 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2010-12-11 01:13:05 -0500
commita82a14f4cdcfedb27eacec8eb4d9e47d42c10d43 (patch)
treef8d40b95aa42bbb4d8c338657139a4027631fe79 /drivers/net/e1000e/82571.c
parent9633e63bb1d82c02950983d5d3317e6656b11c8e (diff)
e1000e: 82571-based mezzanine card can fail ethtool link test
On certain 82571-based mezzanine NICs in some blade servers, the ethtool link test can fail due to the serdes_has_link flag not set correctly. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Emil Tantilov <emil.s.tantilov@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/e1000e/82571.c')
-rw-r--r--drivers/net/e1000e/82571.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c
index 9333921010cc..6942e2f86eac 100644
--- a/drivers/net/e1000e/82571.c
+++ b/drivers/net/e1000e/82571.c
@@ -1523,8 +1523,10 @@ static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw)
1523 e1000_serdes_link_autoneg_progress; 1523 e1000_serdes_link_autoneg_progress;
1524 mac->serdes_has_link = false; 1524 mac->serdes_has_link = false;
1525 e_dbg("AN_UP -> AN_PROG\n"); 1525 e_dbg("AN_UP -> AN_PROG\n");
1526 } else {
1527 mac->serdes_has_link = true;
1526 } 1528 }
1527 break; 1529 break;
1528 1530
1529 case e1000_serdes_link_forced_up: 1531 case e1000_serdes_link_forced_up:
1530 /* 1532 /*
@@ -1543,6 +1545,8 @@ static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw)
1543 e1000_serdes_link_autoneg_progress; 1545 e1000_serdes_link_autoneg_progress;
1544 mac->serdes_has_link = false; 1546 mac->serdes_has_link = false;
1545 e_dbg("FORCED_UP -> AN_PROG\n"); 1547 e_dbg("FORCED_UP -> AN_PROG\n");
1548 } else {
1549 mac->serdes_has_link = true;
1546 } 1550 }
1547 break; 1551 break;
1548 1552
@@ -1598,6 +1602,7 @@ static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw)
1598 ew32(CTRL, (ctrl & ~E1000_CTRL_SLU)); 1602 ew32(CTRL, (ctrl & ~E1000_CTRL_SLU));
1599 mac->serdes_link_state = 1603 mac->serdes_link_state =
1600 e1000_serdes_link_autoneg_progress; 1604 e1000_serdes_link_autoneg_progress;
1605 mac->serdes_has_link = false;
1601 e_dbg("DOWN -> AN_PROG\n"); 1606 e_dbg("DOWN -> AN_PROG\n");
1602 break; 1607 break;
1603 } 1608 }