e1000e: Fix CRC errors with jumbo traffic
authorDavid Ertman <david.m.ertman@intel.com>
Fri, 4 Jul 2014 01:44:32 +0000 (01:44 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Sat, 26 Jul 2014 03:43:29 +0000 (20:43 -0700)
Modifying the jumbo frame workaround for 82579, i217 and i218 client parts
to increase the gap between the read and write pointers in the Tx FIFO.

Signed-off-by: Dave Ertman <david.m.ertman@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/e1000e/defines.h
drivers/net/ethernet/intel/e1000e/ich8lan.c

index d18e892..bb7ab3c 100644 (file)
 #define E1000_TIPG_IPGR2_SHIFT  20
 
 #define MAX_JUMBO_FRAME_SIZE    0x3F00
+#define E1000_TX_PTR_GAP               0x1F
 
 /* Extended Configuration Control and Size */
 #define E1000_EXTCNF_CTRL_MDIO_SW_OWNERSHIP      0x00000020
index f236861..8dbcdc8 100644 (file)
@@ -2444,7 +2444,7 @@ s32 e1000_lv_jumbo_workaround_ich8lan(struct e1000_hw *hw, bool enable)
                        return ret_val;
                e1e_rphy(hw, PHY_REG(776, 20), &data);
                data &= ~(0x3FF << 2);
-               data |= (0x1A << 2);
+               data |= (E1000_TX_PTR_GAP << 2);
                ret_val = e1e_wphy(hw, PHY_REG(776, 20), data);
                if (ret_val)
                        return ret_val;