Dne 16. 02. 21 v 16:15 Hans de Goede napsal(a):
Hi,
On 2/15/21 7:09 PM, Jaroslav Kysela wrote:
Dne 15. 02. 21 v 15:21 Hans de Goede napsal(a):
The RT5670_L_MUTE_SFT and RT5670_R_MUTE_SFT bits (bits 15 and 7) of the RT5670_HP_VOL register are set / unset by the headphones deplop code run by rt5670_hp_event() on SND_SOC_DAPM_POST_PMU / SND_SOC_DAPM_PRE_PMD.
So we should not also export a control to userspace which toggles these same bits.
I think that it may be worth to preserve the full-mute functionality. According the datasheet, the register 0x02 has volume range -46.5dB..12dB. Even the lowest volume may produce an audible output.
I would cache the mute switch value in rt5670_priv and update the POST_PMU/PRE_PMD code to use this settings.
Yes that should work.
Note though that patch 4/4 adds a mute for the master volume control, even though I call it an "emulated" mute it is a full mute, it is just that we now have 2 switches, 1 mixer switch and 1 mute switch, which must both be true before we enable the path from the DAC through the mixer which sits directly behind the "DAC1 Playback Volume" control.
And we need that mute anyways because the speaker output does not have any volume control other then the master "DAC1 Playback Volume" which has the same issue of only going very soft and not going to a full mute.
So since we have a working mute in the master volume control, we don't really need one for the "HP Playback Volume" control. with that all said, your suggestion should work fine.
So the question is do we want to do as you suggest, or are we happy with just having the master mute ?
One hw mute per one hw output should be sufficient. Thank you for the explanation.
Jaroslav