igb: SERDES loopback sigdetect bit on i210 devices
authorAkeem G. Abodunrin <akeem.g.abodunrin@intel.com>
Wed, 20 Mar 2013 08:01:40 +0000 (08:01 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 25 Apr 2013 00:59:26 +0000 (17:59 -0700)
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>
drivers/net/ethernet/intel/igb/igb_ethtool.c

index 48b594701efa7f51f5b975ec37aac3e70602b1f1..7876240fa74e27c16e759168ed662750aae4c66a 100644 (file)
@@ -1678,17 +1678,12 @@ static int igb_setup_loopback_test(struct igb_adapter *adapter)
                wr32(E1000_CONNSW, reg);
 
                /* Unset sigdetect for SERDES loopback on
-                * 82580 and i350 devices.
+                * 82580 and newer devices.
                 */
-               switch (hw->mac.type) {
-               case e1000_82580:
-               case e1000_i350:
+               if (hw->mac.type >= e1000_82580) {
                        reg = rd32(E1000_PCS_CFG0);
                        reg |= E1000_PCS_CFG_IGN_SD;
                        wr32(E1000_PCS_CFG0, reg);
-                       break;
-               default:
-                       break;
                }
 
                /* Set PCS register for forced speed */