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

Commit adb4986f authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: ipa3: fix the interrupt loop issue"

parents 0f1b71e7 b2acdd86
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -413,12 +413,6 @@ int ipa3_remove_interrupt_handler(enum ipa_irq_type interrupt)
		return -EFAULT;
	}

	kfree(ipa_interrupt_to_cb[irq_num].private_data);
	ipa_interrupt_to_cb[irq_num].deferred_flag = false;
	ipa_interrupt_to_cb[irq_num].handler = NULL;
	ipa_interrupt_to_cb[irq_num].private_data = NULL;
	ipa_interrupt_to_cb[irq_num].interrupt = -1;

	/* clean SUSPEND_IRQ_EN_EE_n_ADDR for L2 interrupt */
	if ((interrupt == IPA_TX_SUSPEND_IRQ) &&
		(ipa3_ctx->ipa_hw_type == IPA_HW_v3_1)) {
@@ -431,6 +425,13 @@ int ipa3_remove_interrupt_handler(enum ipa_irq_type interrupt)
	val &= ~bmsk;
	ipa3_uc_rg10_write_reg(IPA_IRQ_EN_EE_n, ipa_ee, val);

	/* delete the handlers after clean-up interrupts */
	kfree(ipa_interrupt_to_cb[irq_num].private_data);
	ipa_interrupt_to_cb[irq_num].deferred_flag = false;
	ipa_interrupt_to_cb[irq_num].handler = NULL;
	ipa_interrupt_to_cb[irq_num].private_data = NULL;
	ipa_interrupt_to_cb[irq_num].interrupt = -1;

	return 0;
}