ALSA: cs5535audio: decouple HPF from V_REFOUT in OLPC code

We shouldn't be touching V_REFOUT when we toggle HPF/analog input, so just
drop that code.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Andres Salomon 2008-11-06 16:47:05 -05:00 committed by Takashi Iwai
parent b91254e75c
commit 1e2232bc70
1 changed files with 4 additions and 21 deletions

View File

@ -30,18 +30,11 @@ static int snd_cs5535audio_ctl_get(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
struct cs5535audio *cs5535au = snd_kcontrol_chip(kcontrol);
u16 reg1, reg2;
u8 val;
/* if either AD1888 VRef Bias and High Pass Filter are enabled
or the EC is not in analog mode then flag as not in analog mode.
No EC command to read current analog state so we cache that. */
reg1 = snd_ac97_read(cs5535au->ac97, AC97_AD_MISC);
reg2 = snd_ac97_read(cs5535au->ac97, AC97_AD_TEST2);
if ((reg1 & AD1888_VREFOUT_EN_BIT) && (reg2 & AD1888_HPF_EN_BIT))
ucontrol->value.integer.value[0] = 1;
else
ucontrol->value.integer.value[0] = 0;
val = snd_ac97_read(cs5535au->ac97, AC97_AD_TEST2);
val >>= AC97_AD_HPFD_SHIFT;
ucontrol->value.integer.value[0] = val & 0x1;
return 0;
}
@ -57,16 +50,6 @@ static int snd_cs5535audio_ctl_put(struct snd_kcontrol *kcontrol,
/* value is 1 if analog input is desired */
value = ucontrol->value.integer.value[0];
/* sets High Z on VREF Bias if 1 */
if (value)
err = snd_ac97_update_bits(ac97, AC97_AD_MISC,
AD1888_VREFOUT_EN_BIT, AD1888_VREFOUT_EN_BIT);
else
err = snd_ac97_update_bits(ac97, AC97_AD_MISC,
AD1888_VREFOUT_EN_BIT, 0);
if (err < 0)
snd_printk(KERN_ERR "Error updating AD_MISC %d\n", err);
/* turns off High Pass Filter if 1 */
if (value)
err = snd_ac97_update_bits(ac97, AC97_AD_TEST2,