Re: [alsa-devel] 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@viatech.com.cn wrote :
-----邮件原件----- 发件人: Anisse Astier [mailto:anisse@astier.eu] 发送时间: 2012年2月11日 1:56 收件人: alsa-devel@alsa-project.org 抄送: Takashi Iwai; Lydia Wang 主题: VT1705 : Mic not working with power_save
Hi,
On the hardware described in attached alsa-info (VT1705), I have the following problem:
- mic doesn't work
- if, while recording, we switch "input source", mic works during the recording session.
Passing power_save=0 as a parameter to snd-hda-intel solves the problem.
It was reproduced on linus' master branch, tiwai's for-next branch, and 3.2 branch.
Regards,
Anisse
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.
-----邮件原件----- 发件人: Anisse Astier [mailto:anisse@astier.eu] 发送时间: 2012年2月13日 17:20 收件人: Lydia Wang 抄送: tiwai@suse.de; alsa-devel@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@viatech.com.cn wrote :
-----邮件原件----- 发件人: Anisse Astier [mailto:anisse@astier.eu] 发送时间: 2012年2月11日 1:56 收件人: alsa-devel@alsa-project.org 抄送: Takashi Iwai; Lydia Wang 主题: VT1705 : Mic not working with power_save
Hi,
On the hardware described in attached alsa-info (VT1705), I have the following problem:
- mic doesn't work
- if, while recording, we switch "input source", mic works during the recording session.
Passing power_save=0 as a parameter to snd-hda-intel solves the problem.
It was reproduced on linus' master branch, tiwai's for-next branch, and 3.2 branch.
Regards,
Anisse
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.
Lydia
On Mon, 13 Feb 2012 17:30:57 +0800, LydiaWang@viatech.com.cn wrote :
-----邮件原件----- 发件人: Anisse Astier [mailto:anisse@astier.eu] 发送时间: 2012年2月13日 17:20 收件人: Lydia Wang 抄送: tiwai@suse.de; alsa-devel@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@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.
Anisse
At Mon, 13 Feb 2012 11:06:53 +0100, Anisse Astier wrote:
On Mon, 13 Feb 2012 17:30:57 +0800, LydiaWang@viatech.com.cn wrote :
-----邮件原件----- 发件人: Anisse Astier [mailto:anisse@astier.eu] 发送时间: 2012年2月13日 17:20 收件人: Lydia Wang 抄送: tiwai@suse.de; alsa-devel@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@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,
On Mon, 13 Feb 2012 11:31:52 +0100, Takashi Iwai tiwai@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@viatech.com.cn wrote :
-----邮件原件----- 发件人: Anisse Astier [mailto:anisse@astier.eu] 发送时间: 2012年2月13日 17:20 收件人: Lydia Wang 抄送: tiwai@suse.de; alsa-devel@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@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])
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,break;
It works! Tested-by: Anisse Astier anisse@astier.eu
I wouldn't mind a Cc: stable too.
Thanks,
Anisse
At Mon, 13 Feb 2012 14:59:16 +0100, Anisse Astier wrote:
On Mon, 13 Feb 2012 11:31:52 +0100, Takashi Iwai tiwai@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@viatech.com.cn wrote :
-----邮件原件----- 发件人: Anisse Astier [mailto:anisse@astier.eu] 发送时间: 2012年2月13日 17:20 收件人: Lydia Wang 抄送: tiwai@suse.de; alsa-devel@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@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])
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,break;
It works! Tested-by: Anisse Astier anisse@astier.eu
I wouldn't mind a Cc: stable too.
Yes, definitely. I applied the patch now to the sound git tree.
thanks,
Takashi
participants (3)
-
Anisse Astier
-
LydiaWang@viatech.com.cn
-
Takashi Iwai