Jump to content

X99 C610 audio patching


llamafilm
 Share

8 posts in this topic

Recommended Posts

I'm a beginner when it comes to DSDT patching.  I've cobbled together some patches, by using examples from toleda and others.  I've finally gotten HDMI audio working, but I wonder if there's a more elegant way.  I'd love to get some feedback from more experienced users about this.

 

First, I renamed H000 to GFX1 to resolve the black screen bug with Mac Pro 6,1 SMBIOS in Yosemite.  That's just two edits, on lines 30101 and 55613.

 

Now for audio, I'm using two Clover patches: FixHDA renames ALZA to HDEF, and AddDTGP enables layout-id injection.  I use Clover to inject audio ID 2, and AppleALC.kext to patch AppleHDA on the fly.

 

For HDMI, I renamed H001 to HDAU, and added several lines to that device and GFX1.  Some of this code may be unnecessary, but I copied large chunks from toleda's SSDT-HDMI-NVIDIA-BR3A.  Here is the modified section, and I've attached the full DSDT.  I would love to make these into SSDTs instead, for easier sharing with others, but I don't know how.

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

		Return (Package (0x0E)
		{
			"@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
			}, 

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

			"@5,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)
		{
			"hda-gfx", 
			Buffer (0x0A)
			{
				"onboard-2"
			}, 

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

DSDT.aml.zip

Link to comment
Share on other sites

Hi Elliot,

You should not need most of that for functionality. 

DefinitionBlock ("", "SSDT", 1, "iconic", "GFX1", 0x00001000)
{
    External (_SB_.PCI0.BR3A, DeviceObj)    // (from opcode)

    Scope (_SB.PCI0.BR3A)
    {
        Device (GFX1)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Name (_SUN, One)  // _SUN: Slot User Number
        }
    }

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

            Return (Package (0x02)
            {
                "hda-gfx", 
                Buffer (0x0A)
                {
                    "onboard-1"
                }
            })
        }
    }

    Name (_SB.PCI0.BR3A.H000._STA, Zero)  // _STA: Status
    Name (_SB.PCI0.BR3A.H001._STA, Zero)  // _STA: Status
    Name (_SB.PCI0.BR3A.D080._STA, Zero)  // _STA: Status
    Name (_SB.PCI0.BR3A.D07F._STA, Zero)  // _STA: Status

 

Link to comment
Share on other sites

  • 3 weeks later...

Thanks very much for that!

When I tried layout-id 1, I got no audio devices.  It works with ID 2, 7, and 11.

 

Before I install this SSDT, I wanted to look at it, but I'm unable to open it with MaciASL.  Do you know why?

Link to comment
Share on other sites

  • 2 months later...

Hey genzai, could you please explain what that SSDT does, besides the GPU rename and HDAU?  I see it renames the ethernet slot to "Internal" — is that purely cosmetic?  What does it do with the USB?  And what is the VSND device for?

Link to comment
Share on other sites

Hey genzai, could you please explain what that SSDT does, besides the GPU rename and HDAU?  I see it renames the ethernet slot to "Internal" — is that purely cosmetic?  What does it do with the USB?  And what is the VSND device for?

Internal is important for certain services like iMessage and app store login. Or at least it used to be. 

USB fixes make the ports appear more native, and so may help in some cases or may be just cosmetic but certainly should not hurt. VSND does not do anything anymore, it used to fix some issues on system that did not have any audio controllers. But it is still useful as a way to tell very quickly and easily if the SSDT is getting loaded properly in cases where that is in question.

g\

Link to comment
Share on other sites

  • 3 months later...
 Share

×
×
  • Create New...