summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonghwa Lee <jonghwa3.lee@samsung.com>2014-10-14 18:03:09 +0900
committerChanho Park <chanho61.park@samsung.com>2014-10-15 02:46:48 -0700
commitcb8f5a93e0c702116ffabbf268817a88d06681b5 (patch)
treefbc50e5c205521f3b7ca095d6a4bffac1d86620c
parentd4e0c02ded93c433f1744afe58e6530b836795a8 (diff)
downloadlinux-3.10-cb8f5a93e0c702116ffabbf268817a88d06681b5.tar.gz
linux-3.10-cb8f5a93e0c702116ffabbf268817a88d06681b5.tar.bz2
linux-3.10-cb8f5a93e0c702116ffabbf268817a88d06681b5.zip
mfd: sec-core: Postpone handling of IRQ until I2C bus is enabled.
Like most of other external chips, it needs to defer handling of IRQ arised during suspend until i2c bus is re-enabled. Change-Id: I6052fed2c89b349374a1cad510f7a9fed757699f Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
-rw-r--r--drivers/mfd/sec-core.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mfd/sec-core.c b/drivers/mfd/sec-core.c
index b281ddc7126..80f11af4ef1 100644
--- a/drivers/mfd/sec-core.c
+++ b/drivers/mfd/sec-core.c
@@ -414,6 +414,9 @@ static int sec_pmic_suspend(struct device *dev)
if (device_may_wakeup(dev))
enable_irq_wake(sec_pmic->irq);
+ /* Postpone handling of IRQ until I2C bus is enabled. */
+ disable_irq(sec_pmic->irq);
+
return 0;
}
@@ -425,6 +428,8 @@ static int sec_pmic_resume(struct device *dev)
if (device_may_wakeup(dev))
disable_irq_wake(sec_pmic->irq);
+ enable_irq(sec_pmic->irq);
+
return 0;
}
#endif