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.Hou@xxxxxxx> Reviewed-by: Minghuan Lian <Minghuan.Lian@xxxxxxx> Reviewed-by: Subrahmanya Lingappa <l.subrahmanya@xxxxxxxxxxxxxx> Acked-by: Karthikeyan Mitran <m.karthikeyan@xxxxxxxxxxxxxx> Tested-by: Karthikeyan Mitran <m.karthikeyan@xxxxxxxxxxxxxx> --- 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