[alsa-devel] VT1705 : Mic not working with power_save

Takashi Iwai tiwai at suse.de
Mon Feb 13 11:31:52 CET 2012


At Mon, 13 Feb 2012 11:06:53 +0100,
Anisse Astier wrote:
> 
> On Mon, 13 Feb 2012 17:30:57 +0800, <LydiaWang at viatech.com.cn> wrote :
> 
> > > -----邮件原件-----
> > > 发件人: Anisse Astier [mailto:anisse at astier.eu]
> > > 发送时间: 2012年2月13日 17:20
> > > 收件人: Lydia Wang
> > > 抄送: tiwai at suse.de; alsa-devel at alsa-project.org
> > > 主题: Re: VT1705 : Mic not working with power_save
> > > 
> > > (adding back list in Cc, it was lost)
> > > 
> > > On Mon, 13 Feb 2012 10:02:27 +0800, <LydiaWang at viatech.com.cn> wrote :
> > > 
> > > >
> > > > Hi,
> > > >
> > > > The log showed that your machine had two microphones, one is an internal mic,
> > > > and the other is a rear mic. Which microphone did you use? The log showed
> > > > currently used mic is the internal mic. The rear mic was not plugged in a
> > > jack.
> > > >
> > > > Lydia
> > > 
> > > On this hardware, there's only an internal mic, and no physical jack to
> > > plug another input.
> > 
> > So " mic doesn't work " means recording fail or playback as aa-path fail?
> > And could you mail me log file when power_saver=1? Thanks.
> 
> Mic doesn't work means recording fails. Except if, during the recording,
> I use the "Input Source" control to change to another input, *and then
> back* to "Internal Mic".
> If I start another recording, it will still be silent unless I repeat the
> previous sequence.
> 
> I don't use mic directly for playback (with hardware a-a path)
> 
> Please find the full log and alsa-info in attachment with power_save=1.

Thanks.

I found the culprit.  It's because VT1705 has a secondary ADC that has
no input-mux while the primary ADC has one.  At the initialization,
the secondary ADC overwrites the MUX value always to zero because of
it.

The patch below should fix the problem.  Let me know if it works (at
best give your tested-by line).


thanks,

Takashi

---
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index e5842fe..afeb3e19 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -666,6 +666,8 @@ static void via_auto_init_analog_input(struct hda_codec *codec)
 	/* init input-src */
 	for (i = 0; i < spec->num_adc_nids; i++) {
 		int adc_idx = spec->inputs[spec->cur_mux[i]].adc_idx;
+		if (i > 0 && !spec->mux_nids[i])
+			break;
 		if (spec->mux_nids[adc_idx]) {
 			int mux_idx = spec->inputs[spec->cur_mux[i]].mux_idx;
 			snd_hda_codec_write(codec, spec->mux_nids[adc_idx], 0,


More information about the Alsa-devel mailing list