|
@@ -3066,7 +3066,7 @@ void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf)
|
|
/**
|
|
/**
|
|
* i40e_irq_dynamic_enable - Enable default interrupt generation settings
|
|
* i40e_irq_dynamic_enable - Enable default interrupt generation settings
|
|
* @vsi: pointer to a vsi
|
|
* @vsi: pointer to a vsi
|
|
- * @vector: enable a particular Hw Interrupt vector
|
|
|
|
|
|
+ * @vector: enable a particular Hw Interrupt vector, without base_vector
|
|
**/
|
|
**/
|
|
void i40e_irq_dynamic_enable(struct i40e_vsi *vsi, int vector)
|
|
void i40e_irq_dynamic_enable(struct i40e_vsi *vsi, int vector)
|
|
{
|
|
{
|
|
@@ -3077,7 +3077,7 @@ void i40e_irq_dynamic_enable(struct i40e_vsi *vsi, int vector)
|
|
val = I40E_PFINT_DYN_CTLN_INTENA_MASK |
|
|
val = I40E_PFINT_DYN_CTLN_INTENA_MASK |
|
|
I40E_PFINT_DYN_CTLN_CLEARPBA_MASK |
|
|
I40E_PFINT_DYN_CTLN_CLEARPBA_MASK |
|
|
(I40E_ITR_NONE << I40E_PFINT_DYN_CTLN_ITR_INDX_SHIFT);
|
|
(I40E_ITR_NONE << I40E_PFINT_DYN_CTLN_ITR_INDX_SHIFT);
|
|
- wr32(hw, I40E_PFINT_DYN_CTLN(vector - 1), val);
|
|
|
|
|
|
+ wr32(hw, I40E_PFINT_DYN_CTLN(vector + vsi->base_vector - 1), val);
|
|
/* skip the flush */
|
|
/* skip the flush */
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3220,8 +3220,7 @@ static int i40e_vsi_enable_irq(struct i40e_vsi *vsi)
|
|
int i;
|
|
int i;
|
|
|
|
|
|
if (pf->flags & I40E_FLAG_MSIX_ENABLED) {
|
|
if (pf->flags & I40E_FLAG_MSIX_ENABLED) {
|
|
- for (i = vsi->base_vector;
|
|
|
|
- i < (vsi->num_q_vectors + vsi->base_vector); i++)
|
|
|
|
|
|
+ for (i = 0; i < vsi->num_q_vectors; i++)
|
|
i40e_irq_dynamic_enable(vsi, i);
|
|
i40e_irq_dynamic_enable(vsi, i);
|
|
} else {
|
|
} else {
|
|
i40e_irq_dynamic_enable_icr0(pf);
|
|
i40e_irq_dynamic_enable_icr0(pf);
|
|
@@ -3453,8 +3452,7 @@ static bool i40e_clean_fdir_tx_irq(struct i40e_ring *tx_ring, int budget)
|
|
tx_ring->next_to_clean = i;
|
|
tx_ring->next_to_clean = i;
|
|
|
|
|
|
if (vsi->back->flags & I40E_FLAG_MSIX_ENABLED) {
|
|
if (vsi->back->flags & I40E_FLAG_MSIX_ENABLED) {
|
|
- i40e_irq_dynamic_enable(vsi,
|
|
|
|
- tx_ring->q_vector->v_idx + vsi->base_vector);
|
|
|
|
|
|
+ i40e_irq_dynamic_enable(vsi, tx_ring->q_vector->v_idx);
|
|
}
|
|
}
|
|
return budget > 0;
|
|
return budget > 0;
|
|
}
|
|
}
|