Contribute
Register

ALC888 AppleHDA.kext (10.7 Lion)

Status
Not open for further replies.
tbonge said:
Stereo sound from optical digital out stops working for me after playing a AC3 or DTS audio. Don't know about the analog outs since I don't use them. The PCM light on the receiver blinks. AC3 and DTS still work fine though, just no PCM stereo. Rebooting fixes it until AC3 is played again. I know this had been a common problem in 10.6.8 and going back to AppleHDA.kext from 10.6.7 would fix it, but I can't get any older AppleHDA.kext to work with lion.

Perhaps this is your receiver's fault as much as it is the kext. I have never encountered any problems as you described. I will play music in iTunes, then watch a movie in VLC or Boxee, and listen to music again with no problems; my receiver always switches appropriately. However, AC3 through iTunes has never worked for me, just a bunch of static. Even with Perian installed.

jaypee said:
Hey, Thank you very much! It worked for me on my Gygabite GA-EP43-DS3L, using your DSDT patch.
One thing only, when no music (or permanent sound) is going out, It makes noises like if the sound card were turning off (when there're no sounds) and on when a sound is going to go to speakers. It's like the sound that you get on a speaker when you turn on and off a microphone.

Anyone with this same problem, any ideas?

This is common for everyone I believe. Every Hackintosh from P4 to AMD Phenom to my current i7 systems all did that, regardless of if it were my own patched Kext or someone else's. Javier is right, it's power management. It probably has to do with SMC, and how real Macs save energy whenever possible however possible.
My iMac does this as well when external speakers were attached. Funny thing is, I have heard nothing of the sort from the internal speakers.


:!: Just to reiterate, a patched DSDT is a must for this kext to work, and ALL other sound kexts you are using must be removed, cleanly!

As well, keep in mind that there are many variants of the ALC888, so they may not all be compatible (888b is 100% no go). I am still trying to find the ALC888 alternative plists I saw over at AppleLife.ru I discovered during my trials with 10.7 DP. However, even with Chrome, sifting through web pages in Russian is a chore. This variant, from what I have read, fills the gap, and if I can inject those values, I can build a kext that would work with all versions but 888b.
 
vancityex said:
Found the DTGP code now do I have to put this code under pop3 or pci0 or anywhere and does address matter ? thanks for sharing


Search for HDEF (should be the 2nd or 3rd entry in your DSDT). Replace the whole section with my provided code. You do not add it anywhere or you will have conflicts.

Code:
            Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (Package (0x02)
                    {
                        0x0D, 
                        0x05
                    })
                }

                Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x04)
                        {
                            "layout-id", 
                            Buffer (0x04)
                            {
                                0x78, 0x03, 0x00, 0x00
                            }, 

                            "PinConfigurations", 
                            Buffer (Zero) {}
                        }, 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)
            Device (LNKA)
            {
                Name (_HID, EisaId ("PNP0C0F"))
                Name (_UID, One)
                Method (_STA, 0, NotSerialized)
                {
                    And (PIRA, 0x80, Local0)
                    If (LEqual (Local0, 0x80))
                    {
                        Return (0x09)
                    }
                    Else
                    {
                        Return (0x0B)
                    }
                }

                Method (_PRS, 0, NotSerialized)
                {
                    Return (BUFA)
                }

                Method (_DIS, 0, NotSerialized)
                {
                    Or (PIRA, 0x80, PIRA)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    And (PIRA, 0x0F, Local0)
                    ShiftLeft (One, Local0, IRQV)
                    Return (BUFB)
                }

                Method (_SRS, 1, NotSerialized)
                {
                    CreateWordField (Arg0, One, IRQ1)
                    FindSetRightBit (IRQ1, Local0)
                    Decrement (Local0)
                    Store (Local0, PIRA)
                }
            }

Apologies, I forgot to add the header in the 1st post. :p
 
Status
Not open for further replies.
Back
Top