Contribute
Register

GA-Z87X-UD7 TH - HDMI Audio woes

Status
Not open for further replies.
Removed DSDT, rebooted with DSDT=null, reapplied PJALM Gigabyte GA-Z87X-UD7-TH and Desktop-HD5K/AMD/Nvidia-A1 patches.
Placed DSDT in /Extra, installed ALC898 with DSDT from MultiBeast 6.2.1, rebuilt caches, rebooted. Analog audio working, still no HDMI options.

I am trying to run your troubleshooting section and I have problems finding "IOHDACodecVendorID:" option under HDAU@3.
Also, I have 00 04 00 00 as IGPU connector type. That implies I have to apply Azul kext patches, am I right?

Attached is my current DSDT & IOReg. Thanks a lot, Toleda, this means a lot to me, truly an asset to the community you are!
 

Attachments

  • ga-z87x-ud7-2.zip
    561.4 KB · Views: 87
I have problems finding "IOHDACodecVendorID:" option under HDAU@3.
Also, I have 00 04 00 00 as IGPU connector type. That implies I have to apply Azul kext patches, am I right?
Two patches required (double click Downloads/file_name; do not move the file, enter password)
1. AppleHDAController - Download (View Raw) audio_hdmi_hd5K-hda-90_patch.command.zip
2. AppleIntelFramebufferAzul - Select 1 or 2, not both:
1. HDMI on ports 0x6 and 0x7 (azul-a)​
2. HDMI on ports 0x5 and 0x6 (azul-c)​

Reply with new IOReg.
 
Almost there, thanks a lot, Toleda!

HDMI Audio started working on HD4600 ports after applying the Azul and HDA patches but not working when the TV is attached to the discrete graphics via HDMI. The card has two DVI-D and one HDMI output. I've tested all ports on the GPU. The DVI ports don't work as well. Used a DL-DVI<>HDMI cable.

Where should I look?

Attached IOReg with the TV on the discrete GPU HDMI port.
 

Attachments

  • ioreg.zip
    528.7 KB · Views: 94
Where should I look?
You have a PLX bridge, special edits required:
1. Find PEGP, rename PEGP to PEG0 // note: zero
2. Copy code with **, paste without ** // 8 lines total
3. Compile, save, install, restart.
4. Reply with new dsdt and ioreg.

Code:
            Device (PEG0)
            {
                Name (_ADR, 0x00010000)  // _ADR: Address
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR02 ())
                    }
                    Return (PR02 ())
                }

**                Device (PEGP)
**                {
**                    Name (_ADR, Zero) 
**                    Device (PLX0)
**                    {
**                        Name (_ADR, 0x00100000) 
                        Device (GFX0)
                        {
                            Name (_ADR, Zero)
                            Name (_SUN, One) 
                            Method (_DSM, 4, NotSerialized)  
                            {
                                If (LEqual (Arg2, Zero))
                                {
                                    Return (Buffer (One)
                                    {
                                         0x03
                                    })
                                }

                                Return (Package (0x0A)
                                {
                                    "@0,connector-type", 
                                    Buffer (0x04)
                                    {
                                         0x00, 0x08, 0x00, 0x00
                                    }, 

                                    "@1,connector-type", 
                                    Buffer (0x04)
                                    {
                                         0x00, 0x08, 0x00, 0x00
                                    }, 

                                    "@2,connector-type", 
                                    Buffer (0x04)
                                    {
                                         0x00, 0x08, 0x00, 0x00
                                    }, 

                                    "@3,connector-type", 
                                    Buffer (0x04)
                                    {
                                         0x00, 0x08, 0x00, 0x00
                                    }, 

                                    "hda-gfx", 
                                    Buffer (0x0A)
                                    {
                                        "onboard-2"
                                    }
                                })
                            }
                        }

                        Device (HDAU)
                        {
                            Name (_ADR, One)  
                            Method (_DSM, 4, NotSerialized)  
                            {
                                If (LEqual (Arg2, Zero))
                                {
                                    Return (Buffer (One)
                                    {
                                         0x03
                                    })
                                }

                                Return (Package (0x04)
                                {
                                    "layout-id", 
                                    Buffer (0x04)
                                    {
                                         0x01, 0x00, 0x00, 0x00
                                    }, 

                                    "hda-gfx", 
                                    Buffer (0x0A)
                                    {
                                        "onboard-2"
                                    }
                                })
                            }
                        }
**                    }
**                }
            }
 
The PLX bridge patch worked flawlessly! Toleda, you are THE MAN! Do I contribute to tonymacx86 if I want to make a donation to you?

Final question: is it possible to migrate to Clover and still have all the functionality by just moving the DSDT.aml to the patched directory?
 
Thank you, I will try those Clover patches! How would I go about the PLX bridge quirks in Clover? With Chimera, the only viable solution seems to be the DSDT way. Does Clover have some sort of injection for PLX bridges?
 
You have a PLX bridge, special edits required:
1. Find PEGP, rename PEGP to PEG0 // note: zero
2. Copy code with **, paste without ** // 8 lines total
3. Compile, save, install, restart.
4. Reply with new dsdt and ioreg.

Code:
            Device (PEG0)
...

Toleda, if I'm using a DSDT w/clover, are these edits necessary?
 
Status
Not open for further replies.
Back
Top