|
@@ -552,7 +552,8 @@ static irqreturn_t amd_gpio_irq_handler(int irq, void *dev_id)
|
|
/* Each status bit covers four pins */
|
|
/* Each status bit covers four pins */
|
|
for (i = 0; i < 4; i++) {
|
|
for (i = 0; i < 4; i++) {
|
|
regval = readl(regs + i);
|
|
regval = readl(regs + i);
|
|
- if (!(regval & PIN_IRQ_PENDING))
|
|
|
|
|
|
+ if (!(regval & PIN_IRQ_PENDING) ||
|
|
|
|
+ !(regval & BIT(INTERRUPT_MASK_OFF)))
|
|
continue;
|
|
continue;
|
|
irq = irq_find_mapping(gc->irq.domain, irqnr + i);
|
|
irq = irq_find_mapping(gc->irq.domain, irqnr + i);
|
|
generic_handle_irq(irq);
|
|
generic_handle_irq(irq);
|