ASoC: wm8580: Use snd_soc_update_bits for read-modify-write
Subsystems (3)
PATCH v2 1/1 ASoC: wm8580: Use snd_soc_update_bits for read-modify-write
Use snd_soc_update_bits for read-modify-write register access instead of open-coding it using snd_soc_read and snd_soc_write
Signed-off-by Axel Lin <[email protected]>
---
v2: Fix below build warning:
CC sound/soc/codecs/wm8580.osound/soc/codecs/wm8580.c: In function 'wm8580_set_bias_level':sound/soc/codecs/wm8580.c:749: warning: unused variable 'reg'
sound/soc/codecs/wm8580.c | 22 +++++++++------------- 1 files changed, 9 insertions(+), 13 deletions(-)
sound/soc/codecs/wm8580.c +9 -13
@@ -430,8 +430,7 @@ static int wm8580_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,/* Always disable the PLL - it is not safe to leave it running * while reprogramming it. */ - reg =snd_soc_read (codec,WM8580_PWRDN2 ); -snd_soc_write (codec,WM8580_PWRDN2 , reg | pwr_mask); +snd_soc_update_bits (codec,WM8580_PWRDN2 , pwr_mask, pwr_mask);if (!freq_in || !freq_out)return 0 ;
@@ -449,8 +448,7 @@ static int wm8580_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,snd_soc_write (codec,WM8580_PLLA4 + offset, reg);/* All done, turn it on */ - reg =snd_soc_read (codec,WM8580_PWRDN2 ); -snd_soc_write (codec,WM8580_PWRDN2 , reg & ~pwr_mask); +snd_soc_update_bits (codec,WM8580_PWRDN2 , pwr_mask,0 );return 0 ; }
@@ -748,7 +746,6 @@ static int wm8580_digital_mute(struct snd_soc_dai *codec_dai, int mute)static int wm8580_set_bias_level (struct snd_soc_codec *codec,enum snd_soc_bias_level level) { -u16 reg;switch (level) {case SND_SOC_BIAS_ON :case SND_SOC_BIAS_PREPARE :
@@ -757,20 +754,19 @@ static int wm8580_set_bias_level(struct snd_soc_codec *codec,case SND_SOC_BIAS_STANDBY :if (codec->dapm.bias_level ==SND_SOC_BIAS_OFF ) {/* Power up and get individual control of the DACs */ - reg =snd_soc_read (codec,WM8580_PWRDN1 ); - reg &= ~(WM8580_PWRDN1_PWDN |WM8580_PWRDN1_ALLDACPD ); -snd_soc_write (codec,WM8580_PWRDN1 , reg); +snd_soc_update_bits (codec,WM8580_PWRDN1 , +WM8580_PWRDN1_PWDN | +WM8580_PWRDN1_ALLDACPD ,0 );/* Make VMID high impedance */ - reg =snd_soc_read (codec,WM8580_ADC_CONTROL1 ); - reg &= ~0x100 ; -snd_soc_write (codec,WM8580_ADC_CONTROL1 , reg); +snd_soc_update_bits (codec,WM8580_ADC_CONTROL1 , +0x100 ,0 ); }break ;case SND_SOC_BIAS_OFF : - reg =snd_soc_read (codec,WM8580_PWRDN1 ); -snd_soc_write (codec,WM8580_PWRDN1 , reg |WM8580_PWRDN1_PWDN ); +snd_soc_update_bits (codec,WM8580_PWRDN1 , +WM8580_PWRDN1_PWDN ,WM8580_PWRDN1_PWDN );break ; } codec->dapm.bias_level = level;
Signature · 1 line
1.7.4.1
Mark Brown
AppliedQuoted 2 lines · Axel Lin
Use
snd_soc_update_bitsfor read-modify-write register access instead of open-coding it usingsnd_soc_readandsnd_soc_write
Applied, thanks.