ASoC: rt5677: Use the regmap functions instead of the snd_soc functions
Subsystems (3)
Oder Chiou
maintainerPATCH 1/2 ASoC: rt5677: Use the regmap functions instead of the snd_soc functions
The patch uses the regmap functions instead of the snd_soc functions in some cases.
Signed-off-by Oder Chiou <[email protected]>
--- sound/soc/codecs/rt5677.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
sound/soc/codecs/rt5677.c +10 -3
@@ -925,6 +925,8 @@ static int is_sys_clk_from_pll(struct snd_soc_dapm_widget *source,static int is_using_asrc (struct snd_soc_dapm_widget *source,struct snd_soc_dapm_widget *sink) { +struct snd_soc_codec *codec = source->codec; +struct rt5677_priv *rt5677 =snd_soc_codec_get_drvdata (codec);unsigned int reg, shift, val;if (source->reg ==RT5677_ASRC_1 ) {
@@ -991,7 +993,9 @@ static int is_using_asrc(struct snd_soc_dapm_widget *source, } } - val = (snd_soc_read (source->codec, reg) >> shift) &0xf ; +regmap_read (rt5677->regmap, reg, &val); + val = (val >> shift) &0xf ; +switch (val) { case 1 ... 6:return 1 ;
@@ -4098,6 +4102,7 @@ static int rt5677_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width) { struct snd_soc_codec *codec = dai->codec; +struct rt5677_priv *rt5677 =snd_soc_codec_get_drvdata (codec);unsigned int val =0 ;if (rx_mask || tx_mask)
@@ -4135,10 +4140,12 @@ static int rt5677_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,switch (dai->id) {case RT5677_AIF1 : -snd_soc_update_bits (codec,RT5677_TDM1_CTRL1 ,0x1f00 , val); +regmap_update_bits (rt5677->regmap,RT5677_TDM1_CTRL1 ,0x1f00 , + val);break ;case RT5677_AIF2 : -snd_soc_update_bits (codec,RT5677_TDM2_CTRL1 ,0x1f00 , val); +regmap_update_bits (rt5677->regmap,RT5677_TDM2_CTRL1 ,0x1f00 , + val);break ;default :break ;
Signature · 1 line
1.8.1.1.439.g50a6b54
Oder Chiou
maintainerPATCH v2 2/2 ASoC: rt5677: Add the slot_width "25" support in the TDM mode
Add the slot_width "25" support in the TDM mode for the Intel platform.
Signed-off-by Oder Chiou <[email protected]>
--- sound/soc/codecs/rt5677.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
sound/soc/codecs/rt5677.c +7 -1
@@ -4103,7 +4103,7 @@ static int rt5677_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask, {struct snd_soc_codec *codec = dai->codec;struct rt5677_priv *rt5677 =snd_soc_codec_get_drvdata (codec); -unsigned int val =0 ; +unsigned int val =0 , slot_width_25 =0 ;if (rx_mask || tx_mask) val |= (1 <<12 );
@@ -4127,6 +4127,8 @@ static int rt5677_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,case 20 : val |= (1 <<8 );break ; +case 25 : + slot_width_25 =0x8080 ;case 24 : val |= (2 <<8 );break ;
@@ -4142,10 +4144,14 @@ static int rt5677_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,case RT5677_AIF1 :regmap_update_bits (rt5677->regmap,RT5677_TDM1_CTRL1 ,0x1f00 , val); +regmap_update_bits (rt5677->regmap,RT5677_DIG_MISC ,0x8000 , + slot_width_25);break ;case RT5677_AIF2 :regmap_update_bits (rt5677->regmap,RT5677_TDM2_CTRL1 ,0x1f00 , val); +regmap_update_bits (rt5677->regmap,RT5677_DIG_MISC ,0x80 , + slot_width_25);break ;default :break ;
Signature · 1 line
1.8.1.1.439.g50a6b54
Quoted 2 lines · Oder Chiou
The patch uses the regmap functions instead of the
snd_socfunctions in some cases.
Applied both, thanks.