[alsa-devel] ALC892, Clevo P150HM: Input Source gets reset to "Mic" every resume
Takashi Iwai
tiwai at suse.de
Fri Feb 24 10:43:36 CET 2012
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 at 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 */
More information about the Alsa-devel
mailing list