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

Commit 75c8d2fc authored by Gauri Joshi's avatar Gauri Joshi
Browse files

msm: ep-pcie: Enable global IRQ after enumeration



The global irqs are being enabled before EP driver has completed
successful link enumeration. This causes a race condition where
the BME IRQ is processed before link up causing the link up to
exit before updating the link status. Any further processing results
in LINK_DISABLED error. Avoid this scenario by enabling the global
interrupts after enumeration has finished.

Change-Id: I983a35f461da5d8966cadc9918b5529d16182b47
Signed-off-by: default avatarGauri Joshi <gaurjosh@codeaurora.org>
parent 2744660c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2603,6 +2603,7 @@ int32_t ep_pcie_irq_init(struct ep_pcie_dev_t *dev)
	INIT_WORK(&dev->handle_d3cold_work, handle_d3cold_func);

	if (dev->aggregated_irq) {
		irq_set_status_flags(dev->irq[EP_PCIE_INT_GLOBAL].num, IRQ_NOAUTOEN);
		ret = devm_request_irq(pdev,
			dev->irq[EP_PCIE_INT_GLOBAL].num,
			ep_pcie_handle_global_irq,
@@ -3446,6 +3447,7 @@ static int ep_pcie_probe(struct platform_device *pdev)

	qcom_edma_init(&pdev->dev);

	enable_irq(ep_pcie_dev.irq[EP_PCIE_INT_GLOBAL].num);
	return 0;

irq_deinit: