Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7845548d authored by Jesse Brandeburg's avatar Jesse Brandeburg Committed by Jeff Kirsher
Browse files

i40e: refactor interrupt enable



The interrupt enable function was always making the caller add
the base_vector from the VSI struct which is already passed to
the function. Just collapse the math into the helper function.

Change-ID: I54ef33aa7ceebc3231c3cc48f7b39fd0c3ff5806
Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent d1a8d275
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -3066,7 +3066,7 @@ void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf)
/**
 * i40e_irq_dynamic_enable - Enable default interrupt generation settings
 * @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)
{
@@ -3077,7 +3077,7 @@ void i40e_irq_dynamic_enable(struct i40e_vsi *vsi, int vector)
	val = I40E_PFINT_DYN_CTLN_INTENA_MASK |
	      I40E_PFINT_DYN_CTLN_CLEARPBA_MASK |
	      (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 */
}

@@ -3220,8 +3220,7 @@ static int i40e_vsi_enable_irq(struct i40e_vsi *vsi)
	int i;

	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);
	} else {
		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;

	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;
}
+2 −4
Original line number Diff line number Diff line
@@ -1783,8 +1783,7 @@ static inline void i40e_update_enable_itr(struct i40e_vsi *vsi,
		if (!test_bit(__I40E_DOWN, &vsi->state))
			wr32(hw, I40E_PFINT_DYN_CTLN(vector - 1), val);
	} else {
		i40e_irq_dynamic_enable(vsi,
					q_vector->v_idx + vsi->base_vector);
		i40e_irq_dynamic_enable(vsi, q_vector->v_idx);
	}
	if (ITR_IS_DYNAMIC(vsi->tx_itr_setting)) {
		old_itr = q_vector->tx.itr;
@@ -1806,8 +1805,7 @@ static inline void i40e_update_enable_itr(struct i40e_vsi *vsi,
			wr32(hw, I40E_PFINT_DYN_CTLN(q_vector->v_idx +
			      vsi->base_vector - 1), val);
	} else {
		i40e_irq_dynamic_enable(vsi,
					q_vector->v_idx + vsi->base_vector);
		i40e_irq_dynamic_enable(vsi, q_vector->v_idx);
	}
}