• Hans de Goede's avatar
    ASoC: rt5670: Remove ADC vol-ctrl mute bits poking from Sto1 ADC mixer settings · 674e4ff4
    Hans de Goede authored
    The SND_SOC_DAPM_MIXER declaration for "Sto1 ADC MIXL" and "Sto1 ADC MIXR"
    was using the mute bits from the RT5670_STO1_ADC_DIG_VOL control as mixer
    master mute bits.
    
    But these bits are already exposed to userspace as controls as part of the
    "ADC Capture Volume" / "ADC Capture Switch" control pair:
    
            SOC_DOUBLE("ADC Capture Switch", RT5670_STO1_ADC_DIG_VOL,
                    RT5670_L_MUTE_SFT, RT5670_R_MUTE_SFT, 1, 1),
            SOC_DOUBLE_TLV("ADC Capture Volume", RT5670_STO1_ADC_DIG_VOL,
                            RT5670_L_VOL_SFT, RT5670_R_VOL_SFT,
                            127, 0, adc_vol_tlv),
    
    Both the fact that the mute bits belong to the same reg as the vol-ctrl
    and the "Digital Mixer Path" diagram in the datasheet clearly shows that
    these mute bits are not part of the mixer and having 2 separate controls
    poking at the same bits is a bad idea.
    
    Remove the master-mute bits settings from the  "Sto1 ADC MIXL" and
    "Sto1 ADC MIXR" DAPM widget declarations, avoiding these bits getting
    poked from 2 different places.
    
    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 already
    set the "ADC Capture Switch" as needed.
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20210215142118.308516-4-hdegoede@redhat.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    674e4ff4
rt5670.c 97.2 KB