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

Commit 0fec9542 authored by Emmanuel Grumbach's avatar Emmanuel Grumbach
Browse files

iwlwifi: pcie: determine the interrupt type in the handler



Instead of having:
iwl_pcie_irq_handler
	iwl_pcie_isr_ict
		iwl_pcie_isr_non_ict

we now have:

iwl_pcie_irq_handler:
	if (use_ict))
		iwl_pcie_int_cause_ict;
	else
		iwl_pcie_int_cause_non_ict;

This is much clearer.

Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent a0f337cc
Loading
Loading
Loading
Loading
+10 −12
Original line number Diff line number Diff line
@@ -807,8 +807,7 @@ static void iwl_pcie_irq_handle_error(struct iwl_trans *trans)
	wake_up(&trans_pcie->wait_command_queue);
}

/* legacy (non-ICT) ISR. Assumes that trans_pcie->irq_lock is held */
static irqreturn_t iwl_pcie_isr_non_ict(struct iwl_trans *trans)
static irqreturn_t iwl_pcie_int_cause_non_ict(struct iwl_trans *trans)
{
	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
	u32 inta;
@@ -876,7 +875,7 @@ static irqreturn_t iwl_pcie_isr_non_ict(struct iwl_trans *trans)
 * the interrupt we need to service, driver will set the entries back to 0 and
 * set index.
 */
static irqreturn_t iwl_pcie_isr_ict(struct iwl_trans *trans)
static irqreturn_t iwl_pcie_int_cause_ict(struct iwl_trans *trans)
{
	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
	irqreturn_t ret;
@@ -884,14 +883,6 @@ static irqreturn_t iwl_pcie_isr_ict(struct iwl_trans *trans)
	u32 val = 0;
	u32 read;

	/* dram interrupt table not set yet,
	 * use legacy interrupt.
	 */
	if (unlikely(!trans_pcie->use_ict)) {
		ret = iwl_pcie_isr_non_ict(trans);
		return ret;
	}

	trace_iwlwifi_dev_irq(trans->dev);

	/* Ignore interrupt if there's nothing in NIC to service.
@@ -977,7 +968,14 @@ irqreturn_t iwl_pcie_irq_handler(int irq, void *dev_id)

	spin_lock_irqsave(&trans_pcie->irq_lock, flags);

	ret = iwl_pcie_isr_ict(trans);
	/* dram interrupt table not set yet,
	 * use legacy interrupt.
	 */
	if (likely(trans_pcie->use_ict))
		ret = iwl_pcie_int_cause_ict(trans);
	else
		ret = iwl_pcie_int_cause_non_ict(trans);

	if (ret != IRQ_WAKE_THREAD) {
		spin_unlock_irqrestore(&trans_pcie->irq_lock, flags);
		return ret;