Help - Search - Members - Calendar
Full Version: Dsdt Edit For Hdmi Audio
Project OS X Forums > OS X 10.6 (Snow Leopard) > Hardware Information > Sound
Krazubu
I hunted for new tracks about HDMI audio support that works with latest mbp and found some interesting stuff.
I found that a string hda-gfx is injected at 2 places, inside GFX node and HDEF one, and this stuff comes from DSDT.
As I really don't like to mess with DSDT I leave it up to you to find how to copy it on your own hardware.
Maybe it works only with nvidia, I don't really know.

GFX area :
CODE
Scope (\_SB.PCI0.IXVE.IGPU)
            {
                OperationRegion (A1E0, PCI_Config, 0x00, 0x40)
                Field (A1E0, ByteAcc, NoLock, Preserve)
                {
                    VID,    16,
                    DID,    16
                }

                Method (CMPB, 2, NotSerialized)
                {
                    Store (SizeOf (Arg0), Local1)
                    If (LNotEqual (Local1, SizeOf (Arg1)))
                    {
                        Return (0x00)
                    }

                    Store (0x00, Local0)
                    While (LLess (Local0, Local1))
                    {
                        If (LNotEqual (DerefOf (Index (Arg0, Local0)), DerefOf (Index (
                            Arg1, Local0))))
                        {
                            Return (0x00)
                        }

                        Increment (Local0)
                    }

                    Return (0x01)
                }

                Method (_DSM, 4, NotSerialized)
                {
                    Name (GUI1, Buffer (0x10)
                    {
                        /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                        /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                    })
                    If (LEqual (CMPB (Arg0, GUI1), 0x01))
                    {
                        If (LNotEqual (And (DID, 0xFFFF), 0xFFFF))
                        {
                            Store (Package (0x02)
                                {
                                    "hda-gfx",
                                    Buffer (0x0A)
                                    {
                                        "onboard-1"
                                    }
                                }, Local0)
                            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                            Return (Local0)
                        }

                        Return (0x80000002)
                    }

                    Store ("----- IGPU _DSM --------", Debug)
                    If (CMPB (Arg0, Buffer (0x10)
                            {
                                /* 0000 */    0x75, 0x0B, 0xA5, 0xD4, 0xC7, 0x65, 0xF7, 0x46,
                                /* 0008 */    0xBF, 0xB7, 0x41, 0x51, 0x4C, 0xEA, 0x02, 0x44
                            }))
                    {
                        Return (NBCI (Arg0, Arg1, Arg2, Arg3))
                    }

                    Return (0x80000002)
                }
            }


HDEF area :
CODE
Scope (\_SB.PCI0.IXVE.IGPU)
            {
                OperationRegion (A1E0, PCI_Config, 0x00, 0x40)
                Field (A1E0, ByteAcc, NoLock, Preserve)
                {
                    VID,    16,
                    DID,    16
                }

                Method (CMPB, 2, NotSerialized)
                {
                    Store (SizeOf (Arg0), Local1)
                    If (LNotEqual (Local1, SizeOf (Arg1)))
                    {
                        Return (0x00)
                    }

                    Store (0x00, Local0)
                    While (LLess (Local0, Local1))
                    {
                        If (LNotEqual (DerefOf (Index (Arg0, Local0)), DerefOf (Index (
                            Arg1, Local0))))
                        {
                            Return (0x00)
                        }

                        Increment (Local0)
                    }

                    Return (0x01)
                }

                Method (_DSM, 4, NotSerialized)
                {
                    Name (GUI1, Buffer (0x10)
                    {
                        /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                        /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                    })
                    If (LEqual (CMPB (Arg0, GUI1), 0x01))
                    {
                        If (LNotEqual (And (DID, 0xFFFF), 0xFFFF))
                        {
                            Store (Package (0x02)
                                {
                                    "hda-gfx",
                                    Buffer (0x0A)
                                    {
                                        "onboard-1"
                                    }
                                }, Local0)
                            DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                            Return (Local0)
                        }

                        Return (0x80000002)
                    }

                    Store ("----- IGPU _DSM --------", Debug)
                    If (CMPB (Arg0, Buffer (0x10)
                            {
                                /* 0000 */    0x75, 0x0B, 0xA5, 0xD4, 0xC7, 0x65, 0xF7, 0x46,
                                /* 0008 */    0xBF, 0xB7, 0x41, 0x51, 0x4C, 0xEA, 0x02, 0x44
                            }))
                    {
                        Return (NBCI (Arg0, Arg1, Arg2, Arg3))
                    }

                    Return (0x80000002)
                }
            }

My guess is that you just inject "hda-gfx"="onboard-1" to your HDEF and GFX nodes, then ensure your mobo audio header is detected and working.

If you go somewhere with that keep us updated thanks.
intamara
Can you submit DSDT.dsl of latest MBP?

Thank you.
Jingu
HDMI AUDIO WORKING!!

I have an Asus Core i7 laptop with the NVidia GT240M. I got my instructions from Tmongkol on insanelymac. Post #785 for my details.

http://www.insanelymac.com/forum/index.php...p;#entry1448833

The HDMI is connected to my Onkyo TX-SR606 audio receiver. I can do up to 7.1 multichannel analog, or bitstream Dolby Digital 5.1 to the receiver with VLC Media Player by selecting Built-In HDMI Output (Encoded Output).

I tried the 5.1 AAC encoded Apple trailer of Skyline. Crisp, neat and vibrant 5.1 analog sound coming out of all 5 speakers and the subwoofer. Quite neat.

Click to view attachment Click to view attachment Click to view attachment
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.