diff options
author | Yadwinder Singh Brar <yadi.brar01@gmail.com> | 2012-07-04 23:58:21 -0400 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2012-07-09 09:13:42 -0400 |
commit | 9bdf9b4ec7c8b707cd0d9109d576c4eb69cd84bb (patch) | |
tree | 03fb53bc9e0d81d0be0b1ed761fed6b4258cbd06 /drivers/mfd/max77686-irq.c | |
parent | 84d70ee78bb0c3d8d1d8df74565d010e2e3c31a9 (diff) |
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/max77686-irq.c')
-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) | |||
208 | 208 | ||
209 | } | 209 | } |
210 | 210 | ||
211 | for (i = 0; i < MAX77686_IRQ_GROUP_NR; i++) | ||
212 | irq_reg[i] &= ~max77686->irq_masks_cur[i]; | ||
213 | |||
211 | for (i = 0; i < MAX77686_IRQ_NR; i++) { | 214 | for (i = 0; i < MAX77686_IRQ_NR; i++) { |
212 | if (irq_reg[max77686_irqs[i].group] & max77686_irqs[i].mask) { | 215 | if (irq_reg[max77686_irqs[i].group] & max77686_irqs[i].mask) { |
213 | cur_irq = irq_find_mapping(max77686->irq_domain, i); | 216 | cur_irq = irq_find_mapping(max77686->irq_domain, i); |