From: Shuming Fan Date: Fri, 15 Sep 2023 02:05:30 +0000 (+0800) Subject: ASoC: rt1015: fix the first word being cut off X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=74d71f628db99987d43d242ea4d3631ef0a906d0;p=linux.git ASoC: rt1015: fix the first word being cut off This patch adds a control that there are four options to control the digital volume output. The user could select "immediate" to make volume updates immediately. In default, the driver selects the volume update with "zero detection + soft inc/dec change". Signed-off-by: Shuming Fan Link: https://lore.kernel.org/r/20230915020530.83452-1-shumingf@realtek.com Signed-off-by: Mark Brown --- diff --git a/sound/soc/codecs/rt1015.c b/sound/soc/codecs/rt1015.c index 99ec0f9a83626..1250cfaf2adcb 100644 --- a/sound/soc/codecs/rt1015.c +++ b/sound/soc/codecs/rt1015.c @@ -546,6 +546,16 @@ static int rt1015_bypass_boost_put(struct snd_kcontrol *kcontrol, return 0; } +static const char * const rt1015_dac_output_vol_select[] = { + "immediate", + "zero detection + immediate change", + "zero detection + inc/dec change", + "zero detection + soft inc/dec change", +}; + +static SOC_ENUM_SINGLE_DECL(rt1015_dac_vol_ctl_enum, + RT1015_DAC3, 2, rt1015_dac_output_vol_select); + static const struct snd_kcontrol_new rt1015_snd_controls[] = { SOC_SINGLE_TLV("DAC Playback Volume", RT1015_DAC1, RT1015_DAC_VOL_SFT, 127, 0, dac_vol_tlv), @@ -556,6 +566,9 @@ static const struct snd_kcontrol_new rt1015_snd_controls[] = { SOC_ENUM("Mono LR Select", rt1015_mono_lr_sel), SOC_SINGLE_EXT("Bypass Boost", SND_SOC_NOPM, 0, 1, 0, rt1015_bypass_boost_get, rt1015_bypass_boost_put), + + /* DAC Output Volume Control */ + SOC_ENUM("DAC Output Control", rt1015_dac_vol_ctl_enum), }; static int rt1015_is_sys_clk_from_pll(struct snd_soc_dapm_widget *source,