aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@stericsson.com>2009-08-13 05:50:01 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2009-09-17 03:47:18 -0400
commit0ad651c94c7a1f3706f63dc0174e681315e7dc81 (patch)
treed3d31dd7a5baf5d628ab959f8a558d6d69e9fe54 /drivers
parentce290b0e865ae19f0ae49968def0a2edcb4e6a65 (diff)
mfd: AB3100 disable irq nosync
This will make the worker fire interrupt disable the AB3100 IRQ without sync which resolves a race since the interrupt obviously cannot wait for itself to complete while being handled. Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mfd/ab3100-core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mfd/ab3100-core.c b/drivers/mfd/ab3100-core.c
index bba534ba8c65..1d8ac1a1e304 100644
--- a/drivers/mfd/ab3100-core.c
+++ b/drivers/mfd/ab3100-core.c
@@ -422,7 +422,7 @@ static irqreturn_t ab3100_irq_handler(int irq, void *data)
422 * stuff and we will re-enable the interrupts once th 422 * stuff and we will re-enable the interrupts once th
423 * worker has finished. 423 * worker has finished.
424 */ 424 */
425 disable_irq(ab3100->i2c_client->irq); 425 disable_irq_nosync(irq);
426 schedule_work(&ab3100->work); 426 schedule_work(&ab3100->work);
427 return IRQ_HANDLED; 427 return IRQ_HANDLED;
428} 428}