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>

Attachment: pgpM1nfzSn1Y5.pgp
Description: OpenPGP digital signature

Reply via email to