Jump to content

Steps to take to get AppleHDA to work


aximusnl
 Share

3 posts in this topic

Recommended Posts

I'm stuck on getting AppleHDA to work with my sound card (IDT 92HD81B1X5).

Details:
00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 05)
Subsystem: Hewlett-Packard Company Device [103c:1659]

Codec: IDT 92HD81B1X5
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x111d7605
Subsystem Id: 0x103c1659
Revision Id: 0x100105

I know step one is to fix the DSDT, so i've added:

Method (_DSM, 4, NotSerialized)
								{
									Store (Package (0x08)
										{
											"codec-id",
											Buffer (0x04)
											{
												0x05, 0x76, 0x1D, 0x11
											},
				
											"layout-id",
											Buffer (0x04)
											{
												0x37, 0x01, 0x00, 0x00
											},
				
											"device-type",
											Buffer (0x0F)
											{
												"IDT 92HD81B1X5"
											 },
				
										}, Local0)
									DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
									Return (Local0)
								}

This is where i get stuck and i'm having the following questions:

  • The layout-id in the code above is a 'guess'. How do i determine the layout-id?
  • How do i create the integer version of the layout-id (byte reverse the hex -> to decimal?)
  • Should i modify AppleHDA.kext from Lion (10.7.1) or should i use a legacy version?
  • In AppleHDA.kext/Contents/Plugins/AppleHDAController.kext/Contentents/Info.plist:
    <dict>
    
    			  <key>CodecAddressMask</key>
    
    									<data>
    
    									AQAAAA==
    
    									</data>
    
    									<key>LayoutID</key>
    
    									<integer>16392</integer>
    
    									<key>PCIVendorDeviceID</key>
    
    									<integer>282987200</integer>
    
    								</dict>
    I suppose i have to change this, but do I also have to change the 'AQAAA==' part, and how do i determine this?
  • What else do i need to change or what other steps are there to take. For example pin-layout?

Any help is welcome, thanks in advance!

Complete output of "cat /proc/asound/card0/codec#0"

 

 

Codec: IDT 92HD81B1X5
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x111d7605
Subsystem Id: 0x103c1659
Revision Id: 0x100105
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=3, o=0, i=0, unsolicited=1, wake=1
IO[0]: enable=1, dir=1, wake=0, sticky=0, data=0, unsol=0
IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
Power-Map: 0x00
Node 0x0a [Pin Complex] wcaps 0x400583: Stereo Amp-In
Amp-In caps: N/A
Amp-In vals: [0x00 0x00]
Pincap 0x0001173c: IN OUT HP EAPD Detect
Vref caps: HIZ 50 GRD 80
EAPD 0x2: EAPD
Pin Default 0x40f000f0: [N/A] Other at Ext N/A
Conn = Unknown, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Pin-ctls: 0x00: VREF_HIZ
Unsolicited: tag=00, enabled=0
Power: setting=D0, actual=D0
Connection: 3
0x13* 0x14 0x1c
Node 0x0b [Pin Complex] wcaps 0x400581: Stereo
Pincap 0x0001001c: OUT HP EAPD Detect
EAPD 0x2: EAPD
Pin Default 0x0221101f: [Jack] HP Out at Ext Front
Conn = 1/8, Color = Black
DefAssociation = 0x1, Sequence = 0xf
Pin-ctls: 0x00:
Unsolicited: tag=01, enabled=1
Power: setting=D0, actual=D0
Connection: 3
0x13 0x14* 0x1c
Node 0x0c [Pin Complex] wcaps 0x400583: Stereo Amp-In
Control: name="Front Mic Jack Mode", index=0, device=0
ControlAmp: chs=0, dir=In, idx=0, ofs=0
Control: name="Mic Capture Volume", index=0, device=0
ControlAmp: chs=3, dir=In, idx=0, ofs=0
Amp-In caps: N/A
Amp-In vals: [0x00 0x00]
Pincap 0x00011734: IN OUT EAPD Detect
Vref caps: HIZ 50 GRD 80
EAPD 0x2: EAPD
Pin Default 0x02a11020: [Jack] Mic at Ext Front
Conn = 1/8, Color = Black
DefAssociation = 0x2, Sequence = 0x0
Pin-ctls: 0x24: IN VREF_80
Unsolicited: tag=02, enabled=1
Power: setting=D0, actual=D0
Connection: 3
0x13* 0x14 0x1c
Node 0x0d [Pin Complex] wcaps 0x400501: Stereo
Pincap 0x00010050: OUT EAPD Balanced
EAPD 0x2: EAPD
Pin Default 0x40f000f0: [N/A] Other at Ext N/A
Conn = Unknown, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Pin-ctls: 0x40: OUT
Power: setting=D0, actual=D0
Connection: 3
0x13* 0x14 0x1c
Node 0x0e [Pin Complex] wcaps 0x400583: Stereo Amp-In
Amp-In caps: N/A
Amp-In vals: [0x00 0x00]
Pincap 0x00010034: IN OUT EAPD Detect
EAPD 0x2: EAPD
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
Connection: 3
0x13 0x14* 0x1c
Node 0x0f [Pin Complex] wcaps 0x400583: Stereo Amp-In
Amp-In caps: N/A
Amp-In vals: [0x00 0x00]
Pincap 0x00010034: IN OUT EAPD Detect
EAPD 0x2: EAPD
Pin Default 0x92170110: [Fixed] Speaker at Int Front
Conn = Analog, Color = Unknown
DefAssociation = 0x1, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x40: OUT
Unsolicited: tag=00, enabled=0
Power: setting=D0, actual=D0
Connection: 3
0x13 0x14* 0x1c
Node 0x10 [Pin Complex] wcaps 0x400500: Mono
Pincap 0x00000010: OUT
Pin Default 0x40f000f0: [N/A] Other at Ext N/A
Conn = Unknown, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Pin-ctls: 0x00:
Power: setting=D0, actual=D0
Connection: 1
0x1a
Node 0x11 [Pin Complex] wcaps 0x400483: Stereo Amp-In
Control: name="Internal Mic Capture Volume", index=0, device=0
ControlAmp: chs=3, dir=In, idx=0, ofs=0
Amp-In caps: N/A
Amp-In vals: [0x00 0x00]
Pincap 0x00000024: IN Detect
Pin Default 0xd5a30130: [Both] Mic at Int Top
Conn = ATAPI, Color = Unknown
DefAssociation = 0x3, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x20: IN
Unsolicited: tag=00, enabled=0
Power: setting=D0, actual=D0
Node 0x12 [Vendor Defined Widget] wcaps 0xf00503: Stereo Amp-In
Amp-In caps: N/A
Amp-In vals: [0x00 0x00]
Power: setting=D0, actual=D0
Connection: 1
0x20
Node 0x13 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
Control: name="Speaker Playback Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=63
Control: name="Speaker Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Device: name="STAC92xx Analog", type="Audio", device=0
Amp-Out caps: N/A
Amp-Out vals: [0x64 0x64]
Converter: stream=5, channel=0
Power: setting=D0, actual=D0
Delay: 13 samples
Node 0x14 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L
Control: name="Headphone Playback Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=63
Control: name="Headphone Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: N/A
Amp-Out vals: [0x64 0x64]
Converter: stream=5, channel=0
Power: setting=D0, actual=D0
Delay: 13 samples
Node 0x15 [Audio Input] wcaps 0x1d0541: Stereo
Device: name="STAC92xx Analog", type="Audio", device=0
Converter: stream=1, channel=0
SDI-Select: 0
Power: setting=D0, actual=D0
Delay: 13 samples
Connection: 1
0x17
Processing caps: benign=0, ncoeff=0
Node 0x16 [Audio Input] wcaps 0x1d0541: Stereo
Converter: stream=0, channel=0
SDI-Select: 0
Power: setting=D0, actual=D0
Delay: 13 samples
Connection: 1
0x18
Processing caps: benign=0, ncoeff=0
Node 0x17 [Audio Selector] wcaps 0x300d0d: Stereo Amp-Out R/L
Control: name="Capture Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Control: name="Capture Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
Amp-Out vals: [0x08 0x08]
Power: setting=D0, actual=D0
Connection: 7
0x0c 0x0e 0x0f 0x1b 0x11* 0x12 0x0a
Node 0x18 [Audio Selector] wcaps 0x300d0d: Stereo Amp-Out R/L
Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
Amp-Out vals: [0x80 0x80]
Power: setting=D0, actual=D0
Connection: 7
0x0c* 0x0e 0x0f 0x1b 0x11 0x12 0x0a
Node 0x19 [Audio Selector] wcaps 0x300501: Stereo
Power: setting=D0, actual=D0
Connection: 3
0x13* 0x14 0x1c
Node 0x1a [Audio Mixer] wcaps 0x200500: Mono
Power: setting=D0, actual=D0
Connection: 1
0x19
Node 0x1b [Audio Mixer] wcaps 0x20050b: 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] [0x97 0x97]
Power: setting=D0, actual=D0
Connection: 6
0x0c 0x0e 0x0f 0x13 0x14 0x0a
Node 0x1c [Audio Selector] wcaps 0x30050d: Stereo Amp-Out
Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1
Amp-Out vals: [0x9f 0x9f]
Power: setting=D0, actual=D0
Connection: 1
0x1b
Node 0x1d [Audio Output] wcaps 0x4061d: 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
Power: setting=D0, actual=D0
Delay: 4 samples
Node 0x1e [Audio Output] wcaps 0x4061d: 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
Power: setting=D0, actual=D0
Delay: 4 samples
Node 0x1f [Pin Complex] wcaps 0x400781: Stereo Digital
Pincap 0x00000014: OUT Detect
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
Connection: 1
0x1d
Node 0x20 [Pin Complex] wcaps 0x400781: Stereo Digital
Pincap 0x00000034: IN OUT Detect
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
Connection: 1
0x1e
Node 0x21 [Beep Generator Widget] wcaps 0x70040c: Mono Amp-Out
Control: name="Beep Playback Switch", index=0, device=0
ControlAmp: chs=1, dir=Out, idx=0, ofs=0
Control: name="Beep Playback Volume", index=0, device=0
ControlAmp: chs=1, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=1
Amp-Out vals: [0x00]
Power: setting=D0, actual=D0
Node 0x22 [Vendor Defined Widget] wcaps 0xf00000: Mono
Link to comment
Share on other sites

I'm stuck on getting AppleHDA to work with my sound card (IDT 92HD81B1X5).

...

 

I've answered some of my own questions:

  • You use the legacy AppleHDA.kext (10.6.3 if i'm not mistaking)
  • The layout-id you use in DSDT had to correspond with the one you're going to use in the kext. And is indeed byte reversed.
  • The driver itself has to be binary patched

I still have no idea how to get the layout right... driver is recognized now, all is working except output. Rather critical if you ask me :(

Link to comment
Share on other sites

  • 1 year later...

I've answered some of my own questions:

  • You use the legacy AppleHDA.kext (10.6.3 if i'm not mistaking)
  • The layout-id you use in DSDT had to correspond with the one you're going to use in the kext. And is indeed byte reversed.
  • The driver itself has to be binary patched

I still have no idea how to get the layout right... driver is recognized now, all is working except output. Rather critical if you ask me :)

Try this Kext:http://www.osx86.net/view/3371-applehda.ketxt_for_idt_92hd81b1x5.html

Link to comment
Share on other sites

 Share

×
×
  • Create New...