Skip to contentSkip to conversation

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

PATCH In review Andres Salomon 1 participant 1 message Nov 6, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 9/14 ALSA: cs5535audio: enable OLPC's V_REFOUT bias when recording

From: Chris Ball <[email protected]>

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.

---
 sound/pci/cs5535audio/cs5535audio_pcm.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
sound/pci/cs5535audio/cs5535audio_pcm.c +16 -0
index 6aa0c19..fa2a6b1 100644
@@ -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;
 }
 
Signature · 1 line
1.5.6.5