aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/max77686-irq.c
diff options
context:
space:
mode:
authorYadwinder Singh Brar <yadi.brar01@gmail.com>2012-07-04 23:58:21 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2012-07-09 09:13:42 -0400
commit9bdf9b4ec7c8b707cd0d9109d576c4eb69cd84bb (patch)
tree03fb53bc9e0d81d0be0b1ed761fed6b4258cbd06 /drivers/mfd/max77686-irq.c
parent84d70ee78bb0c3d8d1d8df74565d010e2e3c31a9 (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.c3
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);