lkml.org 
[lkml]   [2008]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH 9/14] ALSA: cs5535audio: enable OLPC's V_REFOUT bias when recording
From: Chris Ball <cjb@laptop.org>

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: Chris Ball <cjb@laptop.org>
Signed-off-by: Andres Salomon <dilinger@debian.org>
---
sound/pci/cs5535audio/cs5535audio_pcm.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/sound/pci/cs5535audio/cs5535audio_pcm.c b/sound/pci/cs5535audio/cs5535audio_pcm.c
index 6aa0c19..fa2a6b1 100644
--- a/sound/pci/cs5535audio/cs5535audio_pcm.c
+++ b/sound/pci/cs5535audio/cs5535audio_pcm.c
@@ -363,11 +363,27 @@ static int snd_cs5535audio_capture_open(struct snd_pcm_substream *substream)
if ((err = snd_pcm_hw_constraint_integer(runtime,
SNDRV_PCM_HW_PARAM_PERIODS)) < 0)
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;
}

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;
}

--
1.5.6.5


\
 
 \ /
  Last update: 2008-11-06 22:53    [W:0.287 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site