|
@@ -1139,15 +1139,13 @@ static int wm8903_add_widgets(struct snd_soc_codec *codec)
|
|
static int wm8903_set_bias_level(struct snd_soc_codec *codec,
|
|
static int wm8903_set_bias_level(struct snd_soc_codec *codec,
|
|
enum snd_soc_bias_level level)
|
|
enum snd_soc_bias_level level)
|
|
{
|
|
{
|
|
- u16 reg;
|
|
|
|
-
|
|
|
|
switch (level) {
|
|
switch (level) {
|
|
case SND_SOC_BIAS_ON:
|
|
case SND_SOC_BIAS_ON:
|
|
|
|
+ break;
|
|
case SND_SOC_BIAS_PREPARE:
|
|
case SND_SOC_BIAS_PREPARE:
|
|
- reg = snd_soc_read(codec, WM8903_VMID_CONTROL_0);
|
|
|
|
- reg &= ~(WM8903_VMID_RES_MASK);
|
|
|
|
- reg |= WM8903_VMID_RES_50K;
|
|
|
|
- snd_soc_write(codec, WM8903_VMID_CONTROL_0, reg);
|
|
|
|
|
|
+ snd_soc_update_bits(codec, WM8903_VMID_CONTROL_0,
|
|
|
|
+ WM8903_VMID_RES_MASK,
|
|
|
|
+ WM8903_VMID_RES_50K);
|
|
break;
|
|
break;
|
|
|
|
|
|
case SND_SOC_BIAS_STANDBY:
|
|
case SND_SOC_BIAS_STANDBY:
|
|
@@ -1174,10 +1172,9 @@ static int wm8903_set_bias_level(struct snd_soc_codec *codec,
|
|
WM8903_CP_DYN_V);
|
|
WM8903_CP_DYN_V);
|
|
}
|
|
}
|
|
|
|
|
|
- reg = snd_soc_read(codec, WM8903_VMID_CONTROL_0);
|
|
|
|
- reg &= ~(WM8903_VMID_RES_MASK);
|
|
|
|
- reg |= WM8903_VMID_RES_250K;
|
|
|
|
- snd_soc_write(codec, WM8903_VMID_CONTROL_0, reg);
|
|
|
|
|
|
+ snd_soc_update_bits(codec, WM8903_VMID_CONTROL_0,
|
|
|
|
+ WM8903_VMID_RES_MASK,
|
|
|
|
+ WM8903_VMID_RES_250K);
|
|
break;
|
|
break;
|
|
|
|
|
|
case SND_SOC_BIAS_OFF:
|
|
case SND_SOC_BIAS_OFF:
|