[alsa-devel] VT1705 : Mic not working with power_save
Anisse Astier
anisse at astier.eu
Mon Feb 13 14:59:16 CET 2012
On Mon, 13 Feb 2012 11:31:52 +0100, Takashi Iwai <tiwai at suse.de> wrote :
> 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,
It works!
Tested-by: Anisse Astier <anisse at astier.eu>
I wouldn't mind a Cc: stable too.
Thanks,
Anisse
More information about the Alsa-devel
mailing list