diff options
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/wm8994-core.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c index 93f8599aba32..9b8d1ad28ee1 100644 --- a/drivers/mfd/wm8994-core.c +++ b/drivers/mfd/wm8994-core.c | |||
@@ -241,6 +241,20 @@ static int wm8994_suspend(struct device *dev) | |||
241 | break; | 241 | break; |
242 | } | 242 | } |
243 | 243 | ||
244 | switch (wm8994->type) { | ||
245 | case WM1811: | ||
246 | ret = wm8994_reg_read(wm8994, WM8994_ANTIPOP_2); | ||
247 | if (ret < 0) { | ||
248 | dev_err(dev, "Failed to read jackdet: %d\n", ret); | ||
249 | } else if (ret & WM1811_JACKDET_MODE_MASK) { | ||
250 | dev_dbg(dev, "CODEC still active, ignoring suspend\n"); | ||
251 | return 0; | ||
252 | } | ||
253 | break; | ||
254 | default: | ||
255 | break; | ||
256 | } | ||
257 | |||
244 | /* Disable LDO pulldowns while the device is suspended if we | 258 | /* Disable LDO pulldowns while the device is suspended if we |
245 | * don't know that something will be driving them. */ | 259 | * don't know that something will be driving them. */ |
246 | if (!wm8994->ldo_ena_always_driven) | 260 | if (!wm8994->ldo_ena_always_driven) |