diff options
Diffstat (limited to 'drivers/net/ethernet/intel/igb/igb_main.c')
-rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 20b728218d20..c33821d2afb3 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c | |||
@@ -4055,11 +4055,6 @@ void igb_configure_tx_ring(struct igb_adapter *adapter, | |||
4055 | u64 tdba = ring->dma; | 4055 | u64 tdba = ring->dma; |
4056 | int reg_idx = ring->reg_idx; | 4056 | int reg_idx = ring->reg_idx; |
4057 | 4057 | ||
4058 | /* disable the queue */ | ||
4059 | wr32(E1000_TXDCTL(reg_idx), 0); | ||
4060 | wrfl(); | ||
4061 | mdelay(10); | ||
4062 | |||
4063 | wr32(E1000_TDLEN(reg_idx), | 4058 | wr32(E1000_TDLEN(reg_idx), |
4064 | ring->count * sizeof(union e1000_adv_tx_desc)); | 4059 | ring->count * sizeof(union e1000_adv_tx_desc)); |
4065 | wr32(E1000_TDBAL(reg_idx), | 4060 | wr32(E1000_TDBAL(reg_idx), |
@@ -4090,8 +4085,16 @@ void igb_configure_tx_ring(struct igb_adapter *adapter, | |||
4090 | **/ | 4085 | **/ |
4091 | static void igb_configure_tx(struct igb_adapter *adapter) | 4086 | static void igb_configure_tx(struct igb_adapter *adapter) |
4092 | { | 4087 | { |
4088 | struct e1000_hw *hw = &adapter->hw; | ||
4093 | int i; | 4089 | int i; |
4094 | 4090 | ||
4091 | /* disable the queues */ | ||
4092 | for (i = 0; i < adapter->num_tx_queues; i++) | ||
4093 | wr32(E1000_TXDCTL(adapter->tx_ring[i]->reg_idx), 0); | ||
4094 | |||
4095 | wrfl(); | ||
4096 | usleep_range(10000, 20000); | ||
4097 | |||
4095 | for (i = 0; i < adapter->num_tx_queues; i++) | 4098 | for (i = 0; i < adapter->num_tx_queues; i++) |
4096 | igb_configure_tx_ring(adapter, adapter->tx_ring[i]); | 4099 | igb_configure_tx_ring(adapter, adapter->tx_ring[i]); |
4097 | } | 4100 | } |