Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SSDT BRG0] Clarifications #1569

Closed
1alessandro1 opened this issue Mar 18, 2021 · 10 comments
Closed

[SSDT BRG0] Clarifications #1569

1alessandro1 opened this issue Mar 18, 2021 · 10 comments

Comments

@1alessandro1
Copy link

Hi, today I added SSDT-BRG0.aml in my OC/ACPI folder and to the config.plist - I'm on a desktop with dGPU (RX590) + iGPU in headless mode, handled by WhateverGreen.kext for the properties.

image

These are the contents of the SSDT:

DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
    External (_SB_.PCI0.PEG0.PEGP, DeviceObj)

    Scope (\_SB.PCI0.PEG0.PEGP)
    {
        Device (BRG0)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (GFX0)
            {
                Name (_ADR, Zero)  // _ADR: Address
            }
        }
    }
}

My questions are:

  • Is that normal that the device only appears under IOACPIPlane and IODeviceTree and not in IOService near GFX0 and HDAU?

    • Here's a screenshot from IOService

image

  • Here's a screenshot from IOACPIPlane

image

  • Here's a screenshot from IODeviceTree

image

  • Is there any difference between addressing the device to _SB_.PCI0.PEG0.PEGP and _SB_.PCI0.PEG0?
  • Could you clarify the purpose of SSDT-BRG0 and how/why affects 11.0 and newer?

Thanks for your time.

@1alessandro1 1alessandro1 changed the title [SSDT BRG0] Cannot find any device in ioreg [SSDT BRG0] Clarifications Mar 18, 2021
@Andrey1970AppleLife
Copy link
Contributor

For RX590 isn't required SSDT-BRG0

@1alessandro1
Copy link
Author

For RX590 isn't required SSDT-BRG0

Please elaborate why

@vit9696
Copy link
Contributor

vit9696 commented Mar 18, 2021

You do not have an intermediate bridge in your GPU, and neither does your motherboard have. For you SB.PCI0.PEG0.PEGP is exactly the video adapter (GFX0 as renamed by WEG).

SBRG is for hardware with intermediate bridges to ensure that all your devices have ACPI names. I would strongly advise injecting HDAU for your case, since otherwise HDMI audio may not work.

The explanation why generating ACPI devices is required is provided in OC DeviceProperties section and it does not relate to GPUs specifically. Also, this is not quite the right place to ask for support.

@1alessandro1
Copy link
Author

1alessandro1 commented Mar 18, 2021

Thanks @vit9696 for quick response,

  1. in the dortania guide I found that BRG0 is required when acpi-path is missing on any of the devices under AppleACPIPlatform. However, when booting BigSur without SSDT-BRG0, every device shows up with its correct acpi-path in IOService (ioreg).

SBRG is for hardware with intermediate bridges to ensure that all your devices have ACPI names. I would strongly advise injecting HDAU for your case, since otherwise HDMI audio may not work.

In my case I can confirm I have audio working though DisplayPort - when connecting headphones to the monitor audio works. Is it the same thing for HDMI for "induction" or do I have to test HDMI audio too?

Thanks for your patience

@vit9696
Copy link
Contributor

vit9696 commented Mar 18, 2021

  1. This is correct. Well, except the fact that SSDT-BRG0 is not really an SSDT to apply, but rather a sample to build custom one from.
  2. Does your HDAU have acpi-path? I did not notice there is one on the first screenshot, so you can disregard my comment if it does.

@1alessandro1
Copy link
Author

1alessandro1 commented Mar 18, 2021

Does your HDAU have acpi-path? I did not notice there is one on the first screenshot, so you can disregard my comment if it does.

I think it does not... I've tested both, audio though HDMI and though DisplayPort, with my QC25 headphones connected with a standard jack, and audio works.

image

But GFX0 has its acpi-path:
Screenshot 2021-03-18 at 23 19 48

Should I add the following (for completeness, since audio is working anyway):

DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
    External (_SB_.PCI0.PEG0, DeviceObj)

    Scope (\_SB.PCI0.PEG0)
    {
        Device (HDAU)
        {
            Name (_ADR, One)  // _ADR: Address
        }
    }
}

Without Device (BRG0) on top?

edit: Name (_ADR, One) instead of Zero for HDAU

@1alessandro1
Copy link
Author

edit: Name (_ADR, One) instead of Zero for HDAU

I'm wondering if there's any difference specifying One or Zero...

Now I can see the acpi-path for HDAU too (on the left the newest ioreg), with the SSDT above.

Screenshot 2021-03-18 at 23 50 34

@1alessandro1
Copy link
Author

Also I noticed in the ACPI Log the following, could this be related to what was discovered above?

AGDCC: Unauthorized client 'PerfPowerService' here's the specific part from the log:

2021-03-08 08:08:25.741720-0800 0xefc      Default     0x0                  0      0    kernel: (AppleGraphicsDeviceControl) AGDCC: Unauthorized client 'PerfPowerService' (IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/AMD9500ControllerWrangler)
2021-03-08 08:08:25.741755-0800 0xefc      Default     0x0                  0      0    kernel: (AppleGraphicsDeviceControl) AGDCC: Unauthorized client 'PerfPowerService' (IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl)

Could this be WEG related?

@dreamwhite
Copy link

dreamwhite commented Apr 8, 2021

Also I noticed in the ACPI Log the following, could this be related to what was discovered above?

AGDCC: Unauthorized client 'PerfPowerService' here's the specific part from the log:

2021-03-08 08:08:25.741720-0800 0xefc      Default     0x0                  0      0    kernel: (AppleGraphicsDeviceControl) AGDCC: Unauthorized client 'PerfPowerService' (IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/AMD9500ControllerWrangler)
2021-03-08 08:08:25.741755-0800 0xefc      Default     0x0                  0      0    kernel: (AppleGraphicsDeviceControl) AGDCC: Unauthorized client 'PerfPowerService' (IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl)

Could this be WEG related?

I can confirm on my side that those "errors" (?) appear on my laptop (i5-8250U - UHD 620).

From what I read online, more precisely on this reddit answer, it seems that this check is meant to check that internal peripherals to get them ready for use (so it's a internal thing of the OS).

@vit9696 is this assumption wrong or could this be WEG related and skipped in any way?

Many thanks and have a nice day

@vit9696
Copy link
Contributor

vit9696 commented Apr 8, 2021

No need to worry. Not WEG related.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

4 participants