diff options
| author | Shannon Nelson <shannon.nelson@intel.com> | 2013-12-21 00:44:48 -0500 |
|---|---|---|
| committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2014-01-10 19:30:35 -0500 |
| commit | c5c9eb9e78b2237ef81ef8cd83ba63206e266fc8 (patch) | |
| tree | a788c2429971987e74d3fd0dc0cdff927766c7ff | |
| parent | 3126dcb7368c152d74cda11a025328853948f9b9 (diff) | |
i40e: clear qtx_head before enabling Tx queue
Make sure the "new" qtx_head[q] register is cleared before
enabling the Tx queue.
Change-ID: I0c7a12815e343a5ae68807af172a35d6c6857935
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| -rw-r--r-- | drivers/net/ethernet/intel/i40e/i40e_main.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 65c27cb1e9ec..bc14a85561f8 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c | |||
| @@ -3008,11 +3008,13 @@ static int i40e_vsi_control_tx(struct i40e_vsi *vsi, bool enable) | |||
| 3008 | continue; | 3008 | continue; |
| 3009 | 3009 | ||
| 3010 | /* turn on/off the queue */ | 3010 | /* turn on/off the queue */ |
| 3011 | if (enable) | 3011 | if (enable) { |
| 3012 | wr32(hw, I40E_QTX_HEAD(pf_q), 0); | ||
| 3012 | tx_reg |= I40E_QTX_ENA_QENA_REQ_MASK | | 3013 | tx_reg |= I40E_QTX_ENA_QENA_REQ_MASK | |
| 3013 | I40E_QTX_ENA_QENA_STAT_MASK; | 3014 | I40E_QTX_ENA_QENA_STAT_MASK; |
| 3014 | else | 3015 | } else { |
| 3015 | tx_reg &= ~I40E_QTX_ENA_QENA_REQ_MASK; | 3016 | tx_reg &= ~I40E_QTX_ENA_QENA_REQ_MASK; |
| 3017 | } | ||
| 3016 | 3018 | ||
| 3017 | wr32(hw, I40E_QTX_ENA(pf_q), tx_reg); | 3019 | wr32(hw, I40E_QTX_ENA(pf_q), tx_reg); |
| 3018 | 3020 | ||
