|
@@ -256,6 +256,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)
|