The current INTx process is clear all the recorded INTx after
each one of the recorded INTx handled, this can result in
potential INTx missing. This patch change it to only clear the
handled INTx status.

Fixes: 9af6bcb11e12 ("PCI: mobiveil: Add Mobiveil PCIe Host Bridge IP driver")
Signed-off-by: Hou Zhiqiang <zhiqiang....@nxp.com>
Reviewed-by: Minghuan Lian <minghuan.l...@nxp.com>
Reviewed-by: Subrahmanya Lingappa <l.subrahma...@mobiveil.co.in>
Acked-by: Karthikeyan Mitran <m.karthike...@mobiveil.co.in>
Tested-by: Karthikeyan Mitran <m.karthike...@mobiveil.co.in>
---
V6:
 - Splited from #10 of v5 patches, no functional change.

 drivers/pci/controller/pcie-mobiveil.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/controller/pcie-mobiveil.c 
b/drivers/pci/controller/pcie-mobiveil.c
index a5549cf..3ab7d2e 100644
--- a/drivers/pci/controller/pcie-mobiveil.c
+++ b/drivers/pci/controller/pcie-mobiveil.c
@@ -372,9 +372,8 @@ static void mobiveil_pcie_isr(struct irq_desc *desc)
                                        dev_err_ratelimited(dev, "unexpected 
IRQ, INT%d\n",
                                                            bit);
 
-                               /* clear interrupt */
-                               csr_writel(pcie,
-                                          shifted_status << PAB_INTX_START,
+                               /* clear interrupt handled */
+                               csr_writel(pcie, 1 << (PAB_INTX_START + bit),
                                           PAB_INTP_AMBA_MISC_STAT);
                        }
 
-- 
1.7.1

Reply via email to