Jump to content

How do I disable HDMI/DP audio out on my AMD GPU?


i0ntempest
 Share

19 posts in this topic

Recommended Posts

I would like to disable the digital audio out on my 6800XT as I don't need it and it might be causing problems with my other audio devices. I've tried injecting No-hda-gfx with all-zero value into my GPU and DP/HDMI audio controller on it with DeviceProperties, but that changed nothing. Also I cannot go the SSDT route because it's a "subdevice" of the GPU and seems I can only disable the whole GPU with SSDT.

Help please?

Edited by i0ntempest
Link to comment
Share on other sites

6 hours ago, i0ntempest said:

I would like to disable the digital audio out on my 6800XT as I don't need it and it might be causing problems with my other audio devices. I've tried injecting No-hda-gfx with all-zero value into my GPU and DP/HDMI audio controller on it with DeviceProperties, but that changed nothing. Also I cannot go the SSDT route because it's a "subdevice" of the GPU and seems I can only disable the whole GPU with SSDT.

Help please?

Try to inject device-id property for HDMI audio device as <12345678> so that AppleGFXHDA.kext will not attach to it.

But I wonder if you see any "causing  problem with other audio devices".

Link to comment
Share on other sites

1 hour ago, Slice said:

Try to inject device-id property for HDMI audio device as <12345678> so that AppleGFXHDA.kext will not attach to it.

But I wonder if you see any "causing  problem with other audio devices".

Thanks for the help. Just to confirm, what you mean is I should inject that bogus device-id with data type "DATA", into "Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller [1002:ab28] (subsys 1002:ab28)" shown in dspci output, which is at path given by gfxutil "03:00.1 1002:ab28 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/HDAU@0,1 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x1)"? If that's what you meant that doesn't seem to change anything, DP audio is still visible in Sound settings.

EDIT: I also tried blocking com.apple.driver.AppleGFXHDA, but that doesn't work either, kextstat still shows it's loaded after boot.

Edited by i0ntempest
Link to comment
Share on other sites

2 hours ago, Slice said:

Try to inject device-id property for HDMI audio device as <12345678> so that AppleGFXHDA.kext will not attach to it.

But I wonder if you see any "causing  problem with other audio devices".

I did the same by making a SSDT. Dunno why OpenCore is failing to inject device id, the path should be correct? The path in my SSDT is _SB_.PCI0.PEG0.PEGP.

Edited by i0ntempest
Link to comment
Share on other sites

53 minutes ago, i0ntempest said:

Thanks for the help. Just to confirm, what you mean is I should inject that bogus device-id with data type "DATA", into "Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller [1002:ab28] (subsys 1002:ab28)" shown in dspci output, which is at path given by gfxutil "03:00.1 1002:ab28 /PCI0@0/PEG0@1/PEGP@0/pci-bridge@0/HDAU@0,1 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x1)"? If that's what you meant that doesn't seem to change anything, DP audio is still visible in Sound settings.

EDIT: I also tried blocking com.apple.driver.AppleGFXHDA, but that doesn't work either, kextstat still shows it's loaded after boot.

Check with IORegistryExplorer which kext attached to the device and what are its properties, device-id.

Link to comment
Share on other sites

5 minutes ago, Slice said:

Check with IORegistryExplorer which kext attached to the device and what are its properties, device-id.

Okay this is weird, I checked with IORegistryExplorer across reboots and I actually need both the SSDT and DeviceProperties injection active to be able to change its device-id. Otherwise it just has its original id. I attached my SSDT below (modified from here), can you see any problems?

SSDT-RDN-HDAU-disable.aml

Link to comment
Share on other sites

54 minutes ago, Slice said:

Check with IORegistryExplorer which kext attached to the device and what are its properties, device-id.

Right, I fixed my SSDT - turns out I shouldn't have deleted DTGP. But still, doesn't explain why OC injection isnt working. I'll put my complete EFI folder here (there are some SSDTs I left in there for experimenting, they're not enabled pls ignore them).

EFI.zip

Link to comment
Share on other sites

1 hour ago, grandosegood said:

hey there, i too have a radeon vii and am trying to disable HDMI/DP audio from it. have you had success yet?

I did, it's just that injecting device-id with OpenCore does not work, but injecting using an SSDT file does. You may get my SSDT-RDN-HDAU.aml and SSDT-DTGP.aml from my EFI folder above, adapt to your device path and it should work.

Edited by i0ntempest
Link to comment
Share on other sites

Ah got it - then you should also change "Device (EGP1)" below the path to Device (BRG0).

EDIT: Seems I forgot to delete DTGP method in the HDAU SSDT. You can drop SSDT-DTGP.

Edited by i0ntempest
Link to comment
Share on other sites

  • 6 months later...
On 27/9/2022 at 6:14, grandosegood said:

¡muchas gracias! funcionó cuando eliminé SSDT-Bridge de mi sistema (resultó que no era necesario).

I'm trying to find out what the SSDT-Bridge.aml is used for without finding information about it. any ideas

Link to comment
Share on other sites

  • 11 months later...

I'm also trying to disable the AppleGFXHDA kext file, but so far I wasn't able to do it. @i0ntempest I assume you tried that to solve the audio cuts right?

 

I have two GPUs, here is the output I get from a few useful commands:

$ kextstat | grep -E "AppleGFXHDA"
Executing: /usr/bin/kmutil showloaded
No variant specified, falling back to release
  157    0 0xffffff7f94a3f000 0x5f000    0x5f000    com.apple.driver.AppleGFXHDA (340.1) 7A6F73EC-B35A-323F-97F5-AF0945D70BF1 <154 120 115 18 9 8 7 6 3 1>
    
$ ioreg -p IODeviceTree -n GFX0 -r |grep "acpi-path"
  |   "acpi-path" = "IOACPIPlane:/_SB/PC00@0/GFX0@20000"
    
$ gfxutil | grep HDAU
03:00.1 1002:ab28 /PC00@0/PEG1@1/PEGP@0/pci-bridge@0/HDAU@0,1 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x1)
07:00.1 1002:ab28 /PC00@0/RP21@1B/PXSX@0/pci-bridge@0/HDAU@0,1 = PciRoot(0x0)/Pci(0x1B,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x1)

I'm also attaching the output of my ioreg here. Could someone guide me on how to disable the kext and disable audio ut from HDMI/DP?

 

Thanks a lot! 🙏🏻

 

Hack-MacPro7,1.zip

Link to comment
Share on other sites

 Share

×
×
  • Create New...