rehabman / eapd-codec-commander Goto Github PK
View Code? Open in Web Editor NEWThis project forked from dolnor/eapd-codec-commander
handles EAPD state updating for power-managed HDA codecs
License: GNU General Public License v2.0
This project forked from dolnor/eapd-codec-commander
handles EAPD state updating for power-managed HDA codecs
License: GNU General Public License v2.0
Dear RehabMan,
Your CodecCommander works great most of the time.
However, sometimes the voice disordered after reboot.
I guess something is wrong with the default codec value, and I want to customize it for my own codec value.
I have dumped the related codec information from ubuntu. However, I have no idea what to do next. Would you mind give me some suggestions/clues?
Thank you for your help.
hi there,
GA Z170X-Gaming5 with ALC1150 here ... CodecCommander v. 2.40 is effective is giving audio back after wakeup ONLY IF darkwake is set to 0. Otherwise if it's not set, it does NOT work.
The last version - v. 2.51 - is totally ineffective no matter how the darkwake parameter is set.
Let me know if you need any particular log.
Hello Rehabman.
My XPS has a combojack with RealtekALC3266(298) and have 2 problem.
1.HP OUT Distort
2.ExtMic can't be detected
So I want to find a way to solve this problem.
I found Codec-Commander can solve this problem so i turned to use this kext.
I have looked into my code with my ALC298 is
0x18 SET_PIN_WIDGET_CONTROL 0x24
0x21 SET_UNSOLICITED_ENABLE 0x82
and i create a ssdt or just edit it in the kext but have no use.
However,When wake up from sleep the audio works fine but still cant detecte the extmic.
So i have no idea until i found ALCPlugFix
https://github.com/goodwin/ALCPlugFix
I try to edit 0x18 SET_PIN_WIDGET_CONTROL 0x24 and 0x21 SET_UNSOLICITED_ENABLE 0x82 into this binary and mod it into ALCPlugFix and installed into my osx and works fine with no problem.
With ALCPLugFix,I can get these works.
1.HP OUT is fine with no distort.
2.The ExitMic can be detected automatically when plugin the extmic.
But i still dont know why the Codec-Commander cant solve this probelm and must use Codec-Commander and ALCPlusFix can solve this problem.
So i want to help to inprove this kext to work with these combojack audio devices.
Thanks.
And Forgive My Poor English.
Trying to configure via ACPI, there seems to be an issue with custom commands parsing. The contents of the first custom command in the ssdt is repeated for all custom command entries in the configuration.
Debug log excerpt below - the corresponding ssdt has 4 different custom commands with the first one being 0x01970725:
CodecCommander: Version 2.5.0 starting on OS X Darwin 15.3.
[...]
CodecCommander: Custom Command
CodecCommander: ...Command: 0x01970725
CodecCommander: ...OnInit: true
CodecCommander: ...OnWake: true
CodecCommander: ...OnSleep: false
CodecCommander: Custom Command
CodecCommander: ...Command: 0x01970725
CodecCommander: ...OnInit: true
CodecCommander: ...OnWake: true
CodecCommander: ...OnSleep: false
CodecCommander: Custom Command
CodecCommander: ...Command: 0x01970725
CodecCommander: ...OnInit: true
CodecCommander: ...OnWake: true
CodecCommander: ...OnSleep: false
CodecCommander: Custom Command
CodecCommander: ...Command: 0x01970725
CodecCommander: ...OnInit: true
CodecCommander: ...OnWake: true
CodecCommander: ...OnSleep: false
CodecCommander: Getting EAPD supported node list.
Debug log: https://github.com/vbourachot/XPS13-9350-OSX/blob/master/misc/codec_commander-1.log
SSDT source: https://github.com/vbourachot/XPS13-9350-OSX/blob/fcb674b0244f6e85ceb5498250041e07dac2aafd/ssdt/SSDT-ALC256.dsl
Not sure about desktop boards but there are definitely using EAPD
Those who struggle with getting it working, can get it fixed with updating Info.plist in 1150 section, "Update Nodes" from false to true
Unlike the other version of Codec-Commander, that works with 1150 out of the box, but only works from S/L/E, this version, once patched, works from Clover/kext/Others
Hey,
thanks for picking up my work, both you and @the-darkvoid. Don't have too much free time on my hands lately. I've been syncing your master with my repo and it seems like something broke down the road, badly. I'm seeing all sorts of things that are wrong with the kext now past version 2.2.1
Which it doesn't sleep the nodes upon entering sleep, though somehow send the verbs to update EAPDs when machine is awoken:
CodecCommander: Intel TCSEL: 0x61 -> 0x60
CodecCommander: SendCommand: node 0x14, verb 0x00070c, payload 0x02.
CodecCommander: SendCommand: (w) --> 0x21470c02
CodecCommander: SendCommand: (r) <-- 0x00000000
CodecCommander: SendCommand: node 0x1b, verb 0x00070c, payload 0x02.
CodecCommander: SendCommand: (w) --> 0x21b70c02
CodecCommander: SendCommand: (r) <-- 0x00000000
By the way, Perform Reset on EAPD Fail is set to NO in Default config and explicitly set to NO in my profile, yet when parsing the config the value default to true according to the debug above.
Reset seems to be partially broken and I couldn't wrap my head around where it pulls up this garbage commands, unless they are looping somewhere while PIDs are sent.
CodecCommander: setPowerState2
CodecCommander: --> awake(2)
CodecCommander: --> resetting codec
CodecCommander: SendCommand: node 0x01, verb 0x0007ff, payload 0x00.
CodecCommander: SendCommand: (w)--> 0x0017ff00
CodecCommander: SendCommand: (r) <-- 0x00000000
CodecCommander: SendCommand: node 0x01, verb 0x0007ff, payload 0x00.
CodecCommander: SendCommand: (w) --> 0x0017ff00
CodecCommander: SendCommand: (r) <-- 0x00000000
CodecCommander: SendCommand: node 0x01, verb 0x000705, payload 0x03.
CodecCommander: SendCommand: (w)--> 0x20170503
CodecCommander: SendCommand: (r) <-- 0x00000000
CodecCommander: -->hda codec power restored
CodecCommander: SendCommand: node 0x01, verb 0x000705, payload 0x03.
CodecCommander: SendCommand: (w) --> 0x00170503
CodecCommander: SendCommand: (r) <-- 0x00000000
CodecCommander:- ->hda codec power restored
This results in no sound right at wake if sound was playing when the machine was put to sleep. On 2.2.1 it used to issue only these 3, which did reset the codec perfectly:
CodecCommander: cc: --> resetting codec
CodecCommander: w: ICW stored set command 0x2017ff00
CodecCommander: w: ICW stored set command 0x2017ff00
CodecCommander: w: ICW stored set command 0x20170503
CodecCommander: cc: --> hda codec power restored
Hello Rehabman, kudos for all of your hardworks!
Did you try binary patch solution to wake the sound after sleep instead with kext? (i blogged months ago with original link attached). I know this not an issue / completely unrelated with this repo, sorry. Hope you found it working / useful for your next project ๐ (Tried without afail with smbios macpro6)
Read background in this related issue
It seems Codec Commander only wakes up the devices already listed in System Preferences > Sound. So, for example, with autodetect enabled (as in that issue), if the headphones are plugged in, only those work after sleep and if speakers are plugged in, only those work after sleep.
Seems to be related to this issue for the ALC292. Maybe the same command will work?
Hi๏ผ
My voice if I don't use Codecommander only single track with bad tone quality.
But sleep after awakening will not be able to play a sound only I pull out and insert the Earphone plug agiain,Can you tell me how should I do, my codec sense has something worng:
Codec.txt
ALC 255
thank you !
I've been looking for HDA Verbs description without success. Can you point me some useful documentation ?
I also don't understand how to create the info.plist / ACPI commands. Can you explain this :
0x21 SET_UNSOLICITED_ENABLE 0x83 > 02170883 / Buffer (0x04) {0x02, 0x17, 0x08, 0x83 },
Hello, I've read over the Readme, especially the instructions on enabling this kext, but am still stuck with no audio upon wake (from sleep). What I've tried so far is simply downloading the latest build and placing it in EFI (also tried S/L/E and L/E, but I see in the commits that the kext should work in EFI now). Please correct me if I'm wrong, but it seemed to me that creating a Profile in Info.plist isn't required.
I'm currently running OSX 10.11.3, with ALC1150. I'd be glad to provide any logs or other info. Thanks!
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.
The reason (and solution) is similar to this issue with BrcmPatchRAM: RehabMan/OS-X-BrcmPatchRAM#11
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.