Skip to content

Commit

Permalink
regmap: Report if we actually handled an interrupt in regmap-irq
Browse files Browse the repository at this point in the history
While the IRQ core doesn't currently support shared threaded interrupts
that's no reason for drivers not to do their bit and report IRQ_NONE when
they don't get an interrupt. This allows the core spurious/wedget interrupt
detection support to do its thing.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Mark Brown committed Nov 28, 2011
1 parent f8beab2 commit d23511f
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion drivers/base/regmap/regmap-irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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;
}

/**
Expand Down

0 comments on commit d23511f

Please sign in to comment.