OK, after a few days of familiarizing myself with the hda and stac9200 specs, I think I see what's going on. I tossed out the pin config settings from the windows driver and simply derived a set based on the stac9200 datasheet and my best guesses as to how the hardware is actually configured. At this point, dmesg shows: line_outs=0 (0x0/0x0/0x0/0x0/0x0) speaker_outs=1 (0xe/0x0/0x0/0x0/0x0) hp_outs=1 (0xd/0x0/0x0/0x0/0x0) inputs: mic=0x10, fmic=0x0, line=0x0, fline=0x0, cd=0x0, aux=0x0 which corresponds at least to the number of external ports. Still no sound, BUT, /proc/asound/card0/codec#0 shows something interesting (heh, actually it's shown it all along, ignorance is bliss I guess...): ... Node 0x08 [Pin Complex] wcaps 0x430681: Stereo Digital Pincap 0x0810024: IN EAPD Detect Pin Default 0x40c001fd: [N/A] SPDIF In at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Power: 0x0 ... the DigInPin is showing EAPD control. I wasn't sure about the meaning of the "Power: 0x0" line in /proc/asound/card0/codec#0 so I put some debug statements into patch_sigmatel.c to dump the DigInPin power state and EAPD registers: [ 5701.644000] hda_codec: DigInPin PwrState: 00000033 [ 5701.644000] hda_codec: EAPD Config: 00000000 According to the stac9200 datasheet, a PwrState of 0x3 means that the node is powered down. A value of 0 on the EAPD pin means power down the external amp, and a 1 means power up the amp if PwrState is < 0x2. If PwrState >= 0x2, Pin47 is tri-stated. And Pin47 is ... GPIO3 (AKA: SPDIF_IN, EAPD)! The stac9200 datasheet also states that "an external pull-down is required if EAPD must be low when Pin Widget is powered down." So I assume that I need to reconfigure this pin to drive a 1 and power up the external amp, but what is the correct way to do this? Does the pin config matter much, or do I just need to set the PwrState bits? I see that in stac92xx_enable_eapd GPIO0 is configured as CMOS before it's enabled. Since GPIO3 is a digital I/O I obviously don't have to do that. Any suggestions before I take the red pill? Attached is my latest /proc/asound/card0/codec#0 Thanks, -brian Codec: SigmaTel STAC9200 Address: 0 Vendor Id: 0x83847690 Subsystem Id: 0x107b0205 Revision Id: 0x102201 No Modem Function Group found Default PCM: rates [0x7e0]: 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1 Node 0x02 [Audio Output] wcaps 0xd0401: Stereo Power: 0x0 Node 0x03 [Audio Input] wcaps 0x1d0541: Stereo Power: 0x0 Connection: 1 0x0a Node 0x04 [Audio Input] wcaps 0x140311: Stereo Digital PCM: rates [0x160]: 44100 48000 96000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Connection: 1 0x08 Node 0x05 [Audio Output] wcaps 0x40211: Stereo Digital PCM: rates [0x1e0]: 44100 48000 88200 96000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Node 0x06 [Vendor Defined Widget] wcaps 0xf30201: Stereo Digital Node 0x07 [Audio Selector] wcaps 0x300901: Stereo Connection: 3 0x02* 0x08 0x0a Node 0x08 [Pin Complex] wcaps 0x430681: Stereo Digital Pincap 0x0810024: IN EAPD Detect Pin Default 0x40c001fd: [N/A] SPDIF In at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Power: 0x0 Node 0x09 [Pin Complex] wcaps 0x400301: Stereo Digital Pincap 0x0810: OUT Pin Default 0x404001fe: [N/A] SPDIF Out at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 2 0x05* 0x0a Node 0x0a [Audio Selector] wcaps 0x30090d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1 Amp-Out vals: [0x0d 0x0d] Connection: 1 0x0c Node 0x0b [Audio Selector] wcaps 0x300105: Stereo Amp-Out Amp-Out caps: N/A Amp-Out vals: [0x1f 0x1f] Connection: 1 0x07 Node 0x0c [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x04 0x04] Connection: 5 0x10* 0x0f 0x0e 0x0d 0x12 Node 0x0d [Pin Complex] wcaps 0x400181: Stereo Pincap 0x083f: IN OUT HP Detect Pin Default 0x042110f1: [Jack] HP Out at Ext Right Conn = 1/8, Color = Black Pin-ctls: 0xc0: OUT HP Connection: 1 0x0b Node 0x0e [Pin Complex] wcaps 0x400181: Stereo Pincap 0x083f: IN OUT HP Detect Pin Default 0x90100110: [Fixed] Speaker at Int N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x0b Node 0x0f [Pin Complex] wcaps 0x400181: Stereo Pincap 0x0837: IN OUT Detect Pin Default 0x400101ff: [N/A] Line Out at Ext N/A Conn = 1/8, Color = Unknown Pin-ctls: 0x20: IN Connection: 1 0x0b Node 0x10 [Pin Complex] wcaps 0x400181: Stereo Pincap 0x081737: IN OUT Detect Pin Default 0x04a110f2: [Jack] Mic at Ext Right Conn = 1/8, Color = Black Pin-ctls: 0x24: IN Connection: 1 0x0b Node 0x11 [Pin Complex] wcaps 0x400104: Mono Amp-Out Amp-Out caps: N/A Amp-Out vals: [0x00] Pincap 0x0810: OUT Pin Default 0x401001f3: [N/A] Speaker at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x00: Connection: 1 0x13 Node 0x12 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x409001f4: [N/A] Aux at Ext N/A Conn = Unknown, Color = Unknown Pin-ctls: 0x20: IN Node 0x13 [Audio Mixer] wcaps 0x200100: Mono Connection: 1 0x07 Node 0x14 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=1 Amp-Out vals: [0x00] >From: Takashi Iwai <tiwai@xxxxxxx> >To: "Brian Hinz" <bphinz@xxxxxxxxxxx> >CC: alsa-devel@xxxxxxxxxxxxxxxx >Subject: Re: stac9200 speaker/hp not detected >Date: Thu, 05 Jul 2007 12:28:56 +0200 > >At Wed, 04 Jul 2007 15:08:15 -0400, >Brian Hinz wrote: > > > > I found the stac9200 datasheet and went through it, comparing it to the > > windows ini file and I don't see any obvious issues - everything looks >like > > it's muxed right, except for the fact that there is physically no spdif >jack > > on this particular machine. The GPIO stuff looks like maybe it's mic >boost > > or something, but what are these init verbs? > >GPIO can be used for different purposes depending on the >implementation. But, I'm not sure whether the missing GPIO setup is >the culprit or not. Anyway, you can set spec->gpio_mute in >patch_9200(). > >If it doesn't help, try to change the pin config. You can ignore the >first two pins for 0x08 and 0x09, which are for SPDIF I/O. The rest >are analog pins and can be configured flexibly. The value 0x90110010 >corresponds to a built-in speaker, for example. > > >Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel