Commit e463ae1d authored by Chris Ball's avatar Chris Ball Committed by Takashi Iwai

ALSA: cs5535audio: enable OLPC's V_REFOUT bias when recording

The OLPC has a privacy light hooked up in series with the microphone's
V_Ref bias.  We want to activate the bias while we are capturing audio.
Signed-off-by: default avatarChris Ball <cjb@laptop.org>
Signed-off-by: default avatarAndres Salomon <dilinger@debian.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 189d34e7
...@@ -363,11 +363,27 @@ static int snd_cs5535audio_capture_open(struct snd_pcm_substream *substream) ...@@ -363,11 +363,27 @@ static int snd_cs5535audio_capture_open(struct snd_pcm_substream *substream)
if ((err = snd_pcm_hw_constraint_integer(runtime, if ((err = snd_pcm_hw_constraint_integer(runtime,
SNDRV_PCM_HW_PARAM_PERIODS)) < 0) SNDRV_PCM_HW_PARAM_PERIODS)) < 0)
return err; return err;
#ifdef CONFIG_OLPC
/* Enable the V_ref bias only while recording. */
err = snd_ac97_update_bits(cs5535au->ac97, AC97_AD_MISC,
1 << AC97_AD_VREFD_SHIFT, 0);
if (err < 0)
snd_printk(KERN_ERR "Error updating AD_MISC %d\n", err);
#endif
return 0; return 0;
} }
static int snd_cs5535audio_capture_close(struct snd_pcm_substream *substream) static int snd_cs5535audio_capture_close(struct snd_pcm_substream *substream)
{ {
int err;
struct cs5535audio *cs5535au = snd_pcm_substream_chip(substream);
#ifdef CONFIG_OLPC
/* Disable V_ref bias. */
err = snd_ac97_update_bits(cs5535au->ac97, AC97_AD_MISC,
1 << AC97_AD_VREFD_SHIFT, 1 << AC97_AD_VREFD_SHIFT);
#endif
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment