]> git.baikalelectronics.ru Git - kernel.git/commit
ASoC: codec: wm8960: complete discharge on BIAS OFF->STANDBY
authorViorel Suman <viorel.suman@nxp.com>
Tue, 8 Feb 2022 12:17:27 +0000 (14:17 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 14 Feb 2022 12:52:58 +0000 (12:52 +0000)
commit7443e637b848ef9ffbaa8e46e0dbc3299106a7f6
treed61c64bbc8778af45b589ab37652de9743590138
parent6f4de58c2ca279379dfbbca1513392f962536f4d
ASoC: codec: wm8960: complete discharge on BIAS OFF->STANDBY

On BIAS STANDBY->OFF transition the current implementation sleeps
600ms on suspend in order to discharge the chip. The suspend is
propagated from "snd_soc_suspend" call for all audio cards in a
serial fashion, thus in case of boards like i.MX8DXL EVK which has
3 distinct WM8960 codecs the total cumulated sleep on suspend is 1.8
seconds.

On the other hand the BIAS OFF->STANDBY transition happens
asynchronously with regard to "snd_soc_resume" - the call is
propagated from "soc_resume_deferred" which is just scheduled
from "snd_soc_resume", each card having its own work scheduled to
execute "soc_resume_deferred" call.

The patch performs discharge completion on BIAS OFF->STANDBY transition
so that the cumulated effect on suspend described above is avoided
and discharge is completed in paralel in case of multiple WM8960
codecs on the board.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Link: https://lore.kernel.org/r/20220208121727.4461-1-viorel.suman@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wm8960.c