diff options
author | Yadwinder Singh Brar <yadi.brar01@gmail.com> | 2012-07-05 09:28:21 +0530 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2012-07-09 15:13:42 +0200 |
commit | 9bdf9b4ec7c8b707cd0d9109d576c4eb69cd84bb (patch) | |
tree | 03fb53bc9e0d81d0be0b1ed761fed6b4258cbd06 /drivers/mfd | |
parent | 84d70ee78bb0c3d8d1d8df74565d010e2e3c31a9 (diff) | |
download | linux-9bdf9b4ec7c8b707cd0d9109d576c4eb69cd84bb.tar.bz2 |
mfd: Apply irq_mask_cur before handling max77686 interrupts
According to TRM, though we mask the interrupts in interrupt-mask register,
interrupt source-register still provide the status of the masked interrupts.
So we should apply irq_mask_cur to read interrupt source-register value before
handling.
Signed-off-by: Yadwinder Singh Brar <yadi.brar@samsung.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/max77686-irq.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mfd/max77686-irq.c b/drivers/mfd/max77686-irq.c index 09e593ad07b5..0758fac0c447 100644 --- a/drivers/mfd/max77686-irq.c +++ b/drivers/mfd/max77686-irq.c @@ -208,6 +208,9 @@ static irqreturn_t max77686_irq_thread(int irq, void *data) } + for (i = 0; i < MAX77686_IRQ_GROUP_NR; i++) + irq_reg[i] &= ~max77686->irq_masks_cur[i]; + for (i = 0; i < MAX77686_IRQ_NR; i++) { if (irq_reg[max77686_irqs[i].group] & max77686_irqs[i].mask) { cur_irq = irq_find_mapping(max77686->irq_domain, i); |