[alsa-devel] Intel dg45id motherboard - ICH10 HD audio issues

Takashi Iwai tiwai at suse.de
Mon Sep 1 08:33:31 CEST 2008


At Sun, 31 Aug 2008 11:28:26 +1000,
Anton Blanchard wrote:
> 
> 
> Hi,
> 
> I was unable to get sound to work (analog or SPDIF) on my dg45id using
> 2.6.27. After looking at the pinout information I made a quick hack to
> get SPDIF out going (it's a mythtv box so thats all I need):
> 
> Index: linux-source-2.6.27/sound/pci/hda/patch_sigmatel.c
> ===================================================================
> --- linux-source-2.6.27.orig/sound/pci/hda/patch_sigmatel.c	2008-08-31 11:06:37.000000000 +1000
> +++ linux-source-2.6.27/sound/pci/hda/patch_sigmatel.c	2008-08-31 11:07:14.000000000 +1000
> @@ -3591,7 +3591,7 @@
>  	spec->num_pwrs = ARRAY_SIZE(stac92hd73xx_pwr_nids);
>  	spec->pwr_nids = stac92hd73xx_pwr_nids;
>  
> -	err = stac92xx_parse_auto_config(codec, 0x22, 0x24);
> +	err = stac92xx_parse_auto_config(codec, 0x26, 0x24);
>  
>  	if (!err) {
>  		if (spec->board_config < 0) {
> 
> And pointed mythtv at ALSA:plughw:0,1. Quick and dirty I know :)
> 
> Details of the chipset are below.

Thanks.  There seems two problems behind.

- the codec has two SPDIF outputs but the driver assumes only the
  first one
- the driver wrongly probes the pin widget instead of audio-out
  widget

So, your patch fixes only the latter problem which is specific to your
device.

Could you rewrite the patch to probe the pin first?  That is, check
the availability of pin 0x22 and 0x23.  If one of them is available,
pick the corresponding audio-out widget (0x25 and 0x26).


thanks,

Takashi


> 
> Anton
> --
> 
> # lspci -vvnn
> 00:1b.0 Audio device [0403]: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller [8086:3a3e]
> 	Subsystem: Intel Corporation Device [8086:5002]
> 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> 	Latency: 0, Cache Line Size: 64 bytes
> 	Interrupt: pin A routed to IRQ 22
> 	Region 0: Memory at fe820000 (64-bit, non-prefetchable) [size=16K]
> 	Capabilities: [50] Power Management version 2
> 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> 		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
> 	Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
> 		Address: 0000000000000000  Data: 0000
> 	Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
> 		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
> 			ExtTag- RBE- FLReset+
> 		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> 			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
> 			MaxPayload 128 bytes, MaxReadReq 128 bytes
> 		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> 		LnkCap:	Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us
> 			ClockPM- Suprise- LLActRep- BwNot-
> 		LnkCtl:	ASPM Disabled; Disabled- Retrain- CommClk-
> 			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> 		LnkSta:	Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
> 	Capabilities: [100] Virtual Channel <?>
> 	Capabilities: [130] Root Complex Link <?>
> 	Kernel driver in use: HDA Intel
> 	Kernel modules: snd-hda-intel
> 
> # aplay -l
> **** List of PLAYBACK Hardware Devices ****
> card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
>   Subdevices: 1/1
>   Subdevice #0: subdevice #0
> card 0: Intel [HDA Intel], device 1: STAC92xx Digital [STAC92xx Digital]
>   Subdevices: 1/1
>   Subdevice #0: subdevice #0
> 
> # aplay -L
> default:CARD=Intel
>     HDA Intel, STAC92xx Analog
>     Default Audio Device
> front:CARD=Intel,DEV=0
>     HDA Intel, STAC92xx Analog
>     Front speakers
> surround40:CARD=Intel,DEV=0
>     HDA Intel, STAC92xx Analog
>     4.0 Surround output to Front and Rear speakers
> surround41:CARD=Intel,DEV=0
>     HDA Intel, STAC92xx Analog
>     4.1 Surround output to Front, Rear and Subwoofer speakers
> surround50:CARD=Intel,DEV=0
>     HDA Intel, STAC92xx Analog
>     5.0 Surround output to Front, Center and Rear speakers
> surround51:CARD=Intel,DEV=0
>     HDA Intel, STAC92xx Analog
>     5.1 Surround output to Front, Center, Rear and Subwoofer speakers
> surround71:CARD=Intel,DEV=0
>     HDA Intel, STAC92xx Analog
>     7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
> hdmi:CARD=Intel,DEV=0
>     HDA Intel
>     HDMI Audio Output
> null
>     Discard all samples (playback) or generate zero samples (capture)
> 
> # cat /proc/asound/card0/codec#2
> Codec: IDT 92HD73E1X5
> Address: 2
> Vendor Id: 0x111d7676
> Subsystem Id: 0x80865002
> Revision Id: 0x100202
> No Modem Function Group found
> Default PCM:
>     rates [0x5e0]: 44100 48000 88200 96000 192000
>     bits [0xe]: 16 20 24
>     formats [0x1]: PCM
> Default Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
> Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1
> GPIO: io=8, o=0, i=0, unsolicited=1, wake=1
>   IO[0]: enable=1, dir=1, wake=0, sticky=0, data=1
>   IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0
>   IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0
> Node 0x0a [Pin Complex] wcaps 0x400183: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x08173f: IN OUT HP Detect Trigger ImpSense
>     Vref caps: HIZ 50 GRD 80
>   Pin Default 0x0321101f: [Jack] HP Out at Ext Left
>     Conn = 1/8, Color = Black
>     DefAssociation = 0x1, Sequence = 0xf
>   Pin-ctls: 0xc0: OUT HP VREF_HIZ
>   Unsolicited: tag=30, enabled=1
>   Connection: 6
>      0x15 0x16* 0x17 0x18 0x19 0x1e
> Node 0x0b [Pin Complex] wcaps 0x400183: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x08173f: IN OUT HP Detect Trigger ImpSense
>     Vref caps: HIZ 50 GRD 80
>   Pin Default 0x4f00000f: [N/A] Line Out at Ext UNKNOWN
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0x0, Sequence = 0xf
>   Pin-ctls: 0x00: VREF_HIZ
>   Unsolicited: tag=00, enabled=0
>   Connection: 6
>      0x15* 0x16 0x17 0x18 0x19 0x1e
> Node 0x0c [Pin Complex] wcaps 0x400183: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x081737: IN OUT Detect Trigger ImpSense
>     Vref caps: HIZ 50 GRD 80
>   Pin Default 0x4f0000f0: [N/A] Line Out at Ext UNKNOWN
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00: VREF_HIZ
>   Unsolicited: tag=00, enabled=0
>   Connection: 6
>      0x15* 0x16 0x17 0x18 0x19 0x1e
> Node 0x0d [Pin Complex] wcaps 0x400183: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x083f: IN OUT HP Detect Trigger ImpSense
>   Pin Default 0x90170110: [Fixed] Speaker at Int N/A
>     Conn = Analog, Color = Unknown
>     DefAssociation = 0x1, Sequence = 0x0
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x40: OUT
>   Unsolicited: tag=00, enabled=0
>   Connection: 6
>      0x15* 0x16 0x17 0x18 0x19 0x1e
> Node 0x0e [Pin Complex] wcaps 0x400183: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x081737: IN OUT Detect Trigger ImpSense
>     Vref caps: HIZ 50 GRD 80
>   Pin Default 0x03a11020: [Jack] Mic at Ext Left
>     Conn = 1/8, Color = Black
>     DefAssociation = 0x2, Sequence = 0x0
>   Pin-ctls: 0x24: IN VREF_80
>   Unsolicited: tag=30, enabled=1
>   Connection: 6
>      0x15* 0x16 0x17 0x18 0x19 0x1e
> Node 0x0f [Pin Complex] wcaps 0x400183: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x0837: IN OUT Detect Trigger ImpSense
>   Pin Default 0x0321101f: [Jack] HP Out at Ext Left
>     Conn = 1/8, Color = Black
>     DefAssociation = 0x1, Sequence = 0xf
>   Pin-ctls: 0x40: OUT
>   Unsolicited: tag=35, enabled=1
>   Connection: 6
>      0x15 0x16 0x17* 0x18 0x19 0x1e
> Node 0x10 [Pin Complex] wcaps 0x400183: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x0837: IN OUT Detect Trigger ImpSense
>   Pin Default 0x4f0000f0: [N/A] Line Out at Ext UNKNOWN
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Connection: 6
>      0x15* 0x16 0x17 0x18 0x19 0x1e
> Node 0x11 [Pin Complex] wcaps 0x400183: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x0837: IN OUT Detect Trigger ImpSense
>   Pin Default 0x4f0000f0: [N/A] Line Out at Ext UNKNOWN
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Connection: 6
>      0x15* 0x16 0x17 0x18 0x19 0x1e
> Node 0x12 [Pin Complex] wcaps 0x400081: Stereo
>   Pincap 0x0824: IN Detect
>   Pin Default 0x4f0000f0: [N/A] Line Out at Ext UNKNOWN
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
> Node 0x13 [Pin Complex] wcaps 0x400003: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x0820: IN
>   Pin Default 0x90a60160: [Fixed] Mic at Int N/A
>     Conn = Digital, Color = Unknown
>     DefAssociation = 0x6, Sequence = 0x0
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x00:
> Node 0x14 [Pin Complex] wcaps 0x400003: Stereo Amp-In
>   Amp-In caps: N/A
>   Amp-In vals:  [0x00 0x00]
>   Pincap 0x0820: IN
>   Pin Default 0x4f0000f0: [N/A] Line Out at Ext UNKNOWN
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
> Node 0x15 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0x40 0x40]
>   Converter: stream=0, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Node 0x16 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0xd9 0xd9]
>   Converter: stream=0, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Node 0x17 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0xd9 0xd9]
>   Converter: stream=0, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Node 0x18 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0xff 0xff]
>   Converter: stream=0, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Node 0x19 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
>   Amp-Out caps: N/A
>   Amp-Out vals:  [0x19 0x19]
>   Converter: stream=0, channel=0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
> Node 0x1a [Audio Input] wcaps 0x1d0541: Stereo
>   Converter: stream=0, channel=0
>   SDI-Select: 0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
>   Connection: 1
>      0x20
>   Processing caps: benign=0, ncoeff=0
> Node 0x1b [Audio Input] wcaps 0x1d0541: Stereo
>   Converter: stream=0, channel=0
>   SDI-Select: 0
>   Power: setting=D0, actual=D0
>   Delay: 13 samples
>   Connection: 1
>      0x21
>   Processing caps: benign=0, ncoeff=0
> Node 0x1c [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
>   Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=1
>   Amp-Out vals:  [0x00]
> Node 0x1d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
>   Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
>   Amp-In vals:  [0x97 0x97] [0x97 0x97] [0x97 0x97] [0x97 0x97] [0x97 0x97]
>   Connection: 5
>      0x28 0x29 0x2a 0x2b 0x12
> Node 0x1e [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
>   Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1
>   Amp-Out vals:  [0x9f 0x9f]
>   Connection: 1
>      0x1d
> Node 0x1f [Volume Knob Widget] wcaps 0x600000: Mono
>   Volume-Knob: delta=1, steps=127, direct=1, val=108
>   Connection: 5
>      0x15* 0x16 0x17 0x18 0x19
> Node 0x20 [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L
>   Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
>   Amp-Out vals:  [0x80 0x80]
>   Connection: 12
>      0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 0x11 0x12 0x13 0x14 0x1d*
> Node 0x21 [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L
>   Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
>   Amp-Out vals:  [0x80 0x80]
>   Connection: 12
>      0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 0x11 0x12 0x13 0x14 0x1d*
> Node 0x22 [Pin Complex] wcaps 0x400301: Stereo Digital
>   Pincap 0x0810: OUT
>   Pin Default 0x4f0000f0: [N/A] Line Out at Ext UNKNOWN
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Connection: 3
>      0x25* 0x20 0x21
> Node 0x23 [Pin Complex] wcaps 0x400301: Stereo Digital
>   Pincap 0x0810: OUT
>   Pin Default 0x01451140: [Jack] SPDIF Out at Ext Rear
>     Conn = Optical, Color = Black
>     DefAssociation = 0x4, Sequence = 0x0
>     Misc = NO_PRESENCE
>   Pin-ctls: 0x40: OUT
>   Connection: 3
>      0x26* 0x20 0x21
> Node 0x24 [Pin Complex] wcaps 0x400681: Stereo Digital
>   Pincap 0x0810024: IN EAPD Detect
>   EAPD 0x0:
>   Pin Default 0x40f000f0: [N/A] Other at Ext N/A
>     Conn = Unknown, Color = Unknown
>     DefAssociation = 0xf, Sequence = 0x0
>   Pin-ctls: 0x00:
>   Unsolicited: tag=00, enabled=0
>   Power: setting=D0, actual=D0
> Node 0x25 [Audio Output] wcaps 0x4021d: Stereo Digital Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
>   Amp-Out vals:  [0x00 0x00]
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0x5e0]: 44100 48000 88200 96000 192000
>     bits [0xe]: 16 20 24
>     formats [0x5]: PCM AC3
>   Delay: 4 samples
> Node 0x26 [Audio Output] wcaps 0x4021d: Stereo Digital Amp-Out
>   Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
>   Amp-Out vals:  [0x00 0x00]
>   Converter: stream=0, channel=0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0x5e0]: 44100 48000 88200 96000 192000
>     bits [0xe]: 16 20 24
>     formats [0x5]: PCM AC3
>   Delay: 4 samples
> Node 0x27 [Audio Input] wcaps 0x14031b: Stereo Digital Amp-In
>   Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
>   Amp-In vals:  [0x00 0x00]
>   Converter: stream=0, channel=0
>   SDI-Select: 0
>   Digital:
>   Digital category: 0x0
>   PCM:
>     rates [0x160]: 44100 48000 96000
>     bits [0xe]: 16 20 24
>     formats [0x5]: PCM AC3
>   Delay: 4 samples
>   Connection: 1
>      0x24
> Node 0x28 [Audio Selector] wcaps 0x300101: Stereo
>   Connection: 4
>      0x0a 0x0b* 0x0d 0x0f
> Node 0x29 [Audio Selector] wcaps 0x300101: Stereo
>   Connection: 4
>      0x0a 0x0e* 0x10 0x11
> Node 0x2a [Audio Selector] wcaps 0x300101: Stereo
>   Connection: 4
>      0x0b 0x0c* 0x10 0x11
> Node 0x2b [Audio Selector] wcaps 0x300101: Stereo
>   Connection: 4
>      0x15* 0x16 0x17 0x18
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 


More information about the Alsa-devel mailing list