Hi Mark, > Hi Mark, > > > 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. > > > > > @@ -465,9 +465,18 @@ static int wm8940_mute(struct snd_soc_dai > > > *dai, int mute, int direction) { > > > > > + 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; > > > > > > return snd_soc_component_write(component, WM8940_DAC, > > > mute_reg); > > > > In addition to the issue Charles raised this is simply not what the > > mute callback should do, the mute callback should specifically mute > > the digital input (with the goal of masking any glitching on there > > while clocks are started/stopped). > > Ok > > > Looking at the driver the device > > supports analogue bypass paths to the speaker - these will be broken > > by your patch > > I was not aware about this side effect. I just wanted to be sure that > the speaker is muted. > > > so if you genuinely need some workaround in this area > > I'd be looking at the Speaker Mixer PCM Playback Switch rather than > > muting the speaker as a whole. > > I would be more than happy if I could use for example the 'amixer' > command to setup the audio correctly without this patch. > > For example - on this system - before I run any speaker test I need to > call: amixer -d set 'Speaker Mixer PCM',0 on > > to unmute the system. > This patch steamed from 4.4 Linux. On the newer Linux version the "distortion" problem is not present anymore. I will drop this patch. > > If the device just can't cope without > > an input then ignore_mdown_time might be what you're looking for, it > > looks like the device doesn't have any lengthy sleeps in the power > > up/down paths so that should be fine so long as it doesn't > > pop/click. > > Ok. I will check this as well. > > > I'd also check there's not some other system configuration issue > > here which is more obvious when the input from the DAC stops > > getting input, check that you don't see similar issues when silence > > is played for example. It might be worth checking that none of the > > analogue bypass paths are enabled. > > Thanks for your hints. I will investigate it further. > > It looks like this patch is some kind of a hack, to fix my system > configuration and shall be dropped in v2. > > > Best regards, > > Lukasz Majewski > > -- > > DENX Software Engineering GmbH, Managing Director: Wolfgang Denk > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: > lukma@xxxxxxx Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@xxxxxxx
Attachment:
pgp8bSc5QjEEB.pgp
Description: OpenPGP digital signature