ASoC: codec: wsa884x: make use of new mute_unmute_on_trigger flag
authorNeil Armstrong <neil.armstrong@linaro.org>
Mon, 11 Dec 2023 11:40:57 +0000 (12:40 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 11 Dec 2023 12:54:15 +0000 (12:54 +0000)
This fix is based on commit [1] fixing click and pop sounds during
SoundWire port start because PA is left unmuted.

making use of new mute_unmute_on_trigger flag and removing unmute
at PA setup, removes the Click/Pop issue at SoundWire enable.

[1] 805ce81826c8 ("ASoC: codecs: wsa883x: make use of new mute_unmute_on_trigger flag")

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://msgid.link/r/20231211-topic-sm8x50-upstream-wsa884x-fix-plop-v1-1-0dc630a19172@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wsa884x.c

index 993d76b18b5367716e5aa10119b4240a76aa8c04..f2653df84e4afcc3d7a44f44e310ef269e75c97c 100644 (file)
@@ -1654,15 +1654,9 @@ static int wsa884x_spkr_event(struct snd_soc_dapm_widget *w,
                snd_soc_component_write_field(component, WSA884X_PDM_WD_CTL,
                                              WSA884X_PDM_WD_CTL_PDM_WD_EN_MASK,
                                              0x1);
-               snd_soc_component_write_field(component, WSA884X_PA_FSM_EN,
-                                             WSA884X_PA_FSM_EN_GLOBAL_PA_EN_MASK,
-                                             0x1);
 
                break;
        case SND_SOC_DAPM_PRE_PMD:
-               snd_soc_component_write_field(component, WSA884X_PA_FSM_EN,
-                                             WSA884X_PA_FSM_EN_GLOBAL_PA_EN_MASK,
-                                             0x0);
                snd_soc_component_write_field(component, WSA884X_PDM_WD_CTL,
                                              WSA884X_PDM_WD_CTL_PDM_WD_EN_MASK,
                                              0x0);
@@ -1786,6 +1780,7 @@ static const struct snd_soc_dai_ops wsa884x_dai_ops = {
        .hw_free = wsa884x_hw_free,
        .mute_stream = wsa884x_mute_stream,
        .set_stream = wsa884x_set_stream,
+       .mute_unmute_on_trigger = true,
 };
 
 static struct snd_soc_dai_driver wsa884x_dais[] = {