|
@@ -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;
|
|
|
}
|
|
|
|