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 <shumingf@realtek.com>
Link: https://lore.kernel.org/r/20230915020530.83452-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Shuming Fan 2023-09-15 10:05:30 +08:00 committed by Mark Brown
parent 642d1de63c
commit 74d71f628d
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -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,