You can fix the repair permissions problem by reinstalling BSD.pkg from within SL. If your DSDT file is right, you can get audio on the EX58-UD3R by placing the attached kext in your E/E folder. Just make sure to get rid of other HD kexts (like Voodoo) and run kextutility before rebooting.
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)
}
}