diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-11-03 14:45:07 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-11-03 16:16:48 -0400 |
commit | 11e16eb365f4f6979cfcb2a2d379338b383590d9 (patch) | |
tree | 7f8010b876edbb58324bf4b8949728541a8cd366 /sound | |
parent | 7b0f42b59a01a2cc563c5f8670133b819e5c9895 (diff) |
ASoC: Use pm_wakeup_event() in WM8962 jack detection
Ensure that the system does not suspend while we process a WM8962 jack
event by using pm_wakeup_event() to block the suspend while we're waiting
for the jack to settle. Use a slightly longer timeout than the jack waits
to allow for other stuff to take over and delays in scheduling.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/codecs/wm8962.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c index 894d0cd3aa9b..2eaf9bb36b57 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c | |||
@@ -3353,6 +3353,8 @@ static irqreturn_t wm8962_irq(int irq, void *data) | |||
3353 | if (active & (WM8962_MICSCD_EINT | WM8962_MICD_EINT)) { | 3353 | if (active & (WM8962_MICSCD_EINT | WM8962_MICD_EINT)) { |
3354 | dev_dbg(codec->dev, "Microphone event detected\n"); | 3354 | dev_dbg(codec->dev, "Microphone event detected\n"); |
3355 | 3355 | ||
3356 | pm_wakeup_event(codec->dev, 300); | ||
3357 | |||
3356 | schedule_delayed_work(&wm8962->mic_work, | 3358 | schedule_delayed_work(&wm8962->mic_work, |
3357 | msecs_to_jiffies(250)); | 3359 | msecs_to_jiffies(250)); |
3358 | } | 3360 | } |