A critical side-effect was observed along with the commit 62d5ae4cafb7 ("ASoC: max98090: save and restore SHDN when changing sensitive registers").
When keep playing something, (e.g. sox -n -t s16 -r 48000 -c 2 - synth sine 440 vol 0.1 | \ aplay -D hw:0,0 -f S16_LE -r 48000 -c 2)
the recorded sound has chance to break (clipping). (e.g. while [ 1 ]; do arecord -q -f S16_LE -d 2 -r 48000 -c 2 test.raw \ sox -t s16 -r 48000 -c 2 test.raw -n stat \ ... done)
The series reverts all related commits. I feel really sorry for the whole mess.
Tzung-Bi Shih (3): ASoC: max98090: revert invalid fix for handling SHDN ASoC: dapm: remove snd_soc_dapm_put_enum_double_locked ASoC: core: remove SND_SOC_BYTES_E
include/sound/soc-dapm.h | 2 - include/sound/soc.h | 6 - sound/soc/codecs/max98090.c | 434 ++++++++++-------------------------- sound/soc/codecs/max98090.h | 3 +- sound/soc/soc-dapm.c | 54 ++--- 5 files changed, 137 insertions(+), 362 deletions(-)