On Fri, 14 Nov 2014 13:35:06 +0100 khal...@piap.pl (Krzysztof Hałasa) wrote: > The IRQs have to be acknowledged before they are serviced, otherwise > some events may be skipped. Also, acknowledging IRQs just before > returning from the handler doesn't leave enough time for the device > to deassert the INTx line, and for bridges to propagate this change. > This resulted in twice the IRQ rate on ARMv6 dual core CPU. > > Signed-off-by: Krzysztof Hałasa <khal...@piap.pl> > > --- a/drivers/media/pci/solo6x10/solo6x10-core.c > +++ b/drivers/media/pci/solo6x10/solo6x10-core.c > @@ -105,11 +105,8 @@ static irqreturn_t solo_isr(int irq, void *data) > if (!status) > return IRQ_NONE; > > - if (status & ~solo_dev->irq_mask) { > - solo_reg_write(solo_dev, SOLO_IRQ_STAT, > - status & ~solo_dev->irq_mask); > - status &= solo_dev->irq_mask; > - } > + /* Acknowledge all interrupts immediately */ > + solo_reg_write(solo_dev, SOLO_IRQ_STAT, status); > > if (status & SOLO_IRQ_PCI_ERR) > solo_p2m_error_isr(solo_dev); > @@ -132,9 +129,6 @@ static irqreturn_t solo_isr(int irq, void *data) > if (status & SOLO_IRQ_G723) > solo_g723_isr(solo_dev); > > - /* Clear all interrupts handled */ > - solo_reg_write(solo_dev, SOLO_IRQ_STAT, status); > - > return IRQ_HANDLED; > } > >
Signed-off-by: Ismael Luceno <ismael.luc...@corp.bluecherry.net>
pgpM1nfzSn1Y5.pgp
Description: OpenPGP digital signature