On Thursday, December 12, 2013 at 07:29:03 PM, Harro Haan wrote: > The interrupts were cleared after the irq handler was called. > This means that new interrupts that occur after the handler handled > the previous irq but before the interrupt is cleared will be missed. > > Signed-off-by: Harro Haan <hrhaan@xxxxxxxxx> > Cc: Mohit Kumar <mohit.kumar@xxxxxx> > Cc: Jingoo Han <jg1.han@xxxxxxxxxxx> > Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > Cc: Marek Vasut <marex@xxxxxxx> > Cc: Richard Zhu <hong-xing.zhu@xxxxxxxxxxxxx> > Cc: Shawn Guo <shawn.guo@xxxxxxxxxx> > Cc: Pratyush Anand <pratyush.anand@xxxxxx> > Cc: Tim Harvey <tharvey@xxxxxxxxxxxxx> > Cc: Juergen Beisert <jbe@xxxxxxxxxxxxxx> > Cc: Arnd Bergmann <arnd@xxxxxxxx> > Cc: Siva Reddy Kallam <siva.kallam@xxxxxxxxxxx> > Cc: Srikanth T Shivanand <ts.srikanth@xxxxxxxxxxx> > Cc: Sean Cross <xobs@xxxxxxxxxx> > Cc: linux-pci@xxxxxxxxxxxxxxx > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > --- > drivers/pci/host/pcie-designware.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/host/pcie-designware.c > b/drivers/pci/host/pcie-designware.c index 1ce0453..762f596 100644 > --- a/drivers/pci/host/pcie-designware.c > +++ b/drivers/pci/host/pcie-designware.c > @@ -167,11 +167,13 @@ void dw_handle_msi_irq(struct pcie_port *pp) > while ((pos = find_next_bit(&val, 32, pos)) != 32) { > irq = irq_find_mapping(pp->irq_domain, > i * 32 + pos); > + dw_pcie_wr_own_conf(pp, > + PCIE_MSI_INTR0_STATUS + i * 12, > + 4, 1 << pos); > generic_handle_irq(irq); > pos++; > } > } > - dw_pcie_wr_own_conf(pp, PCIE_MSI_INTR0_STATUS + i * 12, 4, val); > } > } On imx6-sabrelite: Tested-by: Marek Vasut <marex@xxxxxxx> Best regards, Marek Vasut -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html