ASoC: rt5670: Remove 'OUT Channel Switch' control
The "OUT Channel Switch" control is a left over from code copied from thr rt5640 codec driver. With the rt5640 codec driver the output volume controls have 2 pairs of mute bits: bit 7, 15: Mute Control for Spk/Headphone/Line Output Port bit 6, 14: Mute Control for Spk/Headphone/Line Volume Channel Bits 7 and 15 are normal mute bits on the rt5670/5672 which are controlled by 2 dapm widgets: SND_SOC_DAPM_SWITCH("LOUT L Playback", SND_SOC_NOPM, 0, 0, &lout_l_enable_control), SND_SOC_DAPM_SWITCH("LOUT R Playback", SND_SOC_NOPM, 0, 0, &lout_r_enable_control), But on the 5670/5672 bit 6 is always reserved, where as bit 14 is "LOUT Differential Mode" on the 5670 and also reserved on the 5672. So the "OUT Channel Switch" control which is controlling bits 6+14 of the "LINE Output Control" register is bogus -> remove it. This should not cause any issues for userspace. AFAICT the rt567x codecs are only used on x86/ACPI devices and the UCM profiles used there do not use the "OUT Channel Switch" control. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20210215142118.308516-2-hdegoede@redhat.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
8726396851
commit
d917b5dde6
@ -637,8 +637,6 @@ static const struct snd_kcontrol_new rt5670_snd_controls[] = {
|
||||
RT5670_L_VOL_SFT, RT5670_R_VOL_SFT,
|
||||
39, 1, out_vol_tlv),
|
||||
/* OUTPUT Control */
|
||||
SOC_DOUBLE("OUT Channel Switch", RT5670_LOUT1,
|
||||
RT5670_VOL_L_SFT, RT5670_VOL_R_SFT, 1, 1),
|
||||
SOC_DOUBLE_TLV("OUT Playback Volume", RT5670_LOUT1,
|
||||
RT5670_L_VOL_SFT, RT5670_R_VOL_SFT, 39, 1, out_vol_tlv),
|
||||
/* DAC Digital Volume */
|
||||
|
@ -212,12 +212,8 @@
|
||||
/* global definition */
|
||||
#define RT5670_L_MUTE (0x1 << 15)
|
||||
#define RT5670_L_MUTE_SFT 15
|
||||
#define RT5670_VOL_L_MUTE (0x1 << 14)
|
||||
#define RT5670_VOL_L_SFT 14
|
||||
#define RT5670_R_MUTE (0x1 << 7)
|
||||
#define RT5670_R_MUTE_SFT 7
|
||||
#define RT5670_VOL_R_MUTE (0x1 << 6)
|
||||
#define RT5670_VOL_R_SFT 6
|
||||
#define RT5670_L_VOL_MASK (0x3f << 8)
|
||||
#define RT5670_L_VOL_SFT 8
|
||||
#define RT5670_R_VOL_MASK (0x3f)
|
||||
|
Loading…
Reference in New Issue
Block a user