aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ixgb/ixgb_main.c27
1 files changed, 6 insertions, 21 deletions
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index 652c0eab3a4a..ecd5252c4bf4 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -146,14 +146,6 @@ static int debug = DEFAULT_DEBUG_LEVEL_SHIFT;
146module_param(debug, int, 0); 146module_param(debug, int, 0);
147MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)"); 147MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
148 148
149/* some defines for controlling descriptor fetches in h/w */
150#define RXDCTL_WTHRESH_DEFAULT 15 /* chip writes back at this many or RXT0 */
151#define RXDCTL_PTHRESH_DEFAULT 0 /* chip considers prefech below
152 * this */
153#define RXDCTL_HTHRESH_DEFAULT 0 /* chip will only prefetch if tail
154 * is pushed this many descriptors
155 * from head */
156
157/** 149/**
158 * ixgb_init_module - Driver Registration Routine 150 * ixgb_init_module - Driver Registration Routine
159 * 151 *
@@ -839,7 +831,6 @@ ixgb_configure_rx(struct ixgb_adapter *adapter)
839 struct ixgb_hw *hw = &adapter->hw; 831 struct ixgb_hw *hw = &adapter->hw;
840 u32 rctl; 832 u32 rctl;
841 u32 rxcsum; 833 u32 rxcsum;
842 u32 rxdctl;
843 834
844 /* make sure receives are disabled while setting up the descriptors */ 835 /* make sure receives are disabled while setting up the descriptors */
845 836
@@ -861,18 +852,12 @@ ixgb_configure_rx(struct ixgb_adapter *adapter)
861 IXGB_WRITE_REG(hw, RDH, 0); 852 IXGB_WRITE_REG(hw, RDH, 0);
862 IXGB_WRITE_REG(hw, RDT, 0); 853 IXGB_WRITE_REG(hw, RDT, 0);
863 854
864 /* set up pre-fetching of receive buffers so we get some before we 855 /* due to the hardware errata with RXDCTL, we are unable to use any of
865 * run out (default hardware behavior is to run out before fetching 856 * the performance enhancing features of it without causing other
866 * more). This sets up to fetch if HTHRESH rx descriptors are avail 857 * subtle bugs, some of the bugs could include receive length
867 * and the descriptors in hw cache are below PTHRESH. This avoids 858 * corruption at high data rates (WTHRESH > 0) and/or receive
868 * the hardware behavior of fetching <=512 descriptors in a single 859 * descriptor ring irregularites (particularly in hardware cache) */
869 * burst that pre-empts all other activity, usually causing fifo 860 IXGB_WRITE_REG(hw, RXDCTL, 0);
870 * overflows. */
871 /* use WTHRESH to burst write 16 descriptors or burst when RXT0 */
872 rxdctl = RXDCTL_WTHRESH_DEFAULT << IXGB_RXDCTL_WTHRESH_SHIFT |
873 RXDCTL_HTHRESH_DEFAULT << IXGB_RXDCTL_HTHRESH_SHIFT |
874 RXDCTL_PTHRESH_DEFAULT << IXGB_RXDCTL_PTHRESH_SHIFT;
875 IXGB_WRITE_REG(hw, RXDCTL, rxdctl);
876 861
877 /* Enable Receive Checksum Offload for TCP and UDP */ 862 /* Enable Receive Checksum Offload for TCP and UDP */
878 if (adapter->rx_csum) { 863 if (adapter->rx_csum) {