Re: [alsa-devel] Fwd: Problems with hda_intel, Santa Rosa, and suspend
At Mon, 25 Jun 2007 15:16:41 -0500, Matt Mullins wrote:
On 6/25/07, Takashi Iwai tiwai@suse.de wrote:
Yes, single_cmd mode is used always.
That's bad.
I believe we have established that. What can I do about it? *Can* I do anything about it? What functions should I start debugging? Has this happened with other codecs before? What documentation will I need or want other than the Intel HDA and STAC9205 specifications?
Similar problems have been seen in some laptops, too. I vaguely remember that they need some ACPI-related boot options to fix it somehow. I think it's likely irrelevant with the codec chip, but rather a problem of the controller side.
I'm definitely willing to help work on this, as not many people have this hardware. I'm just new to the sound system, so I'm still trying to figure out what-calls-what.
Takashi
On a whim, I decided to extract the sound/pci/hda from vanilla 2.6.20 kernel sources and compile it under 2.6.22-rc5 (yes, I know, I probably shouldn't have done that). I had to add a typedef to patch_sigmatel.c to get it to compile. When I loaded the modules, I did *not* get the "switching to single_cmd" error, but I haven't gotten sound yet, either, probably because I'm using pieces of two different versions of ALSA. However, this suggests to me that perhaps there is a problem with the hda_intel driver, and not necessarily an ACPI problem.
I'm going to keep working on this, as much as I can understand right now.
At Wed, 4 Jul 2007 15:37:22 -0500, Matt Mullins wrote:
On a whim, I decided to extract the sound/pci/hda from vanilla 2.6.20 kernel sources and compile it under 2.6.22-rc5 (yes, I know, I probably shouldn't have done that). I had to add a typedef to patch_sigmatel.c to get it to compile. When I loaded the modules, I did *not* get the "switching to single_cmd" error, but I haven't gotten sound yet, either, probably because I'm using pieces of two different versions of ALSA. However, this suggests to me that perhaps there is a problem with the hda_intel driver, and not necessarily an ACPI problem.
That's possible. It might be that an access to an unsupported widget may trigger the unexpected behavior of the codec chip and the communication is disturbed.
Maybe it's worth to trace which verb call triggers the communication breakage. (BTW, for testing, you should concentrate only on audio codec, so skip modem codec via probe_mask option.)
Takashi
After some hacking, I found that for some reason, something is calling azx_send_cmd with nids much wider than 7 bits. This happens exactly twice, once with nid=0x534c, and nid=0x8845. Both times, the verb is 0xf1c, and para=0x00. This clobbers parts of "val" in both azx_single_send_cmd and azx_corb_send_cmd. I added the following code to azx_send_cmd, and it works now: if (!direct && (nid >> 7)) { snd_printd(SFX "Uh oh, too wide an NID value. codec=0x%x, direct=0x%x, nid=0x%x, verb=0x%x, para=0x%x\n", (codec->addr)&0xf, direct, nid, verb, para); return -EIO; }
This outputs:
[136890.000388] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide an NID value. codec=0x0, direct=0x0, nid=0x534c, verb=0xf1c, para=0x0 [136890.000393] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide an NID value. codec=0x0, direct=0x0, nid=0x8845, verb=0xf1c, para=0x0
I do realize that the problem is not completely fixed, and we still need to figure out what actually calls azx_send_cmd with the offending parameters. However, I am now lost in a sea of function pointers...
And it still doesn't work after a suspend, and I get a handful more "uh oh"s upon resume: [ 3.942647] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid =0x534c, verb=0x71c, para=0xff [ 3.942658] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid =0x534c, verb=0x71d, para=0xff [ 3.942668] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid =0x534c, verb=0x71e, para=0xff [ 3.942678] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid =0x534c, verb=0x71f, para=0xff [ 3.942688] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid =0x534c, verb=0xf1c, para=0x0 [ 3.942697] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid =0x8845, verb=0x71c, para=0xff [ 3.942707] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid =0x8845, verb=0x71d, para=0xff [ 3.942717] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid =0x8845, verb=0x71e, para=0xff [ 3.942727] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid =0x8845, verb=0x71f, para=0xff [ 3.942736] ALSA /home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644: hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid =0x8845, verb=0xf1c, para=0x0 ---- Matt Mullins
Found what I think is the problem... patch_sigmatel.c set spec->num_pins=14, yet spec->pin_nids pointed to stac9205_pin_nids, which was an array of only 12 NIDs. That caused [total guess here] either stac92xx_save_bios_config_regs or stac92xx_set_config_regs to read past the end of the array and into an uninitialized area. I changed the 14 to a 12, and it seems to work. The attached patch is against the current Mercurial sources, but I made the similar change to kernel 2.6.22-rc7, and it doesn't use single_cmd anymore. It still doesn't work after a suspend, though, making me unload and reload the module.
At Thu, 5 Jul 2007 21:42:21 -0500, Matt Mullins wrote:
Found what I think is the problem... patch_sigmatel.c set spec->num_pins=14, yet spec->pin_nids pointed to stac9205_pin_nids, which was an array of only 12 NIDs. That caused [total guess here] either stac92xx_save_bios_config_regs or stac92xx_set_config_regs to read past the end of the array and into an uninitialized area. I changed the 14 to a 12, and it seems to work. The attached patch is against the current Mercurial sources, but I made the similar change to kernel 2.6.22-rc7, and it doesn't use single_cmd anymore.
Argh! Thanks for spotting this nasty bug.
It'd be better to use ARRAY_SIZE there. Then typos would be more obvious. Could you check the patch below?
It still doesn't work after a suspend, though, making me unload and reload the module.
Do you mean you'll get a communication error after suspend, or got no sound output, or any other problem?
thanks,
Takashi
diff -r 42d31b8a307d pci/hda/patch_sigmatel.c --- a/pci/hda/patch_sigmatel.c Thu Jul 05 13:10:51 2007 +0200 +++ b/pci/hda/patch_sigmatel.c Fri Jul 06 11:30:50 2007 +0200 @@ -1958,7 +1958,7 @@ static int patch_stac9200(struct hda_cod return -ENOMEM;
codec->spec = spec; - spec->num_pins = 8; + spec->num_pins = ARRAY_SIZE(stac9200_pin_nids); spec->pin_nids = stac9200_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_9200_MODELS, stac9200_models, @@ -2008,7 +2008,7 @@ static int patch_stac925x(struct hda_cod return -ENOMEM;
codec->spec = spec; - spec->num_pins = 8; + spec->num_pins = ARRAY_SIZE(stac925x_pin_nids); spec->pin_nids = stac925x_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_925x_MODELS, stac925x_models, @@ -2080,7 +2080,7 @@ static int patch_stac922x(struct hda_cod return -ENOMEM;
codec->spec = spec; - spec->num_pins = 10; + spec->num_pins = ARRAY_SIZE(stac922x_pin_nids); spec->pin_nids = stac922x_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_922X_MODELS, stac922x_models, @@ -2181,7 +2181,7 @@ static int patch_stac927x(struct hda_cod return -ENOMEM;
codec->spec = spec; - spec->num_pins = 14; + spec->num_pins = ARRAY_SIZE(stac927x_pin_nids); spec->pin_nids = stac927x_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_927X_MODELS, stac927x_models, @@ -2259,7 +2259,7 @@ static int patch_stac9205(struct hda_cod return -ENOMEM;
codec->spec = spec; - spec->num_pins = 14; + spec->num_pins = ARRAY_SIZE(stac9205_pin_nids); spec->pin_nids = stac9205_pin_nids; spec->board_config = snd_hda_check_board_config(codec, STAC_9205_MODELS, stac9205_models,
Hi!
FYI, I own the same laptop-model as Matt and have similar (identical?) problems.
On 06.07.2007 11:32, Takashi Iwai wrote:
At Thu, 5 Jul 2007 21:42:21 -0500, Matt Mullins wrote:
Found what I think is the problem... patch_sigmatel.c set spec->num_pins=14, yet spec->pin_nids pointed to stac9205_pin_nids, which was an array of only 12 NIDs. That caused [total guess here] either stac92xx_save_bios_config_regs or stac92xx_set_config_regs to read past the end of the array and into an uninitialized area. I changed the 14 to a 12, and it seems to work. The attached patch is against the current Mercurial sources, but I made the similar change to kernel 2.6.22-rc7, and it doesn't use single_cmd anymore.
Argh! Thanks for spotting this nasty bug.
Agreed; Matt, thx for your work.
It'd be better to use ARRAY_SIZE there. Then typos would be more obvious. Could you check the patch below?
Works fine for me (patch was applied to alsa-driver 1.0.14 sources and compiled against/tested on a Fedora 2.6.21 kernel and a 2.6.22-rc7-git3 kernel from the Fedora devel tree)
It still doesn't work after a suspend, though, making me unload and reload the module.
Do you mean you'll get a communication error after suspend, or got no sound output, or any other problem?
I simply don't get any audio output at all after either suspend or hibernate. Reloading the module after suspend/hibernate makes the sound working again.
CU thl
At Fri, 06 Jul 2007 17:46:04 +0200, Thorsten Leemhuis wrote:
Hi!
FYI, I own the same laptop-model as Matt and have similar (identical?) problems.
On 06.07.2007 11:32, Takashi Iwai wrote:
At Thu, 5 Jul 2007 21:42:21 -0500, Matt Mullins wrote:
Found what I think is the problem... patch_sigmatel.c set spec->num_pins=14, yet spec->pin_nids pointed to stac9205_pin_nids, which was an array of only 12 NIDs. That caused [total guess here] either stac92xx_save_bios_config_regs or stac92xx_set_config_regs to read past the end of the array and into an uninitialized area. I changed the 14 to a 12, and it seems to work. The attached patch is against the current Mercurial sources, but I made the similar change to kernel 2.6.22-rc7, and it doesn't use single_cmd anymore.
Argh! Thanks for spotting this nasty bug.
Agreed; Matt, thx for your work.
It'd be better to use ARRAY_SIZE there. Then typos would be more obvious. Could you check the patch below?
Works fine for me (patch was applied to alsa-driver 1.0.14 sources and compiled against/tested on a Fedora 2.6.21 kernel and a 2.6.22-rc7-git3 kernel from the Fedora devel tree)
Thanks for confirmation. I committed the patch to HG tree now.
It still doesn't work after a suspend, though, making me unload and reload the module.
Do you mean you'll get a communication error after suspend, or got no sound output, or any other problem?
I simply don't get any audio output at all after either suspend or hibernate. Reloading the module after suspend/hibernate makes the sound working again.
Doesn't changing the mixer values after resume have any effect?
Also, could you compare the codec#* proc dump before and after suspend/resume?
thanks,
Takashi
On 06.07.2007 18:19, Takashi Iwai wrote:
At Fri, 06 Jul 2007 17:46:04 +0200, Thorsten Leemhuis wrote:
On 06.07.2007 11:32, Takashi Iwai wrote:
At Thu, 5 Jul 2007 21:42:21 -0500, Matt Mullins wrote:
[...]
It still doesn't work after a suspend, though, making me unload and reload the module.
Do you mean you'll get a communication error after suspend, or got no sound output, or any other problem?
I simply don't get any audio output at all after either suspend or hibernate. Reloading the module after suspend/hibernate makes the sound working again.
Doesn't changing the mixer values after resume have any effect?
No, I tried that beforehand already and just re-tried -- changing the mixer values does not help. Everything still silent.
Also, could you compare the codec#* proc dump before and after suspend/resume?
--- codec0-before 2007-07-06 18:40:47.000000000 +0200 +++ codec0-aftersuspend 2007-07-06 18:42:50.000000000 +0200 @@ -22,7 +22,7 @@ Conn = 1/8, Color = Black Pin-ctls: 0x20: IN Connection: 2 - 0x10 0x11* + 0x10* 0x11 Node 0x0c [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x90a70120: [Fixed] Mic at Int N/A @@ -103,7 +103,7 @@ Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x00 0x00] Connection: 7 - 0x0e 0x16 0x0f 0x0b 0x0c* 0x0d 0x0a + 0x0e* 0x16 0x0f 0x0b 0x0c 0x0d 0x0a Node 0x1b [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x00 0x00]
-----
No changes for codec#1; full file before suspend attached.
HTH and thx for your help.
CU thl
Codec: SigmaTel STAC9205 Address: 0 Vendor Id: 0x838476a0 Subsystem Id: 0x102801f9 Revision Id: 0x100204 Default PCM: rates [0x7e0]: 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=0 Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1 Node 0x0a [Pin Complex] wcaps 0x400181: Stereo Pincap 0x08173f: IN OUT HP Detect Pin Default 0x0321101f: [Jack] HP Out at Ext Left Conn = 1/8, Color = Black Pin-ctls: 0xc0: OUT HP Connection: 2 0x10* 0x11 Node 0x0b [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x0381102e: [Jack] Line In at Ext Left Conn = 1/8, Color = Black Pin-ctls: 0x20: IN Connection: 2 0x10 0x11* Node 0x0c [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x90a70120: [Fixed] Mic at Int N/A Conn = Analog, Color = Unknown Pin-ctls: 0x24: IN Connection: 1 0x11 Node 0x0d [Pin Complex] wcaps 0x400181: Stereo Pincap 0x083f: IN OUT HP Detect Pin Default 0x90170110: [Fixed] Speaker at Int N/A Conn = Analog, Color = Unknown Pin-ctls: 0x40: OUT Connection: 1 0x10 Node 0x0e [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x40f000f0: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x10 Node 0x0f [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x40f000f1: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x11 Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out Amp-Out caps: N/A Amp-Out vals: [0x5f 0x5f] Power: 0x0 Node 0x11 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out Amp-Out caps: N/A Amp-Out vals: [0x5f 0x5f] Power: 0x0 Node 0x12 [Audio Input] wcaps 0x1d0541: Stereo Power: 0x0 Connection: 1 0x1d Node 0x13 [Audio Input] wcaps 0x1d0541: Stereo Power: 0x0 Connection: 1 0x1e Node 0x14 [Pin Complex] wcaps 0x40010c: Mono Amp-Out Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1 Amp-Out vals: [0x00] Pincap 0x0810: OUT Pin Default 0x40f000f2: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x15 Node 0x15 [Audio Mixer] wcaps 0x200100: Mono Connection: 1 0x10 Node 0x16 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f3: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Node 0x17 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f4: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x20: IN Node 0x18 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f5: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x20: IN Node 0x19 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x00 0x00] Connection: 7 0x0e 0x16 0x0f 0x0b 0x0c* 0x0d 0x0a Node 0x1a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x00 0x00] Connection: 7 0x0e 0x16 0x0f 0x0b 0x0c* 0x0d 0x0a Node 0x1b [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x00 0x00] Connection: 1 0x19 Node 0x1c [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x00 0x00] Connection: 1 0x1a Node 0x1d [Audio Selector] wcaps 0x30090d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Connection: 3 0x1b* 0x17 0x18 Node 0x1e [Audio Selector] wcaps 0x30090d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Connection: 3 0x1c* 0x17 0x18 Node 0x1f [Audio Output] wcaps 0x40211: Stereo Digital PCM: rates [0x5e0]: 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Node 0x20 [Audio Input] wcaps 0x140311: Stereo Digital PCM: rates [0x160]: 44100 48000 96000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Connection: 1 0x22 Node 0x21 [Pin Complex] wcaps 0x400301: Stereo Digital Pincap 0x0810: OUT Pin Default 0x40f000f6: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 3 0x1f* 0x1d 0x1e Node 0x22 [Pin Complex] wcaps 0x430681: Stereo Digital Pincap 0x0810024: IN EAPD Detect Pin Default 0x40f000f7: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Power: 0x0 Node 0x23 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=0 Amp-Out vals: [0x00] Node 0x24 [Volume Knob Widget] wcaps 0x600000: Mono Node 0x25 [Vendor Defined Widget] wcaps 0xf00001: Stereo
At Fri, 06 Jul 2007 18:56:54 +0200, Thorsten Leemhuis wrote:
On 06.07.2007 18:19, Takashi Iwai wrote:
At Fri, 06 Jul 2007 17:46:04 +0200, Thorsten Leemhuis wrote:
On 06.07.2007 11:32, Takashi Iwai wrote:
At Thu, 5 Jul 2007 21:42:21 -0500, Matt Mullins wrote:
[...]
It still doesn't work after a suspend, though, making me unload and reload the module.
Do you mean you'll get a communication error after suspend, or got no sound output, or any other problem?
I simply don't get any audio output at all after either suspend or hibernate. Reloading the module after suspend/hibernate makes the sound working again.
Doesn't changing the mixer values after resume have any effect?
No, I tried that beforehand already and just re-tried -- changing the mixer values does not help. Everything still silent.
I suppose that re-plugging the headphone also doesn't help?
Also, could you compare the codec#* proc dump before and after suspend/resume?
--- codec0-before 2007-07-06 18:40:47.000000000 +0200 +++ codec0-aftersuspend 2007-07-06 18:42:50.000000000 +0200 @@ -22,7 +22,7 @@ Conn = 1/8, Color = Black Pin-ctls: 0x20: IN Connection: 2
0x10 0x11*
0x10* 0x11
Node 0x0c [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x90a70120: [Fixed] Mic at Int N/A @@ -103,7 +103,7 @@ Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x00 0x00] Connection: 7
0x0e 0x16 0x0f 0x0b 0x0c* 0x0d 0x0a
0x0e* 0x16 0x0f 0x0b 0x0c 0x0d 0x0a
Node 0x1b [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x00 0x00]
They are input pins, so it should be irrelevant to outputs.
You wrote that re-loading the module works; could you compare the proc file before and after reloaind the module?
Takashi
On 09.07.2007 14:52, Takashi Iwai wrote:
At Fri, 06 Jul 2007 18:56:54 +0200, Thorsten Leemhuis wrote:
On 06.07.2007 18:19, Takashi Iwai wrote:
At Fri, 06 Jul 2007 17:46:04 +0200, Thorsten Leemhuis wrote:
On 06.07.2007 11:32, Takashi Iwai wrote:
At Thu, 5 Jul 2007 21:42:21 -0500, Matt Mullins wrote:
[...]
It still doesn't work after a suspend, though, making me unload and reload the module.
Do you mean you'll get a communication error after suspend, or got no sound output, or any other problem?
I simply don't get any audio output at all after either suspend or hibernate. Reloading the module after suspend/hibernate makes the sound working again.
Doesn't changing the mixer values after resume have any effect?
No, I tried that beforehand already and just re-tried -- changing the mixer values does not help. Everything still silent.
I suppose that re-plugging the headphone also doesn't help?
/me wanders off to find a headphone
Well, it helps partially; sounds comes from the headphone after I plugged it in. But the build in speakers stay silent even after I unplug the headphone again.
Also, could you compare the codec#* proc dump before and after suspend/resume?
--- codec0-before 2007-07-06 18:40:47.000000000 +0200 +++ codec0-aftersuspend 2007-07-06 18:42:50.000000000 +0200 @@ -22,7 +22,7 @@ Conn = 1/8, Color = Black Pin-ctls: 0x20: IN Connection: 2
0x10 0x11*
0x10* 0x11
Node 0x0c [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x90a70120: [Fixed] Mic at Int N/A @@ -103,7 +103,7 @@ Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x00 0x00] Connection: 7
0x0e 0x16 0x0f 0x0b 0x0c* 0x0d 0x0a
0x0e* 0x16 0x0f 0x0b 0x0c 0x0d 0x0a
Node 0x1b [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x00 0x00]
They are input pins, so it should be irrelevant to outputs.
Well, computers in my experience sometimes are stupid beasts :-/
You wrote that re-loading the module works; could you compare the proc file before and after reloaind the module?
I just retried. The diff stays the same. Find all files attached fyi. The data for codec#1 doesn't change at all.
CU thl
Codec: SigmaTel STAC9205 Address: 0 Vendor Id: 0x838476a0 Subsystem Id: 0x102801f9 Revision Id: 0x100204 Default PCM: rates [0x7e0]: 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=0 Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1 Node 0x0a [Pin Complex] wcaps 0x400181: Stereo Pincap 0x08173f: IN OUT HP Detect Pin Default 0x0321101f: [Jack] HP Out at Ext Left Conn = 1/8, Color = Black Pin-ctls: 0xc0: OUT HP Connection: 2 0x10* 0x11 Node 0x0b [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x0381102e: [Jack] Line In at Ext Left Conn = 1/8, Color = Black Pin-ctls: 0x20: IN Connection: 2 0x10* 0x11 Node 0x0c [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x90a70120: [Fixed] Mic at Int N/A Conn = Analog, Color = Unknown Pin-ctls: 0x24: IN Connection: 1 0x11 Node 0x0d [Pin Complex] wcaps 0x400181: Stereo Pincap 0x083f: IN OUT HP Detect Pin Default 0x90170110: [Fixed] Speaker at Int N/A Conn = Analog, Color = Unknown Pin-ctls: 0x40: OUT Connection: 1 0x10 Node 0x0e [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x40f000f0: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x10 Node 0x0f [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x40f000f1: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x11 Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out Amp-Out caps: N/A Amp-Out vals: [0x74 0x74] Power: 0x0 Node 0x11 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out Amp-Out caps: N/A Amp-Out vals: [0x71 0x6e] Power: 0x0 Node 0x12 [Audio Input] wcaps 0x1d0541: Stereo Power: 0x0 Connection: 1 0x1d Node 0x13 [Audio Input] wcaps 0x1d0541: Stereo Power: 0x0 Connection: 1 0x1e Node 0x14 [Pin Complex] wcaps 0x40010c: Mono Amp-Out Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1 Amp-Out vals: [0x00] Pincap 0x0810: OUT Pin Default 0x40f000f2: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x15 Node 0x15 [Audio Mixer] wcaps 0x200100: Mono Connection: 1 0x10 Node 0x16 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f3: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Node 0x17 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f4: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x20: IN Node 0x18 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f5: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x20: IN Node 0x19 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x00 0x00] Connection: 7 0x0e 0x16 0x0f 0x0b 0x0c* 0x0d 0x0a Node 0x1a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x00 0x00] Connection: 7 0x0e* 0x16 0x0f 0x0b 0x0c 0x0d 0x0a Node 0x1b [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x00 0x00] Connection: 1 0x19 Node 0x1c [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x00 0x00] Connection: 1 0x1a Node 0x1d [Audio Selector] wcaps 0x30090d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Connection: 3 0x1b* 0x17 0x18 Node 0x1e [Audio Selector] wcaps 0x30090d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Connection: 3 0x1c* 0x17 0x18 Node 0x1f [Audio Output] wcaps 0x40211: Stereo Digital PCM: rates [0x5e0]: 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Node 0x20 [Audio Input] wcaps 0x140311: Stereo Digital PCM: rates [0x160]: 44100 48000 96000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Connection: 1 0x22 Node 0x21 [Pin Complex] wcaps 0x400301: Stereo Digital Pincap 0x0810: OUT Pin Default 0x40f000f6: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 3 0x1f* 0x1d 0x1e Node 0x22 [Pin Complex] wcaps 0x430681: Stereo Digital Pincap 0x0810024: IN EAPD Detect Pin Default 0x40f000f7: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Power: 0x0 Node 0x23 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=0 Amp-Out vals: [0x00] Node 0x24 [Volume Knob Widget] wcaps 0x600000: Mono Node 0x25 [Vendor Defined Widget] wcaps 0xf00001: Stereo
Codec: SigmaTel STAC9205 Address: 0 Vendor Id: 0x838476a0 Subsystem Id: 0x102801f9 Revision Id: 0x100204 Default PCM: rates [0x7e0]: 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=0 Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1 Node 0x0a [Pin Complex] wcaps 0x400181: Stereo Pincap 0x08173f: IN OUT HP Detect Pin Default 0x0321101f: [Jack] HP Out at Ext Left Conn = 1/8, Color = Black Pin-ctls: 0xc0: OUT HP Connection: 2 0x10* 0x11 Node 0x0b [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x0381102e: [Jack] Line In at Ext Left Conn = 1/8, Color = Black Pin-ctls: 0x20: IN Connection: 2 0x10 0x11* Node 0x0c [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x90a70120: [Fixed] Mic at Int N/A Conn = Analog, Color = Unknown Pin-ctls: 0x24: IN Connection: 1 0x11 Node 0x0d [Pin Complex] wcaps 0x400181: Stereo Pincap 0x083f: IN OUT HP Detect Pin Default 0x90170110: [Fixed] Speaker at Int N/A Conn = Analog, Color = Unknown Pin-ctls: 0x40: OUT Connection: 1 0x10 Node 0x0e [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x40f000f0: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x10 Node 0x0f [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x40f000f1: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x11 Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out Amp-Out caps: N/A Amp-Out vals: [0x74 0x74] Power: 0x0 Node 0x11 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out Amp-Out caps: N/A Amp-Out vals: [0x71 0x6e] Power: 0x0 Node 0x12 [Audio Input] wcaps 0x1d0541: Stereo Power: 0x0 Connection: 1 0x1d Node 0x13 [Audio Input] wcaps 0x1d0541: Stereo Power: 0x0 Connection: 1 0x1e Node 0x14 [Pin Complex] wcaps 0x40010c: Mono Amp-Out Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1 Amp-Out vals: [0x00] Pincap 0x0810: OUT Pin Default 0x40f000f2: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x15 Node 0x15 [Audio Mixer] wcaps 0x200100: Mono Connection: 1 0x10 Node 0x16 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f3: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Node 0x17 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f4: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x20: IN Node 0x18 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f5: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x20: IN Node 0x19 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x00 0x00] Connection: 7 0x0e 0x16 0x0f 0x0b 0x0c* 0x0d 0x0a Node 0x1a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x00 0x00] Connection: 7 0x0e 0x16 0x0f 0x0b 0x0c* 0x0d 0x0a Node 0x1b [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x00 0x00] Connection: 1 0x19 Node 0x1c [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x00 0x00] Connection: 1 0x1a Node 0x1d [Audio Selector] wcaps 0x30090d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Connection: 3 0x1b* 0x17 0x18 Node 0x1e [Audio Selector] wcaps 0x30090d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Connection: 3 0x1c* 0x17 0x18 Node 0x1f [Audio Output] wcaps 0x40211: Stereo Digital PCM: rates [0x5e0]: 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Node 0x20 [Audio Input] wcaps 0x140311: Stereo Digital PCM: rates [0x160]: 44100 48000 96000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Connection: 1 0x22 Node 0x21 [Pin Complex] wcaps 0x400301: Stereo Digital Pincap 0x0810: OUT Pin Default 0x40f000f6: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 3 0x1f* 0x1d 0x1e Node 0x22 [Pin Complex] wcaps 0x430681: Stereo Digital Pincap 0x0810024: IN EAPD Detect Pin Default 0x40f000f7: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Power: 0x0 Node 0x23 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=0 Amp-Out vals: [0x00] Node 0x24 [Volume Knob Widget] wcaps 0x600000: Mono Node 0x25 [Vendor Defined Widget] wcaps 0xf00001: Stereo
Codec: SigmaTel STAC9205 Address: 0 Vendor Id: 0x838476a0 Subsystem Id: 0x102801f9 Revision Id: 0x100204 Default PCM: rates [0x7e0]: 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=0 Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1 Node 0x0a [Pin Complex] wcaps 0x400181: Stereo Pincap 0x08173f: IN OUT HP Detect Pin Default 0x0321101f: [Jack] HP Out at Ext Left Conn = 1/8, Color = Black Pin-ctls: 0xc0: OUT HP Connection: 2 0x10* 0x11 Node 0x0b [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x0381102e: [Jack] Line In at Ext Left Conn = 1/8, Color = Black Pin-ctls: 0x20: IN Connection: 2 0x10 0x11* Node 0x0c [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x90a70120: [Fixed] Mic at Int N/A Conn = Analog, Color = Unknown Pin-ctls: 0x24: IN Connection: 1 0x11 Node 0x0d [Pin Complex] wcaps 0x400181: Stereo Pincap 0x083f: IN OUT HP Detect Pin Default 0x90170110: [Fixed] Speaker at Int N/A Conn = Analog, Color = Unknown Pin-ctls: 0x40: OUT Connection: 1 0x10 Node 0x0e [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x40f000f0: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x10 Node 0x0f [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x40f000f1: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x11 Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out Amp-Out caps: N/A Amp-Out vals: [0x74 0x74] Power: 0x0 Node 0x11 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out Amp-Out caps: N/A Amp-Out vals: [0x71 0x6e] Power: 0x0 Node 0x12 [Audio Input] wcaps 0x1d0541: Stereo Power: 0x0 Connection: 1 0x1d Node 0x13 [Audio Input] wcaps 0x1d0541: Stereo Power: 0x0 Connection: 1 0x1e Node 0x14 [Pin Complex] wcaps 0x40010c: Mono Amp-Out Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1 Amp-Out vals: [0x00] Pincap 0x0810: OUT Pin Default 0x40f000f2: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x15 Node 0x15 [Audio Mixer] wcaps 0x200100: Mono Connection: 1 0x10 Node 0x16 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f3: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Node 0x17 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f4: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x20: IN Node 0x18 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x40f000f5: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x20: IN Node 0x19 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x00 0x00] Connection: 7 0x0e 0x16 0x0f 0x0b 0x0c* 0x0d 0x0a Node 0x1a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x00 0x00] Connection: 7 0x0e 0x16 0x0f 0x0b 0x0c* 0x0d 0x0a Node 0x1b [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x00 0x00] Connection: 1 0x19 Node 0x1c [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x00 0x00] Connection: 1 0x1a Node 0x1d [Audio Selector] wcaps 0x30090d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Connection: 3 0x1b* 0x17 0x18 Node 0x1e [Audio Selector] wcaps 0x30090d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Connection: 3 0x1c* 0x17 0x18 Node 0x1f [Audio Output] wcaps 0x40211: Stereo Digital PCM: rates [0x5e0]: 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Node 0x20 [Audio Input] wcaps 0x140311: Stereo Digital PCM: rates [0x160]: 44100 48000 96000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Connection: 1 0x22 Node 0x21 [Pin Complex] wcaps 0x400301: Stereo Digital Pincap 0x0810: OUT Pin Default 0x40f000f6: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 3 0x1f* 0x1d 0x1e Node 0x22 [Pin Complex] wcaps 0x430681: Stereo Digital Pincap 0x0810024: IN EAPD Detect Pin Default 0x40f000f7: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Power: 0x0 Node 0x23 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=0 Amp-Out vals: [0x00] Node 0x24 [Volume Knob Widget] wcaps 0x600000: Mono Node 0x25 [Vendor Defined Widget] wcaps 0xf00001: Stereo
participants (3)
-
Matt Mullins
-
Takashi Iwai
-
Thorsten Leemhuis