From d4be9fe646da7bc9008d88971a04e6b8b2f93dba Mon Sep 17 00:00:00 2001 From: Karthick Shanmugham Date: Fri, 24 Sep 2021 09:39:28 +0530 Subject: [PATCH] msm: ep-pcie: ipq: Enable global irq before link enum Enabling global irq after link enumeration causes link failure with IPQ host. Global irq is enabled before enumeration for ipq host alone. Change-Id: I20fa69c05bd3bc97fddea35e9e30833bca04c54b Signed-off-by: Karthick Shanmugham --- drivers/platform/msm/ep_pcie/ep_pcie_core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/platform/msm/ep_pcie/ep_pcie_core.c b/drivers/platform/msm/ep_pcie/ep_pcie_core.c index 29efab766e3d..b40a34b7b72e 100644 --- a/drivers/platform/msm/ep_pcie/ep_pcie_core.c +++ b/drivers/platform/msm/ep_pcie/ep_pcie_core.c @@ -2610,7 +2610,8 @@ 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); + if (!ep_pcie_dev.perst_enum) + 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, @@ -3455,7 +3456,8 @@ 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); + if (!ep_pcie_dev.perst_enum) + enable_irq(ep_pcie_dev.irq[EP_PCIE_INT_GLOBAL].num); return 0; irq_deinit: