QUOTE (callumj09 @ Sep 10 2009, 11:48 PM)

The audio works fine for me on an EX58-UD3R, in fact, it's great quality. I even listen to music on it.
Look back a couple of pages at my posts. I used cparm's ALC888 DSDT solution. You need to use all three kexts he has provided in that post, and SL's original AppleHDA all in S/L/E, patch your DSDT and it should work fine. Hope that helps!
I tried it once more without results.Redid my whole Snow Leopard installation and rebuild the DSDT from scratch once more.
Now I'm up and running with audio, thanks callum and cparm

Would still love to know why it wouldn't work earlier as I'm pretty sure my current config is the same as the previous.
I have attached my DSDT.dsl which is using cparm's modified Device (HDEF) section, it also includes the CMOS reset fix. I'm not completely familiar with interchanging DSDT's on the same motherboard but it would be advised to build your own. This is working on
EX58-UD3R with
ALC888.
Required tool:
DSDT_Patcher1.0.1eIn short the instructions are as following, partly provided by the "How to patch DSDT with LAN and HDEF functions".
Since I'm using Digital_Dreamers script to install Snow Leopard I ran the DSDT patcher option from the script.
I took dsdt_fixed.txt from X58_Mobo_Patcher_Installer/~extra/DSDT_Patcher/Debug/ directory and renamed it to DSDT.dsl.
If you do not have the script you will need to do the following yourself:
Download DSDT Patcher and unpack, open a terminal and navigate to the directory.
Execute:
CODE
./DSDT\ Patcher -newHPET
and press 0, you should now have a dsdt_fixed.txt in your
Debug directory, rename to DSDT.dsl.
Open up DSDT.dsl and search for the line
CODE
Notify (\_SB.PCI0.USB0, Zero)
Make this section look as following(basically you add the Return (Package (0x02) { ... }:
CODE
Notify (\_SB.PCI0.USB0, Zero)
Notify (\_SB.PCI0.USB1, Zero)
Notify (\_SB.PCI0.USB2, Zero)
Notify (\_SB.PCI0.USB3, Zero)
Notify (\_SB.PCI0.USB4, Zero)
Notify (\_SB.PCI0.USB5, Zero)
Return (Package (0x02)
{
0x00,
0x00
})
Now search for
AZAL and replace it with HDEF. In my case there are 2 instances.
First one:
CODE
Notify (\_SB.PCI0.AZAL, 0x02)
Change this to:
CODE
Notify (\_SB.PCI0.HDEF, 0x02)
Second one:
CODE
Device (AZAL)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
}
}
Replace with the following:
CODE
Device (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0C)
{
"codec-id",
Buffer (0x04)
{
0x88, 0x08, 0xEC, 0x10
},
"layout-id",
Buffer (0x04)
{
0x78, 0x03, 0x00, 0x00
},
"device-type",
Buffer (0x07)
{
"ALC888"
},
"PinConfigurations",
Buffer (0x28)
{
/* 0000 */ 0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
/* 0008 */ 0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
/* 0010 */ 0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
/* 0018 */ 0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
/* 0020 */ 0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
},
"reg",
Buffer (0x28)
{
/* 0000 */ 0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
},
"platformFamily",
Buffer (One)
{
0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Method (DTGP, 5, NotSerialized)
{
If (LEqual (Arg0, Buffer (0x10)
{
/* 0000 */ 0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
/* 0008 */ 0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
}))
{
If (LEqual (Arg1, One))
{
If (LEqual (Arg2, Zero))
{
Store (Buffer (One)
{
0x03
}, Arg4)
Return (One)
}
If (LEqual (Arg2, One))
{
Return (One)
}
}
}
Store (Buffer (One)
{
0x00
}, Arg4)
Return (Zero)
}
Unrelated to the audio but a must if you're going to run Snow Leopard is the CMOS Reset Fix.
If you're using Digital_Dreamers install script this is already done, this should only be necessary if you manually run DSDT Patcher.Search dsdt.dsl for
CODE
Device (RTC)
Change the
0x04 you can see under
Name (ATT0, ResourceTemplate () and under
Name (ATT1, ResourceTemplate () to
0x02Final result in my case:
CODE
Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (ATT0, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x02, // Length
)
})
Name (ATT1, ResourceTemplate ()
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x02, // Length
)
})
Method (_CRS, 0, NotSerialized)
Save and close DSDT.dsl
Open up a terminal and navigate to the directory, make sure you have the iasl executable from DSDT Patcher in the same directory and execute the command:
./iasl -sa DSDT.dslIf everything went oke you should have no errors. Now copy DSDT.aml to your desired location, in my case this is /Extra. Place the included kext files in /S/L/E or /Extra, rebuild caches and reboot.
Kexts and Device (HDEF) thanks to CPARM and thanks to tmongkol for the
patching instructions.