summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorShuming Fan <shumingf@realtek.com>2023-02-10 11:21:41 +0300
committerMark Brown <broonie@kernel.org>2023-02-10 18:08:13 +0300
commite093e74b819b38074f07289da9933f9c413337ab (patch)
tree4183a85cbd8ac29bc045f5668ca721d2f0fb64f6 /sound
parent1ad059a15707cfb066ae3d7342d59770f04aac5a (diff)
downloadlinux-e093e74b819b38074f07289da9933f9c413337ab.tar.xz
ASoC: rt712-sdca: fix coding style and unconditionally return issues
This patch fixes 1. coding style issues 2. check if the setting was set already in rt712_sdca_mux_put callback Signed-off-by: Shuming Fan <shumingf@realtek.com> Link: https://lore.kernel.org/r/20230210082141.24077-1-shumingf@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/rt712-sdca.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/sound/soc/codecs/rt712-sdca.c b/sound/soc/codecs/rt712-sdca.c
index cc3f6dae1871..8d2fa769bb2e 100644
--- a/sound/soc/codecs/rt712-sdca.c
+++ b/sound/soc/codecs/rt712-sdca.c
@@ -366,8 +366,9 @@ static void rt712_sdca_btn_check_handler(struct work_struct *work)
break;
}
}
- } else
+ } else {
rt712->jack_type = 0;
+ }
dev_dbg(&rt712->slave->dev, "%s, btn_type=0x%x\n", __func__, btn_type);
snd_soc_jack_report(rt712->hs_jack, rt712->jack_type | btn_type,
@@ -707,6 +708,7 @@ static int rt712_sdca_mux_put(struct snd_kcontrol *kcontrol,
struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
unsigned int *item = ucontrol->value.enumerated.item;
unsigned int mask_sft;
+ unsigned int val;
if (item[0] >= e->items)
return -EINVAL;
@@ -718,6 +720,11 @@ static int rt712_sdca_mux_put(struct snd_kcontrol *kcontrol,
else
return -EINVAL;
+ rt712_sdca_index_read(rt712, RT712_VENDOR_HDA_CTL, RT712_MIXER_CTL1, &val);
+ val = (val >> mask_sft) & 0x3;
+ if (!val)
+ return 0;
+
rt712_sdca_index_write(rt712, RT712_VENDOR_HDA_CTL,
RT712_MIXER_CTL1, 0x3fff);
rt712_sdca_index_update_bits(rt712, RT712_VENDOR_HDA_CTL,
@@ -1094,19 +1101,24 @@ static int rt712_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
}
/* set sampling frequency */
- if (dai->id == RT712_AIF1) {
+ switch (dai->id) {
+ case RT712_AIF1:
regmap_write(rt712->regmap,
SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_CS01, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX, 0),
sampling_rate);
regmap_write(rt712->regmap,
SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_CS11, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX, 0),
sampling_rate);
- }
-
- if (dai->id == RT712_AIF2)
+ break;
+ case RT712_AIF2:
regmap_write(rt712->regmap,
SDW_SDCA_CTL(FUNC_NUM_AMP, RT712_SDCA_ENT_CS31, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX, 0),
sampling_rate);
+ break;
+ default:
+ dev_err(component->dev, "Wrong DAI id\n");
+ return -EINVAL;
+ }
return 0;
}