ASoC: Use pm_wakeup_event() in WM8962 jack detection
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 3 Nov 2010 18:45:07 +0000 (14:45 -0400)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 3 Nov 2010 20:16:48 +0000 (16:16 -0400)
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>
sound/soc/codecs/wm8962.c

index 894d0cd3aa9b95896fbaff30db883b1fe39bc668..2eaf9bb36b578dca88712ac64fd5787570965286 100644 (file)
@@ -3353,6 +3353,8 @@ static irqreturn_t wm8962_irq(int irq, void *data)
        if (active & (WM8962_MICSCD_EINT | WM8962_MICD_EINT)) {
                dev_dbg(codec->dev, "Microphone event detected\n");
 
+               pm_wakeup_event(codec->dev, 300);
+
                schedule_delayed_work(&wm8962->mic_work,
                                      msecs_to_jiffies(250));
        }