Hello,
Quite some time ago I have faced similar issue with the sequence of the DAPM register writes [1] For that issue, I used a workaround within the twl4030 codec driver. Now I have again issue with the register write sequence.
The dac33 codec emmits a pop noise, when user enable the analog bypass path. The route cause in this codec are the DAPM update power and register write sequence: 1. User enable the bypass 2. DAPM power up sequence takes place 2.1 codec DAPM widgets got powered on, codec is enabled 2.2 External speaker enabled 3. The bit enabling the bypass got changed.
Step 3 cause a pop, which propagate to the speaker, since it is already enabled.
The first patch implements a new flag for the core to reorder the sequence to: 1. User enable the bypass 2. The bit enabling the bypass got changed. 3. DAPM power up sequence takes place 3.1 codec DAPM widgets got powered on, codec is enabled 3.2 External speaker enabled
The default sequence is kept, codec driver must ask to have the reordered sequence to avoid any side effect on other codecs.
[1]: http://mailman.alsa-project.org/pipermail/alsa-devel/2010-August/030024.html
Peter
--- Peter Ujfalusi (2): ASoC: core: Reordered DAPM update power on widgets ASoC: tlv320dac33: Request for reordered update power sequence
include/sound/soc-dapm.h | 1 + sound/soc/codecs/tlv320dac33.c | 1 + sound/soc/soc-dapm.c | 27 +++++++++++++++++++-------- 3 files changed, 21 insertions(+), 8 deletions(-)