|
@@ -100,6 +100,7 @@ static irqreturn_t regmap_irq_thread(int irq, void *d)
|
|
|
u8 *buf8 = data->status_reg_buf;
|
|
|
u16 *buf16 = data->status_reg_buf;
|
|
|
u32 *buf32 = data->status_reg_buf;
|
|
|
+ bool handled = false;
|
|
|
|
|
|
ret = regmap_bulk_read(map, chip->status_base, data->status_reg_buf,
|
|
|
chip->num_regs);
|
|
@@ -146,10 +147,14 @@ static irqreturn_t regmap_irq_thread(int irq, void *d)
|
|
|
if (data->status_buf[chip->irqs[i].reg_offset] &
|
|
|
chip->irqs[i].mask) {
|
|
|
handle_nested_irq(data->irq_base + i);
|
|
|
+ handled = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return IRQ_HANDLED;
|
|
|
+ if (handled)
|
|
|
+ return IRQ_HANDLED;
|
|
|
+ else
|
|
|
+ return IRQ_NONE;
|
|
|
}
|
|
|
|
|
|
/**
|