Jump to content

ALC889A with DSDT.aml


  • Please log in to reply
12 replies to this topic

#1
checcco

checcco

    InsanelyMac Protégé

  • Members
  • PipPip
  • 96 posts
Hi guys... I think nobody has managed yo get alc889a to work completely with DSDT.aml

This is what koalala patcher outputs selecting 889a and HDEF, but sound is not working in any way. (and i can see some sounds assertions while booting)

[codebox]Device (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
}

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x08)
{
"codec-id",
Buffer (0x04)
{
0x89, 0x08, 0xEC, 0x10
},

"layout-id",
/**** Is ResourceTemplate, but EndTag not at buffer end ****/ Buffer (0x04)
{
0x79, 0x03, 0x00, 0x00
},

"device-type",
Buffer (0x10)
{
"Realtek ALC889a"
},

"PinConfigurations",
Buffer (0x18)
{
/* 0000 */ 0x10, 0x44, 0x11, 0x01, 0x20, 0x14, 0x01, 0x01,
/* 0008 */ 0x40, 0x4C, 0x21, 0x02, 0x50, 0x34, 0x81, 0x01,
/* 0010 */ 0x60, 0x9C, 0xA1, 0x02, 0xF0, 0x61, 0x4B, 0x01
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}

Name (BUFA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,9,10,11,12,14,15}
})
Name (BUFB, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{}
})
CreateWordField (BUFB, One, IRQV)[/codebox]

In another thread tapper00 suggested to modify it this way. I still get sound assertions while booting but at least sound is working but from the wrong jack, black jack instead of green jack (like it should be on my mobo)

[codebox]Device (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
}

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x08)
{
"codec-id",
Buffer (0x04)
{
0x89, 0x08, 0xEC, 0x10
},

"layout-id",
Buffer (0x04)
{
0x0C, 0x00, 0x00, 0x00
},

"device-type",
Buffer (0x11)
{
"ALC889a"
},

"PinConfigurations",
Buffer (0x28)
{
/* 0000 */ 0x50, 0x70, 0x21, 0x01, 0x40, 0x01, 0x13, 0x90,
/* 0008 */ 0x20, 0x30, 0x81, 0x01, 0x41, 0x40, 0x01, 0x01,
/* 0010 */ 0x30, 0xE0, 0xC5, 0x01, 0x60, 0xE0, 0x45, 0x01,
/* 0018 */ 0x0F, 0x00, 0x00, 0x40, 0x0F, 0x00, 0x00, 0x40,
/* 0020 */ 0x10, 0x01, 0xA0, 0x90, 0x11, 0x01, 0xA0, 0x90
}
}, 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)
}
}

Name (BUFA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,6,7,9,10,11,12,14,15}
})
Name (BUFB, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{}
})
CreateWordField (BUFB, One, IRQV)[/codebox]

I thought that maybe comparing the code in the two boxes we can unserstand what's going on...
Maybe using pin configurations from koalala and the rest from tapper00...any clue?

#2
flames

flames

    InsanelyMac Protégé

  • Members
  • Pip
  • 34 posts
same here, analog audio comes from black jack instead of green jack. i couldn't test if digital out works lacking of digital receiver/speakers. my motherboard is ga-p35-ds4r rev 1.0, alc889a

this issue is absolutely identical with leopard 10.5.8 and snow leopard 10.6with same dsdt pinconfig.

but anyway, i am really happy now, since neither with 10.5.8 nor 10.6 no patched applehda nor legacyhda is needed, and no hda injectors/enablers. 100% vanilla :D

#3
ximekon

ximekon

    InsanelyMac Protégé

  • Members
  • PipPip
  • 76 posts
  • Gender:Male
  • Location:e-mac's place

Hi guys... I think nobody has managed yo get alc889a to work completely with DSDT.aml

This is what koalala patcher outputs selecting 889a and HDEF, but sound is not working in any way. (and i can see some sounds assertions while booting)

Device (HDEF)            {                Name (_ADR, 0x001B0000)                Method (_PRW, 0, NotSerialized)                {                    Return (Package (0x02)                    {                        0x0D,                         0x05                    })                }                Method (_DSM, 4, NotSerialized)                {                    Store (Package (0x08)                        {                            "codec-id",                             Buffer (0x04)                            {                                0x89, 0x08, 0xEC, 0x10                            },                             "layout-id",                             /**** Is ResourceTemplate, but EndTag not at buffer end ****/ Buffer (0x04)                            {                                0x79, 0x03, 0x00, 0x00                            },                             "device-type",                             Buffer (0x10)                            {                                "Realtek ALC889a"                            },                             "PinConfigurations",                             Buffer (0x18)                            {                                /* 0000 */    0x10, 0x44, 0x11, 0x01, 0x20, 0x14, 0x01, 0x01,                                 /* 0008 */    0x40, 0x4C, 0x21, 0x02, 0x50, 0x34, 0x81, 0x01,                                 /* 0010 */    0x60, 0x9C, 0xA1, 0x02, 0xF0, 0x61, 0x4B, 0x01                            }                        }, Local0)                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                    Return (Local0)                }            }            Name (BUFA, ResourceTemplate ()            {                IRQ (Level, ActiveLow, Shared, )                    {3,4,5,6,7,9,10,11,12,14,15}            })            Name (BUFB, ResourceTemplate ()            {                IRQ (Level, ActiveLow, Shared, )                    {}            })            CreateWordField (BUFB, One, IRQV)

In another thread tapper00 suggested to modify it this way. I still get sound assertions while booting but at least sound is working but from the wrong jack, black jack instead of green jack (like it should be on my mobo)

Device (HDEF)            {                Name (_ADR, 0x001B0000)                Method (_PRW, 0, NotSerialized)                {                    Return (Package (0x02)                    {                        0x0D,                         0x05                    })                }                Method (_DSM, 4, NotSerialized)                {                    Store (Package (0x08)                        {                            "codec-id",                             Buffer (0x04)                            {                                0x89, 0x08, 0xEC, 0x10                            },                             "layout-id",                             Buffer (0x04)                            {                                0x0C, 0x00, 0x00, 0x00                            },                             "device-type",                             Buffer (0x11)                            {                                "ALC889a"                            },                             "PinConfigurations",                             Buffer (0x28)                            {                                /* 0000 */    0x50, 0x70, 0x21, 0x01, 0x40, 0x01, 0x13, 0x90,                                 /* 0008 */    0x20, 0x30, 0x81, 0x01, 0x41, 0x40, 0x01, 0x01,                                 /* 0010 */    0x30, 0xE0, 0xC5, 0x01, 0x60, 0xE0, 0x45, 0x01,                                 /* 0018 */    0x0F, 0x00, 0x00, 0x40, 0x0F, 0x00, 0x00, 0x40,                                 /* 0020 */    0x10, 0x01, 0xA0, 0x90, 0x11, 0x01, 0xA0, 0x90                            }                        }, 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)                }            }            Name (BUFA, ResourceTemplate ()            {                IRQ (Level, ActiveLow, Shared, )                    {3,4,5,6,7,9,10,11,12,14,15}            })            Name (BUFB, ResourceTemplate ()            {                IRQ (Level, ActiveLow, Shared, )                    {}            })            CreateWordField (BUFB, One, IRQV)


I thought that maybe comparing the code in the two boxes we can unserstand what's going on...
Maybe using pin configurations from koalala and the rest from tapper00...any clue?

right that's what I would be trying aswell. I am very keen on your results... for more information about the acpi /dsdt thing go here: http://www.acpi.info/spec.htm

#4
checcco

checcco

    InsanelyMac Protégé

  • Members
  • PipPip
  • 96 posts
Good news, you can check the solution for alc889a audio here: http://www.insanelym...p...p=1229762 (POST #388 by aschar1)

Audio is coming out from green jack now.

From what I understand there's no pin configuration in the DSDT, but there's a kext to be moved in /E/E containing the configuration.

It works, but you have to choose the right output in Settings>Sound.

The kext needed is just a plist. Maybe someone can understand how to move the content of the plist in the dsdt so we don't need this kext and keep the installation as clean as possible.

#5
longtom

longtom

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 265 posts

Good news, you can check the solution for alc889a audio here: http://www.insanelym...p...p=1229762 (POST #388 by aschar1)

Audio is coming out from green jack now.

From what I understand there's no pin configuration in the DSDT, but there's a kext to be moved in /E/E containing the configuration.

It works, but you have to choose the right output in Settings>Sound.

The kext needed is just a plist. Maybe someone can understand how to move the content of the plist in the dsdt so we don't need this kext and keep the installation as clean as possible.


Yes, works, nut i got sometimes a "POP" in the speakers!

#6
machinist

machinist

    InsanelyMac Protégé

  • Members
  • PipPip
  • 86 posts
[/quote]I thought that maybe comparing the code in the two boxes we can understand what's going on...
Maybe using pin configurations from koalala and the rest from tapper00...any clue?
[/quote]



Have you tried using layout-id 66, 0x42 0x00 0x00 0x00 in your DSDT? I use the proper codec for the 889a chipset, 0x85, 0x08, 0xEC, 0x10 but others have used the codec id you already have in your DSDT with success.



Alternatively, if you want to use an additional kext, try tmongkol's approach here and throughout his thread: http://www.insanelym...p...941&st=380#

Good luck.

#7
stngray

stngray

    InsanelyMac Protégé

  • Members
  • Pip
  • 39 posts
  • Gender:Male
  • Location:Goodyear, AZ

Yes, works, nut i got sometimes a "POP" in the speakers!

Change your smbios.plist to make it a mac pro, this gets rid of the popping.

#8
longtom

longtom

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 265 posts

Change your smbios.plist to make it a mac pro, this gets rid of the popping.


THANKS!
Works!

#9
hackcat

hackcat

    InsanelyMac Protégé

  • Members
  • PipPip
  • 62 posts
Using Machinist's suggestion for using layout 66 I now have sound via the green jack, no added kext. Do get sound assertions but no more than other solutions. Not sure how it compares in terms of audio outputs to other solutions. Seems to have digital line in&out as well.
[codebox]Device (HDEF)
{
Name (_ADR, 0x001B0000)
Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D,
0x05
})
}

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0A)
{
"built-in",
Buffer (One)
{
0x00
},

"codec-id",
Buffer (0x04)
{
0x89, 0x08, 0xEC, 0x10
},

"layout-id",
Buffer (0x04)
{
0x42, 0x00, 0x00, 0x00
},

"device-type",
Buffer (0x11)
{
"ALC889a"
},

"PinConfigurations",
Buffer (One)
{
0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}[/codebox]
[codebox]Intel High Definition Audio:

Device ID: 0x1458A022
Audio ID: 66
Available Devices:
Line Out:
Connection: 1/8-Inch Jack
External Microphone:
Connection: 1/8-Inch Jack
External Microphone:
Connection: 1/8-Inch Jack
Headphone:
Connection: 1/8-Inch Jack
S/P-DIF Out:
Connection: Combo
S/P-DIF In:
Connection: Combo
[/codebox]

#10
Bummskopf

Bummskopf

    InsanelyMac Protégé

  • Members
  • Pip
  • 19 posts
used this method on my Gigabyte GA-P35-DS3R (Rev2.0) with ALC889a sound.

"http://www.insanelym...p...p=1229762 (POST #388 by aschar1)"

Digital Output is working for me, the only thing is that i have the impression (might be just an illusion^^) that the quality isn't as good as under Windows Vista with Realtek Driver

#11
Gantlett

Gantlett

    InsanelyMac Protégé

  • Members
  • PipPip
  • 72 posts
Dear checcco,

Thanks to you I have sound!!!!

My board is a GA-EP45-DS3R

For some reason, your code (the second one) is the only one that iaslMe.app would compile to an .aml file. I've looked at so many other sources and all of them wouldn't compile. So thank you again!!! :)

#12
JJ0101

JJ0101

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 2 posts
Just wanted to say thanks to Checcco (& tapper00) for this fix. I had tried everything else (HDAEnabler, patching AppleHDA, legacyHDA kexts) but nothing works as well as this. Not bothered about fixing the green/black o/p port issue, I've already spent days on this.
Thanks guys!

#13
uiop

uiop

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
I have tried the hackhad's method for dsdt and it really works!!! I have a P35 - DS3 Gigabyte system board with ALC889a.
Thank you all so much. :)

BTW, has anybody else experienced the swapped channels (L/R)? The sound is reverse stereo - what should be on the left speaker is coming out of the right one and the other way around. I double checked to be sure and it's there.

Is there a way to switch L/R channels, because I cannot physically switch L/R speakers?





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy