]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
mfd: Test for jack detection when deciding if wm8994 should suspend
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 20 Feb 2012 21:32:32 +0000 (21:32 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 12 Mar 2012 19:31:24 +0000 (12:31 -0700)
commit e7c248a049c2aac21bded0b0722caee6f0e57256 upstream.

The jack detection on WM1811 is often required during system suspend, add
it as another check when deciding if we should suspend.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mfd/wm8994-core.c

index 61894fced8ea281570bf80320fd593efa0d25740..9302d21d764003e725dcde1eda095a0aa92186d1 100644 (file)
@@ -252,6 +252,20 @@ static int wm8994_suspend(struct device *dev)
                break;
        }
 
+       switch (wm8994->type) {
+       case WM1811:
+               ret = wm8994_reg_read(wm8994, WM8994_ANTIPOP_2);
+               if (ret < 0) {
+                       dev_err(dev, "Failed to read jackdet: %d\n", ret);
+               } else if (ret & WM1811_JACKDET_MODE_MASK) {
+                       dev_dbg(dev, "CODEC still active, ignoring suspend\n");
+                       return 0;
+               }
+               break;
+       default:
+               break;
+       }
+
        /* Disable LDO pulldowns while the device is suspended if we
         * don't know that something will be driving them. */
        if (!wm8994->ldo_ena_always_driven)