Add system suspend and resume handlers so that the cs42l42 is cleanly put into power-off state during system suspend and the registers are restored in resume.
The first two patches separate out two small changes that can stand alone and are needed to enable the system suspend implementation:
1) Don't rely on there being a jack unplug IRQ before a plug IRQ. There won't be if the unplug and plug happened while in system suspend.
2) Put a mutex around the entire IRQ handling so that the suspend can ensure the last run of the IRQ handler has completed before it powers down.
Changes since V1: - Hold irq_lock mutex while restoring registers
Richard Fitzgerald (3): ASoC: cs42l42: Report full jack status when plug is detected ASoC: cs42l42: Change jack_detect_mutex to a lock of all IRQ handling ASoC: cs42l42: Handle system suspend
sound/soc/codecs/cs42l42.c | 166 ++++++++++++++++++++++++++++++++++++++++++--- sound/soc/codecs/cs42l42.h | 7 +- 2 files changed, 163 insertions(+), 10 deletions(-)