Since 10.5.2 I'm having trouble to add audio via EFI. I've had this with a 883 on Asus P5K (P35) and with a 889a on Gigabyte P35-DS3.
It only works after modifying AppleHDA.kext with AppleHDAPatcherv1.20 or using HDAenabler (+ patcher for 889a, else outputs are not correctly mapped). After reading
this post I understand that for 10.5.2 HDEF is needed instead of AZAL and that
Taruga found that Realtek 885 (so 889A should work too, codec dump of 889A gives 885) is added in 10.5.2. However using EFI it keeps coming up as AZAL.
Further more, when using HDAenabler it shows up in the Profiler Audio (Built In):

And when using HDAenabler + AppleHDAPatcherv1.20 it even shows Available Devices:

Speaker works for rear front line output.
When comparing the IO you can see that the PinConfigurations is added and eventhough it isn't correct, it atleast makes the rear lineout/HP and digital out working:


So I think the outputs can be corrected by modifying the patched AppleHDA.kext.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<!-- Patched by Taruga's AppleHDA Patcher v1.20 -->
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>AppleHDA</string>
<key>CFBundleGetInfoString</key>
<string>1.4.0a22, Copyright Apple Inc. 2005-2007</string>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleHDA</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Apple HDA Driver</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>1.4.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.4.0a23</string>
<key>IOKitPersonalities</key>
<dict>
<key>HDA Driver</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleHDA</string>
<key>CodecInfo</key>
<array>
<dict>
<key>AnalogOut</key>
<dict>
<key>SignalProcessing</key>
<dict>
<key>Volume</key>
<dict>
<key>SoftwareVolume</key>
<dict/>
</dict>
</dict>
</dict>
<key>CodecID</key>
<integer>283904133</integer>
<key>ForceWakeToIdle</key>
<true/>
</dict>
</array>
<key>IOClass</key>
<string>AppleHDADriver</string>
<key>IOProviderClass</key>
<string>AppleHDACodec</string>
<key>InputSampleLatency</key>
<integer>30</integer>
<!-- Realtek -->
<key>Layouts</key>
<array>
<dict>
<key>LayoutID</key>
<integer>12</integer>
<key>PathMapRef</key>
<array>
<dict>
<key>CodecID</key>
<array>
<integer>283904133</integer>
</array>
<key>Headphone</key>
<dict>
<key>AmpPostDelay</key>
<integer>150</integer>
<key>AmpPreDelay</key>
<integer>150</integer>
</dict>
<key>Inputs</key>
<array>
<string>LineIn</string>
<string>Mic</string>
<string>SPDIFIn</string>
</array>
<key>IntSpeaker</key>
<dict>
<key>AmpPostDelay</key>
<integer>150</integer>
<key>AmpPreDelay</key>
<integer>150</integer>
<key>MaximumBootBeepValue</key>
<integer>64</integer>
<key>MuteGPIO</key>
<integer>0</integer>
</dict>
<key>LineIn</key>
<dict/>
<key>LineOut</key>
<dict>
<key>AmpPostDelay</key>
<integer>150</integer>
<key>AmpPreDelay</key>
<integer>150</integer>
</dict>
<key>Mic</key>
<dict/>
<key>Outputs</key>
<array>
<string>IntSpeaker</string>
<string>Headphone</string>
<string>LineOut</string>
<string>SPDIFOut</string>
</array>
<key>PathMapID</key>
<integer>1</integer>
<key>SPDIFIn</key>
<dict/>
<key>SPDIFOut</key>
<dict/>
</dict>
</array>
</dict>
</array>
<key>OutputSampleLatency</key>
<integer>30</integer>
<key>PathMaps</key>
<array>
<dict>
<key>PathMap</key>
<array>
<!-- Mic Back -->
<array>
<array>
<array>
<dict>
<key>Amp</key>
<dict>
<key>Channels</key>
<array>
<dict>
<key>Bind</key>
<integer>1</integer>
<key>Channel</key>
<integer>1</integer>
</dict>
<dict>
<key>Bind</key>
<integer>2</integer>
<key>Channel</key>
<integer>2</integer>
</dict>
</array>
<key>MuteInputAmp</key>
<true/>
<key>PublishMute</key>
<true/>
<key>PublishVolume</key>
<true/>
<key>VolumeInputAmp</key>
<true/>
</dict>
<key>NodeID</key>
<integer>9</integer>
<key>ProcessingState</key>
<true/>
</dict>
<dict>
<key>NodeID</key>
<integer>34</integer>
<key>Boost</key>
<integer>1</integer>
</dict>
<dict>
<key>NodeID</key>
<integer>24</integer>
<key>VREF</key>
<integer>80</integer>
</dict>
</array>
</array>
</array>
<!-- Line In -->
<array>
<array>
<array>
<dict>
<key>Amp</key>
<dict>
<key>Channels</key>
<array>
<dict>
<key>Bind</key>
<integer>1</integer>
<key>Channel</key>
<integer>1</integer>
</dict>
<dict>
<key>Bind</key>
<integer>2</integer>
<key>Channel</key>
<integer>2</integer>
</dict>
</array>
<key>MuteInputAmp</key>
<true/>
<key>PublishMute</key>
<true/>
<key>PublishVolume</key>
<true/>
<key>VolumeInputAmp</key>
<true/>
</dict>
<key>NodeID</key>
<integer>8</integer>
</dict>
<dict>
<key>NodeID</key>
<integer>35</integer>
</dict>
<dict>
<key>NodeID</key>
<integer>26</integer>
</dict>
</array>
</array>
</array>
<!-- SPDIF IN -->
<array>
<array>
<array>
<dict>
<key>NodeID</key>
<integer>10</integer>
</dict>
<dict>
<key>DetectAssistant</key>
<integer>10</integer>
<key>DetectDelegate</key>
<integer>32</integer>
<key>NodeID</key>
<integer>31</integer>
</dict>
</array>
</array>
</array>
<!-- SPEAKER -->
<array>
<array>
<array>
<dict>
<key>NodeID</key>
<integer>20</integer>
</dict>
<dict>
<key>Amp</key>
<dict>
<key>Channels</key>
<array>
<dict>
<key>Bind</key>
<integer>1</integer>
<key>Channel</key>
<integer>1</integer>
</dict>
<dict>
<key>Bind</key>
<integer>2</integer>
<key>Channel</key>
<integer>2</integer>
</dict>
</array>
<key>MuteInputAmp</key>
<true/>
<key>PublishMute</key>
<true/>
<key>PublishVolume</key>
<true/>
<key>VolumeInputAmp</key>
<false/>
</dict>
<key>NodeID</key>
<integer>12</integer>
</dict>
<dict>
<key>NodeID</key>
<integer>2</integer>
</dict>
</array>
</array>
</array>
<!-- HP -->
<array>
<array>
<array>
<dict>
<key>NodeID</key>
<integer>27</integer>
</dict>
<dict>
<key>Amp</key>
<dict>
<key>Channels</key>
<array>
<dict>
<key>Bind</key>
<integer>1</integer>
<key>Channel</key>
<integer>1</integer>
</dict>
<dict>
<key>Bind</key>
<integer>2</integer>
<key>Channel</key>
<integer>2</integer>
</dict>
</array>
<key>MuteInputAmp</key>
<true/>
<key>PublishMute</key>
<true/>
<key>PublishVolume</key>
<true/>
<key>VolumeInputAmp</key>
<false/>
</dict>
<key>NodeID</key>
<integer>38</integer>
</dict>
<dict>
<key>NodeID</key>
<integer>37</integer>
</dict>
</array>
</array>
</array>
<!-- LINE OUT 1 -->
<array>
<array>
<array>
<dict>
<key>NodeID</key>
<integer>21</integer>
</dict>
<dict>
<key>Amp</key>
<dict>
<key>Channels</key>
<array>
<dict>
<key>Bind</key>
<integer>1</integer>
<key>Channel</key>
<integer>1</integer>
</dict>
<dict>
<key>Bind</key>
<integer>2</integer>
<key>Channel</key>
<integer>2</integer>
</dict>
</array>
<key>MuteInputAmp</key>
<true/>
<key>PublishMute</key>
<true/>
<key>PublishVolume</key>
<true/>
<key>VolumeInputAmp</key>
<false/>
</dict>
<key>NodeID</key>
<integer>13</integer>
</dict>
<dict>
<key>NodeID</key>
<integer>3</integer>
</dict>
</array>
</array>
</array>
<!-- SPDIF OUT -->
<array>
<array>
<array>
<dict>
<key>NodeID</key>
<integer>30</integer>
</dict>
<dict>
<key>NodeID</key>
<integer>6</integer>
</dict>
</array>
</array>
</array>
</array>
<key>PathMapID</key>
<integer>1</integer>
</dict>
</array>
<key>SampleOffsetPad</key>
<integer>260</integer>
</dict>
<key>HDA Generic Codec Driver</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleHDA</string>
<key>IOClass</key>
<string>AppleHDACodecGeneric</string>
<key>IOHDACodecFunctionGroupType</key>
<integer>1</integer>
<key>IOProviderClass</key>
<string>IOHDACodecFunction</string>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
<!-- <key>com.apple.driver.DspFuncLib</key>
<string>1.0.0a1</string> -->
<key>com.apple.iokit.IOAudioFamily</key>
<string>1.1fc9</string>
<key>com.apple.iokit.IOHDAFamily</key>
<string>1.0.0d1</string>
<key>com.apple.kpi.bsd</key>
<string>8.0.0b3</string>
<key>com.apple.kpi.iokit</key>
<string>8.0.0b3</string>
<key>com.apple.kpi.libkern</key>
<string>8.0.0b3</string>
<key>com.apple.kpi.mach</key>
<string>8.0.0b3</string>
</dict>
</dict>
</plist>
I did not manage to modify the plist to get more outputs working, but if someone else looks at it here is what I learned:
| Mic (Pink) | 9 | 34 | 24 |
| Line in (Blue) | 8 | 35 | 26 |
| Front (Green) | 20 | 12 | 2 |
| Rear (Black) | 21 | 13 | 3 |
| Sub/Center (Orange) | 22 | 14 | 4 |
| Side (Red) | 23 | 15 | 5 |
| Headphones | 27 | 38 | 37 |
| SPDIF IN | 10 | 31 |
| SPDIF OUT | 30 | 6 |
For Mic front I only know that the bold value is 25 and 28 is ATAPI and 29 is Ext line out.
How does this translate to <10401101 12200101 11600101 14100101 3099a101 3f90a102 31318101 1f402102 32013399 00010040 60014581 00010040>?
<dict>
<key>PinConfigurations</key>
<data>
EEARARIgAQERYAEBFBABATCZoQE/kKECMTGBAR9AIQIyATOZAAEAQGABRYEA
AQBA
</data>
<key>built-in</key>
<string>0x00</string>
<key>layout-id</key>
<string>0x0000000c</string>
<key>revision-id</key>
<string>0x00000001</string>
<key>subsystem-id</key>
<string>0x0000a002</string>
<key>subsystem-vendor-id</key>
<string>0x00001458</string>
<key>vendor-id</key>
<string>0x00008086</string>
</dict>
But how to get this working with only a EFI device-string? I can't get it to show up as HDEF. Adding the PinConfigurations to info.plist in HDAenabler removes the need for a modied AppleHDA.kext.
Anyone with a better solution or a working AppleHDA.kext with the correct (+rear,side,sub/center) outputs?
One other thing, I've attached two codec dumps, the first is one I downloaded and it works with hdapatcher, the second is one I copied from ubuntu, but hdapather gives a unsupported codec warning, does anyone know why?