Re: [PATCH 3/4] ASoC: wm8940: Mute also the speaker output

From: Charles Keepax
Date: Wed Dec 14 2022 - 08:10:30 EST


On Wed, Dec 14, 2022 at 01:37:42PM +0100, Lukasz Majewski wrote:
> Without this change the BTL speaker produces some
> "distortion" noise when test program
> (speaker-test -t waw) is ended with ctrl+c.
>
> As our design uses speaker outputs to drive BTL speaker,
> it was necessary to also mute the speaker via the codec
> internal WM8940_SPKVOL register with setting
> WM8940_SPKMUTE bit.
>
> Signed-off-by: Lukasz Majewski <lukma@xxxxxxx>
> ---
> + spkvol_reg &= ~WM8940_SPKMUTE;
> + if (mute) {
> mute_reg |= 0x40;
> + spkvol_reg |= WM8940_SPKMUTE;
> + }
> +
> + ret = snd_soc_component_write(component, WM8940_SPKVOL, spkvol_reg);
> + if (ret)
> + return ret;

This bit is also controlled by the "Speaker Playback Switch" so
you probably need some locking between them to stop them
clobbering each other.

Thanks,
Charles