RehabMan / EAPD-Codec-Commander

handles EAPD state updating for power-managed HDA codecs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ALC1150 Problem

korzhyk opened this issue · comments

AppleHDAEngineOutput: https://gist.github.com/korzhyk/5d9bd5500fe45181315db475b3a1084a#file-applehdaengineoutput-log

Problem after version 2.4.0.

By default in version 2.4.0 did't contains section for ALC1150. So I added this config https://github.com/korzhyk/Clover_GA-H97-D3H/blob/master/H97-D3H-CF/misc/CodecCommander.kext/Contents/Info.plist#L109-L148

After sleep in 2.4.0 in debug CC send commands:

SendCommand: node 0x01, verb 0x0007ff, payload 0x00.
SendCommand: (w) --> 0x2017ff00
SendCommand: node 0x01, verb 0x0007ff, payload 0x00.
SendCommand: (w) --> 0x2017ff00
SendCommand: node 0x01, verb 0x000705, payload 0x03.
SendCommand: (w) --> 0x20170503
SendCommand: node 0x14, verb 0x00070c, payload 0x02.
SendCommand: (w) --> 0x21470c02
SendCommand: node 0x1b, verb 0x00070c, payload 0x02. <- nodeID same as in AppleHDAEngineOutput
SendCommand: (w) --> 0x21b70c02

But after 2.4.0 CC not sending this command to this nodeID:

SendCommand: node 0x00, verb 0x000f00, payload 0x04.
SendCommand: (w) --> 0x200f0004
SendCommand: (r) <-- 0x00010001
SendCommand: node 0x01, verb 0x000f00, payload 0x05.
SendCommand: (w) --> 0x201f0005
SendCommand: (r) <-- 0x00000101
getAudioRoot found audio root = 0x01
SendCommand: node 0x01, verb 0x0007ff, payload 0x00.
SendCommand: (w) --> 0x2017ff00
SendCommand: (r) <-- 0x00000000
SendCommand: node 0x01, verb 0x0007ff, payload 0x00.
SendCommand: (w) --> 0x2017ff00
SendCommand: (r) <-- 0x00000000
SendCommand: node 0x01, verb 0x000705, payload 0x03.
SendCommand: (w) --> 0x20170503

And after sleep (my audio is 5.1) the main speakers provide only noise. ℹ But if select in System Preferences.app a rear or center speakers I hear a normal sound without noises.

So I add new CustomCommand to the list: https://gist.github.com/korzhyk/5d9bd5500fe45181315db475b3a1084a#file-customcommand-plist
But I'm not sure if it's the right decision, because I don`t know how CC works.

Won't change.

The profile for ALC1150 has Update Nodes and Sleep Nodes set to false.
It causes CodecCommander to NOT send EAPD enable/disable.
Typically desktop audio codecs don't use EAPD. And typically ALC1150 is used on desktop boards. Which probably explains why these settings are false.

I don't think the default should be changed at this point, especially since these profile was added by someone else (you could look at the commit logs to see who).

You can override with ACPI:

// CodecCommander configuration to enable EAPD manipulation on sleep/wake 
// for codecs which have disabled it in the Info.plist profile.
DefinitionBlock ("", "SSDT", 1, "hack", "EAPD-CC", 0)
{
    External(_SB.PCI0.HDEF, DeviceObj)
    
    Name(_SB.PCI0.HDEF.RMCF, Package()
    {
        "CodecCommander", Package()
        {
            "Update Nodes", ">y",
            "Sleep Nodes", ">y",
        },
    })
}
//EOF