aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Green <andy@openmoko.com>2008-12-01 01:26:26 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-12-01 01:26:26 +0000
commitb508faf746975d4745e0736fb6eae363f155989e (patch)
tree71c0f6e52011f95689de8a7a722ee087a0441d37
parentd8e07523db4a07a817d9bde9ee1d34105b9429b0 (diff)
fix-regulators-gratuitous-resume-isr-bugs.patch
The gratuitous IRQ clearing thing had some problems... the workqueue was going to put the device and enable the irq... Signed-off-by: Andy Green <andy@openmoko.com>
-rw-r--r--drivers/mfd/pcf50633-core.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/mfd/pcf50633-core.c b/drivers/mfd/pcf50633-core.c
index 53429154d7e..ec7a7727228 100644
--- a/drivers/mfd/pcf50633-core.c
+++ b/drivers/mfd/pcf50633-core.c
@@ -458,11 +458,12 @@ static int pcf50633_resume(struct device *dev)
pcf50633_write_block(pcf, PCF50633_REG_INT1M, 5,
pcf->suspend_irq_masks);
+ get_device(pcf->dev);
+
/* Clear any pending interrupts and set resume reason if any */
+ /* this will leave with enable_irq() */
pcf50633_irq_worker(&pcf->irq_work);
- enable_irq(pcf->irq);
-
return 0;
}
#else