Skip to content

Add ALC255 layout-id 16 for Gigabyte Aorus 15G (warm-reboot/sleep audio fix) - #959

Open
Andergraw wants to merge 1 commit into
acidanthera:masterfrom
Andergraw:alc255-layout16-aorus15g
Open

Add ALC255 layout-id 16 for Gigabyte Aorus 15G (warm-reboot/sleep audio fix)#959
Andergraw wants to merge 1 commit into
acidanthera:masterfrom
Andergraw:alc255-layout16-aorus15g

Conversation

@Andergraw

Copy link
Copy Markdown

Adds a new custom layout (id 16) for the Realtek ALC255 on the Gigabyte Aorus 15G.

Fixes acidanthera/bugtracker#2540. Created as a new layout per @vandroiy2013's guidance in that thread (layouts 1–10 are reserved for Mirone/Toleda), rather than modifying the existing Mirone layout 3.

Problem

On this laptop the speaker is silent after a warm reboot from Windows → macOS and after wake from sleep (short/medium/long). Everything enumerates correctly — the device shows up, volume keys and jack-sense work — but no sound is produced. Cold boot from power-off is unaffected.

Cause

The Realtek vendor node (NID 0x20) keeps a processing coefficient in the muted state that Windows leaves behind and macOS's AppleHDA init never clears. Comparing a broken vs. a working codec dump, coef 0x10 reads 0x0220 (bit 9 / mute set) when broken and 0x0020 when working. Re-writing coef 0x10 to 0x0020 restores audio in every tested case. (Two further coefficients, 0x45 and 0x1A, also differ but were observed not to persist on read-back, so only the minimal, effective coef 0x10 write is shipped here.)

Fix

A new layout 16, identical to Mirone's layout 3 except that the following two verbs are appended to both ConfigData (cold/warm boot) and WakeConfigData (sleep wake):

02 05 00 10   SET_COEF_INDEX  0x0010   on NID 0x20
02 04 00 20   SET_PROC_COEF   0x0020   on NID 0x20

WakeVerbReinit is true so the wake verbs are re-sent on every power transition.

Because the layout and platform data are byte-for-byte the same as Mirone layout 3, the new layout reuses layout3.xml.zlib and PlatformsM.xml.zlib rather than adding duplicate resource files (per the "avoid unnecessary duplication" rule on the Adding-codec-support wiki page).

Files changed

  • Resources/ALC255/Info.plist — new layout 16 entry in Layouts (→ layout3.xml.zlib) and Platforms (→ PlatformsM.xml.zlib).
  • Resources/PinConfigs.kext/Contents/Info.plist — new HDAConfigDefault entry for CodecID 283902549 / LayoutID 16 with the patched ConfigData + WakeConfigData.
  • Changelog.md — changelog line.

Testing

Patched build on Gigabyte Aorus 15G, macOS Sequoia (24G624), OpenCore, alcid=16:

Scenario Stock layout 3 New layout 16
Cold boot
Warm reboot (Windows→mac)
Short sleep
Medium sleep
Long / deep sleep

(Audio settles ~8 s after boot/wake in all cases; that is codec settling time and is unrelated to the patch.)

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Fix ALC255 layout-id 3 audio after warm reboot / sleep

1 participant