From b24d13e6ab6c5d3f0f8dd59f12164079fbcd0600 Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Thu, 4 Jan 2024 04:39:53 +0000 Subject: [PATCH] AudioDxe: Re-enable automatic switch to protocol GET mode on failure It is still needed on some systems such as Acer E5 where DisconnectHda does not work. --- Changelog.md | 1 + OpenCorePkg.dec | 2 +- Staging/AudioDxe/HdaController/HdaController.c | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Changelog.md b/Changelog.md index 53690f41..def7563f 100644 --- a/Changelog.md +++ b/Changelog.md @@ -11,6 +11,7 @@ OpenCore Changelog - Modified NVRAM logout hook to handle XML entities in string vars - Fixed CPU frequency calculation on AMD 0Fh family - Added kext blocker `Exclude` strategy for mkext +- Re-enabled AudioDxe failover to protocol GET mode for systems such as Acer E5 where it works when DisconnectHda doesn't #### v0.9.7 - Updated recovery_urls.txt diff --git a/OpenCorePkg.dec b/OpenCorePkg.dec index 6576c2b0..cf17e6b3 100755 --- a/OpenCorePkg.dec +++ b/OpenCorePkg.dec @@ -740,7 +740,7 @@ ## TRUE - Use EFI_OPEN_PROTOCOL_GET_PROTOCOL if EFI_OPEN_PROTOCOL_BY_DRIVER fails.
## FALSE - Do not use EFI_OPEN_PROTOCOL_GET_PROTOCOL.
## @Prompt Try EFI_OPEN_PROTOCOL_GET_PROTOCOL if EFI_OPEN_PROTOCOL_BY_DRIVER fails. - gOpenCorePkgTokenSpaceGuid.PcdAudioControllerTryProtocolGetMode|FALSE|BOOLEAN|0x00000007 + gOpenCorePkgTokenSpaceGuid.PcdAudioControllerTryProtocolGetMode|TRUE|BOOLEAN|0x00000007 ## Indicates if AudioDxe will use Pin Capabilities to identify outputs.

## TRUE - Use Pin Capabilities to identify outputs.
diff --git a/Staging/AudioDxe/HdaController/HdaController.c b/Staging/AudioDxe/HdaController/HdaController.c index 666d8d64..2e26cc92 100644 --- a/Staging/AudioDxe/HdaController/HdaController.c +++ b/Staging/AudioDxe/HdaController/HdaController.c @@ -1104,7 +1104,8 @@ HdaControllerDriverBindingStart ( // // No longer applied just if protocol gVMwareHdaProtocolGuid is found, since it also // allows sound on other devices where HDA controller is already connected, e.g. Macs. - // Now on Pcd because it appears never to be needed if DisconnectHda is applied. + // On many systems DisconnectHda can be used to avoid the need for this fallback, but + // on some - such as Acer E5 - DisconnectHda does not work but this method does. // DEBUG ((DEBUG_INFO, "HDA: %r using DRIVER mode, trying GET mode\n", Status)); OpenMode = EFI_OPEN_PROTOCOL_GET_PROTOCOL;