[alsa-devel] ALC892, Clevo P150HM: Input Source gets reset to "Mic" every resume
Hi,
whenever I resume the machine, the Input Source would get changed back from "Internal Mic" to "Mic". This is a bit annoying, because pulseaudio is unaware of that change. As a result, everything looks fine in pavucontrol but no sound gets recorded. A quick look at alsamixer -c0 revealed the problem. My alsa info:
http://www.alsa-project.org/db/?f=c5776b615a5f3b9ae624e4250fb0c2b69118ce26
This is unrelated to the other problems I have been reporting, since this happens on a mostly-stock Fedora 3.1.2 kernel (the patch I added deals with xhci, not alsa).
Regards, Julian
2011/12/4 Julian Sikorski belegdol@gmail.com:
Hi,
whenever I resume the machine, the Input Source would get changed back from "Internal Mic" to "Mic". This is a bit annoying, because pulseaudio is unaware of that change. As a result, everything looks fine in pavucontrol but no sound gets recorded. A quick look at alsamixer -c0 revealed the problem. My alsa info:
http://www.alsa-project.org/db/?f=c5776b615a5f3b9ae624e4250fb0c2b69118ce26
This is unrelated to the other problems I have been reporting, since this happens on a mostly-stock Fedora 3.1.2 kernel (the patch I added deals with xhci, not alsa).
As alc892 has two [Audio Mixer] instead of [Audio Selector]
I wonder whether the hardware support a more an advanced "Input Source" controls to support
"Mic" "Internal Mic" "Line" "Mic + Internal Mic" "Mic + Line" "Internal Mic" + "Line"
instead of the current implementation
Simple mixer control 'Input Source',0 Capabilities: cenum Items: 'Mic' 'Internal Mic' 'Line' Item0: 'Mic'
Node 0x22 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Control: name="Input Source", index=1, device=0 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 12 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b 0x12 Node 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Control: name="Input Source", index=0, device=0 Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x80 0x80] [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b
2011/12/4 Julian Sikorski belegdol@gmail.com:
Hi,
whenever I resume the machine, the Input Source would get changed back from "Internal Mic" to "Mic". This is a bit annoying, because pulseaudio is unaware of that change. As a result, everything looks fine in pavucontrol but no sound gets recorded. A quick look at alsamixer -c0 revealed the problem. My alsa info:
http://www.alsa-project.org/db/?f=c5776b615a5f3b9ae624e4250fb0c2b69118ce26
This is unrelated to the other problems I have been reporting, since this happens on a mostly-stock Fedora 3.1.2 kernel (the patch I added deals with xhci, not alsa).
The problem seem can be reproduced by using hda-emu, it is init_capsrc_for_pin() and alc_auto_init_input_src() write value to cache before snd_hda_codec_resume_app() from cache
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
set 28 1
send: NID=0x23, VERB=0x360(set_amp_gain_mute,I:L#0), PARM=0x80 send: NID=0x23, VERB=0x350(set_amp_gain_mute,I:R#0), PARM=0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Internal Mic]
pm ** SUSPENDING ** ... ** RESUMING ** PM-Notified ... exec_init_verbs ...
init_capsrc_for_pin 18 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x0 receive: 0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x0 receive: 0x0 init capsrc for pin 19 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0 init capsrc for pin 1a send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x2 receive: 0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x0
alc_auto_init_input_src send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x80 send: NID=0x23, VERB=0x352(set_amp_gain_mute,I:R#2), PARM=0x80
snd_hda_codec_resume_app send: NID=0x23, VERB=0x363(set_amp_gain_mute,I:L#3), PARM=0x80 send: NID=0x23, VERB=0x353(set_amp_gain_mute,I:R#3), PARM=0x80 send: NID=0x23, VERB=0x364(set_amp_gain_mute,I:L#4), PARM=0x80 send: NID=0x23, VERB=0x354(set_amp_gain_mute,I:R#4), PARM=0x80 send: NID=0x23, VERB=0x365(set_amp_gain_mute,I:L#5), PARM=0x80 send: NID=0x23, VERB=0x355(set_amp_gain_mute,I:R#5), PARM=0x80 send: NID=0x23, VERB=0x366(set_amp_gain_mute,I:L#6), PARM=0x80 send: NID=0x23, VERB=0x356(set_amp_gain_mute,I:R#6), PARM=0x80 send: NID=0x23, VERB=0x367(set_amp_gain_mute,I:L#7), PARM=0x80 send: NID=0x23, VERB=0x357(set_amp_gain_mute,I:R#7), PARM=0x80 send: NID=0x23, VERB=0x368(set_amp_gain_mute,I:L#8), PARM=0x80 send: NID=0x23, VERB=0x358(set_amp_gain_mute,I:R#8), PARM=0x80 send: NID=0x23, VERB=0x369(set_amp_gain_mute,I:L#9), PARM=0x80 send: NID=0x23, VERB=0x359(set_amp_gain_mute,I:R#9), PARM=0x80 send: NID=0x23, VERB=0x36a(set_amp_gain_mute,I:L#10), PARM=0x80 send: NID=0x23, VERB=0x35a(set_amp_gain_mute,I:R#10), PARM=0x80 ...
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
W dniu 09.12.2011 14:32, Raymond Yau pisze:
2011/12/4 Julian Sikorski belegdol@gmail.com:
Hi,
whenever I resume the machine, the Input Source would get changed back from "Internal Mic" to "Mic". This is a bit annoying, because pulseaudio is unaware of that change. As a result, everything looks fine in pavucontrol but no sound gets recorded. A quick look at alsamixer -c0 revealed the problem. My alsa info:
http://www.alsa-project.org/db/?f=c5776b615a5f3b9ae624e4250fb0c2b69118ce26
This is unrelated to the other problems I have been reporting, since this happens on a mostly-stock Fedora 3.1.2 kernel (the patch I added deals with xhci, not alsa).
The problem seem can be reproduced by using hda-emu, it is init_capsrc_for_pin() and alc_auto_init_input_src() write value to cache before snd_hda_codec_resume_app() from cache
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
set 28 1
send: NID=0x23, VERB=0x360(set_amp_gain_mute,I:L#0), PARM=0x80 send: NID=0x23, VERB=0x350(set_amp_gain_mute,I:R#0), PARM=0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Internal Mic]
pm ** SUSPENDING ** ... ** RESUMING ** PM-Notified ... exec_init_verbs ...
init_capsrc_for_pin 18 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x0 receive: 0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x0 receive: 0x0 init capsrc for pin 19 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0 init capsrc for pin 1a send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x2 receive: 0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x0
alc_auto_init_input_src send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x80 send: NID=0x23, VERB=0x352(set_amp_gain_mute,I:R#2), PARM=0x80
snd_hda_codec_resume_app send: NID=0x23, VERB=0x363(set_amp_gain_mute,I:L#3), PARM=0x80 send: NID=0x23, VERB=0x353(set_amp_gain_mute,I:R#3), PARM=0x80 send: NID=0x23, VERB=0x364(set_amp_gain_mute,I:L#4), PARM=0x80 send: NID=0x23, VERB=0x354(set_amp_gain_mute,I:R#4), PARM=0x80 send: NID=0x23, VERB=0x365(set_amp_gain_mute,I:L#5), PARM=0x80 send: NID=0x23, VERB=0x355(set_amp_gain_mute,I:R#5), PARM=0x80 send: NID=0x23, VERB=0x366(set_amp_gain_mute,I:L#6), PARM=0x80 send: NID=0x23, VERB=0x356(set_amp_gain_mute,I:R#6), PARM=0x80 send: NID=0x23, VERB=0x367(set_amp_gain_mute,I:L#7), PARM=0x80 send: NID=0x23, VERB=0x357(set_amp_gain_mute,I:R#7), PARM=0x80 send: NID=0x23, VERB=0x368(set_amp_gain_mute,I:L#8), PARM=0x80 send: NID=0x23, VERB=0x358(set_amp_gain_mute,I:R#8), PARM=0x80 send: NID=0x23, VERB=0x369(set_amp_gain_mute,I:L#9), PARM=0x80 send: NID=0x23, VERB=0x359(set_amp_gain_mute,I:R#9), PARM=0x80 send: NID=0x23, VERB=0x36a(set_amp_gain_mute,I:L#10), PARM=0x80 send: NID=0x23, VERB=0x35a(set_amp_gain_mute,I:R#10), PARM=0x80 ...
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
The problem still exists in 3.2.7-1.fc16.x86_64 kernel, is there any chance for a fix?
Julian
2012/2/24, Julian Sikorski belegdol@gmail.com:
W dniu 09.12.2011 14:32, Raymond Yau pisze:
2011/12/4 Julian Sikorski belegdol@gmail.com:
Hi,
whenever I resume the machine, the Input Source would get changed back from "Internal Mic" to "Mic". This is a bit annoying, because pulseaudio is unaware of that change. As a result, everything looks fine in pavucontrol but no sound gets recorded. A quick look at alsamixer -c0 revealed the problem. My alsa info:
http://www.alsa-project.org/db/?f=c5776b615a5f3b9ae624e4250fb0c2b69118ce26
This is unrelated to the other problems I have been reporting, since this happens on a mostly-stock Fedora 3.1.2 kernel (the patch I added deals with xhci, not alsa).
The problem seem can be reproduced by using hda-emu, it is init_capsrc_for_pin() and alc_auto_init_input_src() write value to cache before snd_hda_codec_resume_app() from cache
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
set 28 1
send: NID=0x23, VERB=0x360(set_amp_gain_mute,I:L#0), PARM=0x80 send: NID=0x23, VERB=0x350(set_amp_gain_mute,I:R#0), PARM=0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Internal Mic]
pm ** SUSPENDING ** ... ** RESUMING ** PM-Notified ... exec_init_verbs ...
init_capsrc_for_pin 18 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x0 receive: 0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x0 receive: 0x0 init capsrc for pin 19 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0 init capsrc for pin 1a send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x2 receive: 0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x0
alc_auto_init_input_src send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x80 send: NID=0x23, VERB=0x352(set_amp_gain_mute,I:R#2), PARM=0x80
snd_hda_codec_resume_app send: NID=0x23, VERB=0x363(set_amp_gain_mute,I:L#3), PARM=0x80 send: NID=0x23, VERB=0x353(set_amp_gain_mute,I:R#3), PARM=0x80 send: NID=0x23, VERB=0x364(set_amp_gain_mute,I:L#4), PARM=0x80 send: NID=0x23, VERB=0x354(set_amp_gain_mute,I:R#4), PARM=0x80 send: NID=0x23, VERB=0x365(set_amp_gain_mute,I:L#5), PARM=0x80 send: NID=0x23, VERB=0x355(set_amp_gain_mute,I:R#5), PARM=0x80 send: NID=0x23, VERB=0x366(set_amp_gain_mute,I:L#6), PARM=0x80 send: NID=0x23, VERB=0x356(set_amp_gain_mute,I:R#6), PARM=0x80 send: NID=0x23, VERB=0x367(set_amp_gain_mute,I:L#7), PARM=0x80 send: NID=0x23, VERB=0x357(set_amp_gain_mute,I:R#7), PARM=0x80 send: NID=0x23, VERB=0x368(set_amp_gain_mute,I:L#8), PARM=0x80 send: NID=0x23, VERB=0x358(set_amp_gain_mute,I:R#8), PARM=0x80 send: NID=0x23, VERB=0x369(set_amp_gain_mute,I:L#9), PARM=0x80 send: NID=0x23, VERB=0x359(set_amp_gain_mute,I:R#9), PARM=0x80 send: NID=0x23, VERB=0x36a(set_amp_gain_mute,I:L#10), PARM=0x80 send: NID=0x23, VERB=0x35a(set_amp_gain_mute,I:R#10), PARM=0x80 ...
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
The problem still exists in 3.2.7-1.fc16.x86_64 kernel, is there any chance for a fix?
Julian
A dirty hack is to swap the order of the external mic and internal mic at the end of sort_autocfg_input_pins()
+ if (cfg->num_inputs > 1) { + struct auto_pin_cfg_item tmp; + tmp = cfg->inputs[0]; + cfg->inputs[0] = cfg->inputs[1]; + cfg->inputs[1] = tmp; + }
25 Input Source:0 ITEM: 0:Internal Mic, 1:Mic, 2:Line, VAL: [Internal Mic]
At Thu, 23 Feb 2012 20:11:44 +0100, Julian Sikorski wrote:
W dniu 09.12.2011 14:32, Raymond Yau pisze:
2011/12/4 Julian Sikorski belegdol@gmail.com:
Hi,
whenever I resume the machine, the Input Source would get changed back from "Internal Mic" to "Mic". This is a bit annoying, because pulseaudio is unaware of that change. As a result, everything looks fine in pavucontrol but no sound gets recorded. A quick look at alsamixer -c0 revealed the problem. My alsa info:
http://www.alsa-project.org/db/?f=c5776b615a5f3b9ae624e4250fb0c2b69118ce26
This is unrelated to the other problems I have been reporting, since this happens on a mostly-stock Fedora 3.1.2 kernel (the patch I added deals with xhci, not alsa).
The problem seem can be reproduced by using hda-emu, it is init_capsrc_for_pin() and alc_auto_init_input_src() write value to cache before snd_hda_codec_resume_app() from cache
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
set 28 1
send: NID=0x23, VERB=0x360(set_amp_gain_mute,I:L#0), PARM=0x80 send: NID=0x23, VERB=0x350(set_amp_gain_mute,I:R#0), PARM=0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Internal Mic]
pm ** SUSPENDING ** ... ** RESUMING ** PM-Notified ... exec_init_verbs ...
init_capsrc_for_pin 18 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x0 receive: 0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x0 receive: 0x0 init capsrc for pin 19 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0 init capsrc for pin 1a send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x2 receive: 0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x0
alc_auto_init_input_src send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x80 send: NID=0x23, VERB=0x352(set_amp_gain_mute,I:R#2), PARM=0x80
snd_hda_codec_resume_app send: NID=0x23, VERB=0x363(set_amp_gain_mute,I:L#3), PARM=0x80 send: NID=0x23, VERB=0x353(set_amp_gain_mute,I:R#3), PARM=0x80 send: NID=0x23, VERB=0x364(set_amp_gain_mute,I:L#4), PARM=0x80 send: NID=0x23, VERB=0x354(set_amp_gain_mute,I:R#4), PARM=0x80 send: NID=0x23, VERB=0x365(set_amp_gain_mute,I:L#5), PARM=0x80 send: NID=0x23, VERB=0x355(set_amp_gain_mute,I:R#5), PARM=0x80 send: NID=0x23, VERB=0x366(set_amp_gain_mute,I:L#6), PARM=0x80 send: NID=0x23, VERB=0x356(set_amp_gain_mute,I:R#6), PARM=0x80 send: NID=0x23, VERB=0x367(set_amp_gain_mute,I:L#7), PARM=0x80 send: NID=0x23, VERB=0x357(set_amp_gain_mute,I:R#7), PARM=0x80 send: NID=0x23, VERB=0x368(set_amp_gain_mute,I:L#8), PARM=0x80 send: NID=0x23, VERB=0x358(set_amp_gain_mute,I:R#8), PARM=0x80 send: NID=0x23, VERB=0x369(set_amp_gain_mute,I:L#9), PARM=0x80 send: NID=0x23, VERB=0x359(set_amp_gain_mute,I:R#9), PARM=0x80 send: NID=0x23, VERB=0x36a(set_amp_gain_mute,I:L#10), PARM=0x80 send: NID=0x23, VERB=0x35a(set_amp_gain_mute,I:R#10), PARM=0x80 ...
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
The problem still exists in 3.2.7-1.fc16.x86_64 kernel, is there any chance for a fix?
Does the patch below fix?
Takashi
--- diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 19f85b7..4cd5489 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4147,7 +4147,7 @@ static void alc_auto_init_input_src(struct hda_codec *codec) else nums = spec->num_adc_nids; for (c = 0; c < nums; c++) - alc_mux_select(codec, 0, spec->cur_mux[c], true); + alc_mux_select(codec, c, spec->cur_mux[c], true); }
/* add mic boosts if needed */
W dniu 24.02.2012 10:43, Takashi Iwai pisze:
At Thu, 23 Feb 2012 20:11:44 +0100, Julian Sikorski wrote:
W dniu 09.12.2011 14:32, Raymond Yau pisze:
2011/12/4 Julian Sikorski belegdol@gmail.com:
Hi,
whenever I resume the machine, the Input Source would get changed back from "Internal Mic" to "Mic". This is a bit annoying, because pulseaudio is unaware of that change. As a result, everything looks fine in pavucontrol but no sound gets recorded. A quick look at alsamixer -c0 revealed the problem. My alsa info:
http://www.alsa-project.org/db/?f=c5776b615a5f3b9ae624e4250fb0c2b69118ce26
This is unrelated to the other problems I have been reporting, since this happens on a mostly-stock Fedora 3.1.2 kernel (the patch I added deals with xhci, not alsa).
The problem seem can be reproduced by using hda-emu, it is init_capsrc_for_pin() and alc_auto_init_input_src() write value to cache before snd_hda_codec_resume_app() from cache
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
set 28 1
send: NID=0x23, VERB=0x360(set_amp_gain_mute,I:L#0), PARM=0x80 send: NID=0x23, VERB=0x350(set_amp_gain_mute,I:R#0), PARM=0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Internal Mic]
pm ** SUSPENDING ** ... ** RESUMING ** PM-Notified ... exec_init_verbs ...
init_capsrc_for_pin 18 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x0 receive: 0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x0 receive: 0x0 init capsrc for pin 19 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0 init capsrc for pin 1a send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x2 receive: 0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x0
alc_auto_init_input_src send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x80 send: NID=0x23, VERB=0x352(set_amp_gain_mute,I:R#2), PARM=0x80
snd_hda_codec_resume_app send: NID=0x23, VERB=0x363(set_amp_gain_mute,I:L#3), PARM=0x80 send: NID=0x23, VERB=0x353(set_amp_gain_mute,I:R#3), PARM=0x80 send: NID=0x23, VERB=0x364(set_amp_gain_mute,I:L#4), PARM=0x80 send: NID=0x23, VERB=0x354(set_amp_gain_mute,I:R#4), PARM=0x80 send: NID=0x23, VERB=0x365(set_amp_gain_mute,I:L#5), PARM=0x80 send: NID=0x23, VERB=0x355(set_amp_gain_mute,I:R#5), PARM=0x80 send: NID=0x23, VERB=0x366(set_amp_gain_mute,I:L#6), PARM=0x80 send: NID=0x23, VERB=0x356(set_amp_gain_mute,I:R#6), PARM=0x80 send: NID=0x23, VERB=0x367(set_amp_gain_mute,I:L#7), PARM=0x80 send: NID=0x23, VERB=0x357(set_amp_gain_mute,I:R#7), PARM=0x80 send: NID=0x23, VERB=0x368(set_amp_gain_mute,I:L#8), PARM=0x80 send: NID=0x23, VERB=0x358(set_amp_gain_mute,I:R#8), PARM=0x80 send: NID=0x23, VERB=0x369(set_amp_gain_mute,I:L#9), PARM=0x80 send: NID=0x23, VERB=0x359(set_amp_gain_mute,I:R#9), PARM=0x80 send: NID=0x23, VERB=0x36a(set_amp_gain_mute,I:L#10), PARM=0x80 send: NID=0x23, VERB=0x35a(set_amp_gain_mute,I:R#10), PARM=0x80 ...
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
The problem still exists in 3.2.7-1.fc16.x86_64 kernel, is there any chance for a fix?
Does the patch below fix?
Takashi
Yes, it seems so. I don't want to get ahead of myself, but two suspend-resume cycles have passed and inputs are at Internal Mic and Mic, as expected.
Julian
At Fri, 24 Feb 2012 23:06:26 +0100, Julian Sikorski wrote:
W dniu 24.02.2012 10:43, Takashi Iwai pisze:
At Thu, 23 Feb 2012 20:11:44 +0100, Julian Sikorski wrote:
W dniu 09.12.2011 14:32, Raymond Yau pisze:
2011/12/4 Julian Sikorski belegdol@gmail.com:
Hi,
whenever I resume the machine, the Input Source would get changed back from "Internal Mic" to "Mic". This is a bit annoying, because pulseaudio is unaware of that change. As a result, everything looks fine in pavucontrol but no sound gets recorded. A quick look at alsamixer -c0 revealed the problem. My alsa info:
http://www.alsa-project.org/db/?f=c5776b615a5f3b9ae624e4250fb0c2b69118ce26
This is unrelated to the other problems I have been reporting, since this happens on a mostly-stock Fedora 3.1.2 kernel (the patch I added deals with xhci, not alsa).
The problem seem can be reproduced by using hda-emu, it is init_capsrc_for_pin() and alc_auto_init_input_src() write value to cache before snd_hda_codec_resume_app() from cache
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
set 28 1
send: NID=0x23, VERB=0x360(set_amp_gain_mute,I:L#0), PARM=0x80 send: NID=0x23, VERB=0x350(set_amp_gain_mute,I:R#0), PARM=0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Internal Mic]
pm ** SUSPENDING ** ... ** RESUMING ** PM-Notified ... exec_init_verbs ...
init_capsrc_for_pin 18 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x0 receive: 0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x0 receive: 0x0 init capsrc for pin 19 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0 init capsrc for pin 1a send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x2 receive: 0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x0
alc_auto_init_input_src send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x80 send: NID=0x23, VERB=0x352(set_amp_gain_mute,I:R#2), PARM=0x80
snd_hda_codec_resume_app send: NID=0x23, VERB=0x363(set_amp_gain_mute,I:L#3), PARM=0x80 send: NID=0x23, VERB=0x353(set_amp_gain_mute,I:R#3), PARM=0x80 send: NID=0x23, VERB=0x364(set_amp_gain_mute,I:L#4), PARM=0x80 send: NID=0x23, VERB=0x354(set_amp_gain_mute,I:R#4), PARM=0x80 send: NID=0x23, VERB=0x365(set_amp_gain_mute,I:L#5), PARM=0x80 send: NID=0x23, VERB=0x355(set_amp_gain_mute,I:R#5), PARM=0x80 send: NID=0x23, VERB=0x366(set_amp_gain_mute,I:L#6), PARM=0x80 send: NID=0x23, VERB=0x356(set_amp_gain_mute,I:R#6), PARM=0x80 send: NID=0x23, VERB=0x367(set_amp_gain_mute,I:L#7), PARM=0x80 send: NID=0x23, VERB=0x357(set_amp_gain_mute,I:R#7), PARM=0x80 send: NID=0x23, VERB=0x368(set_amp_gain_mute,I:L#8), PARM=0x80 send: NID=0x23, VERB=0x358(set_amp_gain_mute,I:R#8), PARM=0x80 send: NID=0x23, VERB=0x369(set_amp_gain_mute,I:L#9), PARM=0x80 send: NID=0x23, VERB=0x359(set_amp_gain_mute,I:R#9), PARM=0x80 send: NID=0x23, VERB=0x36a(set_amp_gain_mute,I:L#10), PARM=0x80 send: NID=0x23, VERB=0x35a(set_amp_gain_mute,I:R#10), PARM=0x80 ...
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
The problem still exists in 3.2.7-1.fc16.x86_64 kernel, is there any chance for a fix?
Does the patch below fix?
Takashi
Yes, it seems so. I don't want to get ahead of myself, but two suspend-resume cycles have passed and inputs are at Internal Mic and Mic, as expected.
Thanks for checking. I committed the fix to git tree, also Cc'ed to stable.
Takashi
W dniu 25.02.2012 11:16, Takashi Iwai pisze:
At Fri, 24 Feb 2012 23:06:26 +0100, Julian Sikorski wrote:
W dniu 24.02.2012 10:43, Takashi Iwai pisze:
At Thu, 23 Feb 2012 20:11:44 +0100, Julian Sikorski wrote:
W dniu 09.12.2011 14:32, Raymond Yau pisze:
2011/12/4 Julian Sikorski belegdol@gmail.com:
Hi,
whenever I resume the machine, the Input Source would get changed back from "Internal Mic" to "Mic". This is a bit annoying, because pulseaudio is unaware of that change. As a result, everything looks fine in pavucontrol but no sound gets recorded. A quick look at alsamixer -c0 revealed the problem. My alsa info:
http://www.alsa-project.org/db/?f=c5776b615a5f3b9ae624e4250fb0c2b69118ce26
This is unrelated to the other problems I have been reporting, since this happens on a mostly-stock Fedora 3.1.2 kernel (the patch I added deals with xhci, not alsa).
The problem seem can be reproduced by using hda-emu, it is init_capsrc_for_pin() and alc_auto_init_input_src() write value to cache before snd_hda_codec_resume_app() from cache
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
set 28 1
send: NID=0x23, VERB=0x360(set_amp_gain_mute,I:L#0), PARM=0x80 send: NID=0x23, VERB=0x350(set_amp_gain_mute,I:R#0), PARM=0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Internal Mic]
pm ** SUSPENDING ** ... ** RESUMING ** PM-Notified ... exec_init_verbs ...
init_capsrc_for_pin 18 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x0 receive: 0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x0 receive: 0x0 init capsrc for pin 19 send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0 send: NID=0x23, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x1 receive: 0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0 init capsrc for pin 1a send: NID=0x23, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x2 receive: 0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x0
alc_auto_init_input_src send: NID=0x23, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x80 send: NID=0x23, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x80 send: NID=0x23, VERB=0x362(set_amp_gain_mute,I:L#2), PARM=0x80 send: NID=0x23, VERB=0x352(set_amp_gain_mute,I:R#2), PARM=0x80
snd_hda_codec_resume_app send: NID=0x23, VERB=0x363(set_amp_gain_mute,I:L#3), PARM=0x80 send: NID=0x23, VERB=0x353(set_amp_gain_mute,I:R#3), PARM=0x80 send: NID=0x23, VERB=0x364(set_amp_gain_mute,I:L#4), PARM=0x80 send: NID=0x23, VERB=0x354(set_amp_gain_mute,I:R#4), PARM=0x80 send: NID=0x23, VERB=0x365(set_amp_gain_mute,I:L#5), PARM=0x80 send: NID=0x23, VERB=0x355(set_amp_gain_mute,I:R#5), PARM=0x80 send: NID=0x23, VERB=0x366(set_amp_gain_mute,I:L#6), PARM=0x80 send: NID=0x23, VERB=0x356(set_amp_gain_mute,I:R#6), PARM=0x80 send: NID=0x23, VERB=0x367(set_amp_gain_mute,I:L#7), PARM=0x80 send: NID=0x23, VERB=0x357(set_amp_gain_mute,I:R#7), PARM=0x80 send: NID=0x23, VERB=0x368(set_amp_gain_mute,I:L#8), PARM=0x80 send: NID=0x23, VERB=0x358(set_amp_gain_mute,I:R#8), PARM=0x80 send: NID=0x23, VERB=0x369(set_amp_gain_mute,I:L#9), PARM=0x80 send: NID=0x23, VERB=0x359(set_amp_gain_mute,I:R#9), PARM=0x80 send: NID=0x23, VERB=0x36a(set_amp_gain_mute,I:L#10), PARM=0x80 send: NID=0x23, VERB=0x35a(set_amp_gain_mute,I:R#10), PARM=0x80 ...
get 28
28 Input Source:0 ITEM: 0:Mic, 1:Internal Mic, 2:Line, VAL: [Mic]
The problem still exists in 3.2.7-1.fc16.x86_64 kernel, is there any chance for a fix?
Does the patch below fix?
Takashi
Yes, it seems so. I don't want to get ahead of myself, but two suspend-resume cycles have passed and inputs are at Internal Mic and Mic, as expected.
Thanks for checking. I committed the fix to git tree, also Cc'ed to stable.
Takashi
I cannot seem to find this patch in the 3.2 stable tree, was it rejected?
Regards, Julian
participants (3)
-
Julian Sikorski
-
Raymond Yau
-
Takashi Iwai