diff options
-rw-r--r-- | drivers/net/ixgb/ixgb_main.c | 27 |
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; | |||
146 | module_param(debug, int, 0); | 146 | module_param(debug, int, 0); |
147 | MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)"); | 147 | MODULE_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) { |