Skip to content

Commit 70d1d30

Browse files
wenliangwubroonie
authored andcommitted
ASoC: mediatek: mt8188: correct etdm control return value
In mt8188_etdm_clk_src_sel_put() function, val retrieved by FIELD_PREP is shifted to the corresponding bit filed, so it can compare with the register value directly. Originally, the redundant bit shift of the register value results in the wrong comparison result, so we remove bit shift operation in the patch. Fixes: 2babb47 ("ASoC: mediatek: mt8188: support etdm in platform driver") Signed-off-by: Trevor Wu <trevor.wu@mediatek.com> Link: https://lore.kernel.org/r/20230215125017.16044-1-trevor.wu@mediatek.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 51c58a1 commit 70d1d30

1 file changed

Lines changed: 0 additions & 8 deletions

File tree

sound/soc/mediatek/mt8188/mt8188-dai-etdm.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -679,44 +679,36 @@ static int mt8188_etdm_clk_src_sel_put(struct snd_kcontrol *kcontrol,
679679
unsigned int old_val;
680680
unsigned int mask;
681681
unsigned int reg;
682-
unsigned int shift;
683682

684683
if (source >= e->items)
685684
return -EINVAL;
686685

687686
if (!strcmp(kcontrol->id.name, "ETDM_OUT1_Clock_Source")) {
688687
reg = ETDM_OUT1_CON4;
689688
mask = ETDM_OUT_CON4_CLOCK_MASK;
690-
shift = ETDM_OUT_CON4_CLOCK_SHIFT;
691689
val = FIELD_PREP(ETDM_OUT_CON4_CLOCK_MASK, source);
692690
} else if (!strcmp(kcontrol->id.name, "ETDM_OUT2_Clock_Source")) {
693691
reg = ETDM_OUT2_CON4;
694692
mask = ETDM_OUT_CON4_CLOCK_MASK;
695-
shift = ETDM_OUT_CON4_CLOCK_SHIFT;
696693
val = FIELD_PREP(ETDM_OUT_CON4_CLOCK_MASK, source);
697694
} else if (!strcmp(kcontrol->id.name, "ETDM_OUT3_Clock_Source")) {
698695
reg = ETDM_OUT3_CON4;
699696
mask = ETDM_OUT_CON4_CLOCK_MASK;
700-
shift = ETDM_OUT_CON4_CLOCK_SHIFT;
701697
val = FIELD_PREP(ETDM_OUT_CON4_CLOCK_MASK, source);
702698
} else if (!strcmp(kcontrol->id.name, "ETDM_IN1_Clock_Source")) {
703699
reg = ETDM_IN1_CON2;
704700
mask = ETDM_IN_CON2_CLOCK_MASK;
705-
shift = ETDM_IN_CON2_CLOCK_SHIFT;
706701
val = FIELD_PREP(ETDM_IN_CON2_CLOCK_MASK, source);
707702
} else if (!strcmp(kcontrol->id.name, "ETDM_IN2_Clock_Source")) {
708703
reg = ETDM_IN2_CON2;
709704
mask = ETDM_IN_CON2_CLOCK_MASK;
710-
shift = ETDM_IN_CON2_CLOCK_SHIFT;
711705
val = FIELD_PREP(ETDM_IN_CON2_CLOCK_MASK, source);
712706
} else {
713707
return -EINVAL;
714708
}
715709

716710
regmap_read(afe->regmap, reg, &old_val);
717711
old_val &= mask;
718-
old_val >>= shift;
719-
720712
if (old_val == val)
721713
return 0;
722714

0 commit comments

Comments
 (0)