diff options
-rw-r--r-- | drivers/net/ethernet/intel/igb/igb.h | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/igb/igb_ethtool.c | 14 |
2 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h index c15a4811b476..17f1686ee411 100644 --- a/drivers/net/ethernet/intel/igb/igb.h +++ b/drivers/net/ethernet/intel/igb/igb.h | |||
@@ -42,6 +42,8 @@ | |||
42 | 42 | ||
43 | struct igb_adapter; | 43 | struct igb_adapter; |
44 | 44 | ||
45 | #define E1000_PCS_CFG_IGN_SD 1 | ||
46 | |||
45 | /* Interrupt defines */ | 47 | /* Interrupt defines */ |
46 | #define IGB_START_ITR 648 /* ~6000 ints/sec */ | 48 | #define IGB_START_ITR 648 /* ~6000 ints/sec */ |
47 | #define IGB_4K_ITR 980 | 49 | #define IGB_4K_ITR 980 |
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c index e2288b5a9caa..bfe9208c4b18 100644 --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c | |||
@@ -1624,6 +1624,20 @@ static int igb_setup_loopback_test(struct igb_adapter *adapter) | |||
1624 | reg &= ~E1000_CONNSW_ENRGSRC; | 1624 | reg &= ~E1000_CONNSW_ENRGSRC; |
1625 | wr32(E1000_CONNSW, reg); | 1625 | wr32(E1000_CONNSW, reg); |
1626 | 1626 | ||
1627 | /* Unset sigdetect for SERDES loopback on | ||
1628 | * 82580 and i350 devices. | ||
1629 | */ | ||
1630 | switch (hw->mac.type) { | ||
1631 | case e1000_82580: | ||
1632 | case e1000_i350: | ||
1633 | reg = rd32(E1000_PCS_CFG0); | ||
1634 | reg |= E1000_PCS_CFG_IGN_SD; | ||
1635 | wr32(E1000_PCS_CFG0, reg); | ||
1636 | break; | ||
1637 | default: | ||
1638 | break; | ||
1639 | } | ||
1640 | |||
1627 | /* Set PCS register for forced speed */ | 1641 | /* Set PCS register for forced speed */ |
1628 | reg = rd32(E1000_PCS_LCTL); | 1642 | reg = rd32(E1000_PCS_LCTL); |
1629 | reg &= ~E1000_PCS_LCTL_AN_ENABLE; /* Disable Autoneg*/ | 1643 | reg &= ~E1000_PCS_LCTL_AN_ENABLE; /* Disable Autoneg*/ |