I have been dealing with this issue for the last weeks til I finally solved it. I'd like to know if the solution could help the community since it's such an specific thing. I have not created a new layout, it's basically the layout 3 with this minor change. I'll explain:
On ALC255 layout-id 3 (tested on Gigabyte Aorus 15G), speaker audio is silent after:
- Warm reboot from Windows → macOS
- Resume from sleep
Everything reports correctly — widgets enumerate, the UI shows the speaker device, audio settings ok— but no sound is produced until a manual coefficient write to the Realtek vendor node (NID 0x20) is issued.
Three processing coefficients on NID 0x20 have specific bits set in the broken state that are cleared in the working state:
| Coef |
Working |
Broken |
Diff |
| 0x10 |
0x0020 |
0x0220 |
bit 9 set |
| 0x45 |
0x5089 |
0xD089 |
bit 15 set |
| 0x1A |
0x8003 |
0x9003 |
bit 12 set |
The known-working manual workaround is a six-verb sequence writing all three coefs to their working values:
alc-verb 0x20 0x500 0x10
alc-verb 0x20 0x400 0x0020
alc-verb 0x20 0x500 0x45
alc-verb 0x20 0x400 0x5089
alc-verb 0x20 0x500 0x1A
alc-verb 0x20 0x400 0x8003
After some testing, I realized that only coef 0x10 (bit 9, the mute bit) is sufficient to restore audio. Since I have no idea of this, I don't know if the two other would be necessary as well for any edge scenario or whatever reason. But coef 0x10 alone brings sound back (the only strange thing, it takes around 8 seconds to do it, which made me think that it was not working for a while).
So what I am doing is just appending the coef 0x10 write to ConfigData and to WakeConfigData.
02 05 00 10 SET_COEF_INDEX 0x0010
02 04 00 20 SET_PROC_COEF 0x0020
Meaning:
ConfigData:
- ASccEAEnHQABJx6mAScfkAFHHCABRx0AAUceFwFHH5ABlxwwAZcdEAGXHosBlx8AAhccUAIXHRACFx4rAhcfAgFHDAI=
+ ASccEAEnHQABJx6mAScfkAFHHCABRx0AAUceFwFHH5ABlxwwAZcdEAGXHosBlx8AAhccUAIXHRACFx4rAhcfAgFHDAICBQAQAgQAIA==
WakeConfigData:
- AUcMAg==
+ AUcMAgIFABACBAAg
Does this worth a PR?
Thanks!
I have been dealing with this issue for the last weeks til I finally solved it. I'd like to know if the solution could help the community since it's such an specific thing. I have not created a new layout, it's basically the layout 3 with this minor change. I'll explain:
On ALC255 layout-id 3 (tested on Gigabyte Aorus 15G), speaker audio is silent after:
Everything reports correctly — widgets enumerate, the UI shows the speaker device, audio settings ok— but no sound is produced until a manual coefficient write to the Realtek vendor node (NID 0x20) is issued.
Three processing coefficients on NID 0x20 have specific bits set in the broken state that are cleared in the working state:
The known-working manual workaround is a six-verb sequence writing all three coefs to their working values:
After some testing, I realized that only coef 0x10 (bit 9, the mute bit) is sufficient to restore audio. Since I have no idea of this, I don't know if the two other would be necessary as well for any edge scenario or whatever reason. But coef 0x10 alone brings sound back (the only strange thing, it takes around 8 seconds to do it, which made me think that it was not working for a while).
So what I am doing is just appending the coef 0x10 write to
ConfigDataand toWakeConfigData.Meaning:
ConfigData:WakeConfigData:Does this worth a PR?
Thanks!