ASoC: nau8825: Fix jack detection across suspend
authorBen Zhang <benzh@chromium.org>
Fri, 25 Mar 2016 23:10:39 +0000 (16:10 -0700)
committerMark Brown <broonie@kernel.org>
Mon, 28 Mar 2016 09:40:34 +0000 (10:40 +0100)
commite6cee90075c0ff261ff7eef8ad892429f028e194
treead2472f6c3e5958c970905dcab859627c10f00a3
parentf55532a0c0b8bb6148f4e07853b876ef73bc69ca
ASoC: nau8825: Fix jack detection across suspend

Jack plug status is rechecked at resume to handle plug/unplug
in S3 when the chip has no power.

Suspend/resume callbacks are moved from the i2c dev_pm_ops to
snd_soc_codec_driver. soc_resume_deferred is a delayed work
which may trigger nau8825_set_bias_level. The bias change races
against dev_pm_ops, causing jack detection issues.
soc_resume_deferred ensures bias change and snd_soc_codec_driver
suspend/resume are sequenced correctly.

Signed-off-by: Ben Zhang <benzh@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/nau8825.c