aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAkeem G. Abodunrin <akeem.g.abodunrin@intel.com>2013-03-20 04:01:40 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2013-04-24 20:59:26 -0400
commit0ba96d3d91882ae27083d8de8634ce0fae20dee6 (patch)
treee60609b1b8e70939b5bde624c723f36657030ba9 /drivers
parent5700ff26f170864ea1cb0ceb00784e1838cfeeb5 (diff)
igb: SERDES loopback sigdetect bit on i210 devices
This patch implements SERDES loopback configuration for i210 devices by unsetting sigdetect bit, so as to fix Ethtool loopback test failure. Old sigdetect code is also simplified to take care of all devices newer than 82580 Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/intel/igb/igb_ethtool.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index 48b594701efa..7876240fa74e 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -1678,17 +1678,12 @@ static int igb_setup_loopback_test(struct igb_adapter *adapter)
1678 wr32(E1000_CONNSW, reg); 1678 wr32(E1000_CONNSW, reg);
1679 1679
1680 /* Unset sigdetect for SERDES loopback on 1680 /* Unset sigdetect for SERDES loopback on
1681 * 82580 and i350 devices. 1681 * 82580 and newer devices.
1682 */ 1682 */
1683 switch (hw->mac.type) { 1683 if (hw->mac.type >= e1000_82580) {
1684 case e1000_82580:
1685 case e1000_i350:
1686 reg = rd32(E1000_PCS_CFG0); 1684 reg = rd32(E1000_PCS_CFG0);
1687 reg |= E1000_PCS_CFG_IGN_SD; 1685 reg |= E1000_PCS_CFG_IGN_SD;
1688 wr32(E1000_PCS_CFG0, reg); 1686 wr32(E1000_PCS_CFG0, reg);
1689 break;
1690 default:
1691 break;
1692 } 1687 }
1693 1688
1694 /* Set PCS register for forced speed */ 1689 /* Set PCS register for forced speed */