Skip to content

Commit 19619b4

Browse files
Mani-SadhasivamLorenzo Pieralisi
authored andcommitted
PCI: qcom-ep: Disable IRQs during driver remove
Disable the Global and PERST IRQs during driver remove to avoid getting spurious IRQs after resource deallocation. Link: https://lore.kernel.org/r/20220914075350.7992-5-manivannan.sadhasivam@linaro.org Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
1 parent 9cf4843 commit 19619b4

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

drivers/pci/controller/dwc/pcie-qcom-ep.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -581,13 +581,13 @@ static irqreturn_t qcom_pcie_ep_perst_irq_thread(int irq, void *data)
581581
static int qcom_pcie_ep_enable_irq_resources(struct platform_device *pdev,
582582
struct qcom_pcie_ep *pcie_ep)
583583
{
584-
int irq, ret;
584+
int ret;
585585

586-
irq = platform_get_irq_byname(pdev, "global");
587-
if (irq < 0)
588-
return irq;
586+
pcie_ep->global_irq = platform_get_irq_byname(pdev, "global");
587+
if (pcie_ep->global_irq < 0)
588+
return pcie_ep->global_irq;
589589

590-
ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
590+
ret = devm_request_threaded_irq(&pdev->dev, pcie_ep->global_irq, NULL,
591591
qcom_pcie_ep_global_irq_thread,
592592
IRQF_ONESHOT,
593593
"global_irq", pcie_ep);
@@ -604,7 +604,7 @@ static int qcom_pcie_ep_enable_irq_resources(struct platform_device *pdev,
604604
"perst_irq", pcie_ep);
605605
if (ret) {
606606
dev_err(&pdev->dev, "Failed to request PERST IRQ\n");
607-
disable_irq(irq);
607+
disable_irq(pcie_ep->global_irq);
608608
return ret;
609609
}
610610

@@ -702,6 +702,9 @@ static int qcom_pcie_ep_remove(struct platform_device *pdev)
702702
{
703703
struct qcom_pcie_ep *pcie_ep = platform_get_drvdata(pdev);
704704

705+
disable_irq(pcie_ep->global_irq);
706+
disable_irq(pcie_ep->perst_irq);
707+
705708
if (pcie_ep->link_status == QCOM_PCIE_EP_LINK_DISABLED)
706709
return 0;
707710

0 commit comments

Comments
 (0)