deeveedee Posted April 10, 2021 Share Posted April 10, 2021 (edited) EDIT: With Sonoma 14.1.1, OC 0.9.6 and VoodooPS2Controller.kext 2.3.5, I am no longer seeing this problem. ==================================== VoodooPS2Trackpad.kext causes instant wake. How to fix? Details below. Thank you. EDIT: the fix for this starts here (read my 2 posts) is is scheduled to be released with VoodooPS2Controller.kext v2.2.3. I'm using Acidenthera's version of VoodooPS2Controller.kext and plugins VoodooPS2Input.kext, VoodooPS2Keyboard.kext and VoodooPS2Trackpad.kext for the first time. If I enable VoodooPS2Controller.kext and plugins VoodooPS2Input.kext, VoodooPS2Keyboard.kext (without VoodooPS2Trackpad.kext), my rig sleeps/wakes normally. If I enable VoodooPS2Trackpad.kext, my system wakes 1-2 seconds after sleep. I have applied the GPRW->XPRW rename ACPI patch and SSDT-GPRW ACPI patch, so my system sleeps/wakes (without instant wake) when VoodooPS2Trackpad.kext is not enabled. Any ideas? System details below. Thank you. I just obtained a new (new to me) HP Envy x360 15m laptop (i5-8250u / UHD620 Kaby Lake R). I haven't decided whether I'll keep it, so my profile does not include this rig. System details are below. HP Envy x360 15m laptop (Kaby Lake R i5-8250U, UHD 620, 12 GB DDR4) Catalina 10.15.7.03 Open Core 0.6.8 SMBIOS MBP14,1 Attached config.plist (OC 0.6.8) is a work in progress. VoodooPS2Controller.kext (and all plugins) version 2.2.2 About This Mac Spoiler pmset -g Spoiler pmset -g assertions Spoiler config-instantwake.plist.zip Edited November 28, 2023 by deeveedee Marked Solved Link to comment Share on other sites More sharing options...
deeveedee Posted April 10, 2021 Author Share Posted April 10, 2021 @jaymonkey I've seen some VoodooPS2Trackpad.kext post by you. Not sure you still visit this forum. I hope you don't mind if I ping you on this issue to see if you have any ideas. Link to comment Share on other sites More sharing options...
deeveedee Posted April 10, 2021 Author Share Posted April 10, 2021 (edited) @5T33Z0 060D fix is already applied and working. I tested this before I injected the VoodooPS2Controller.kexts. Without the 060D fix, my system would instantly wake (even without the VoodooPS2Controller.kexts). I have confirmed that if I revert to RehabMan's VoodooPS2Controller.kext (version 1.9.2, October 8, 2018), my system sleeps fine with VoodooPS2Trackpad.kext enabled. Note that Rehabman's version doesn't have VoodooInput.kext. If I revert to Acidanthera's VoodooPS2Controller.kext 2.1.8, I still have the instant wake problem. I suspect I'm making an error with the way I'm using Acidanthera's VoodooPS2Controller.kext. I'm injecting VoodooPS2Controller.kext, VoodooInput.kext, VoodooPS2Keyboard.kext and VoodooPS2Trackpad.kext (in that order). EDIT: When I use RehabMan's VoodooPS2Controller.kext (which works fine for me without instant wake), I'm injecting VoodooPS2Controller.kext, VoodooPS2Keyboard.kext and VoodooPS2Trackpad.kext (in that order). For now, I'll stay with RehabMan's VoodooPS2Controller.kext until I figure this out. Thanks in advance for any help / suggestions. Edited April 10, 2021 by tonyx86 Added RehabMan kext injection order Link to comment Share on other sites More sharing options...
deeveedee Posted April 10, 2021 Author Share Posted April 10, 2021 (edited) @5T33Z0 Thanks for the tip! I haven't tested long, but so far, RehabMan's 1.9.2 is working well for me without panics with OC 0.6.8. I'm still running Catalina 10.15.7. I'll keep my eye out for the fixed build. Thanks again. EDIT: RehabMan's VoodooPS2Controller version 1.9.2 developed issues after repeated sleep/wake cycles. See next post for solution. Edited April 11, 2021 by tonyx86 Link to comment Share on other sites More sharing options...
deeveedee Posted April 11, 2021 Author Share Posted April 11, 2021 Many thanks for advice from @1Revenger1 in "the other forum". Injecting the VoodooSMBUS and VoodooRMI (and disabling VoodooPS2Controller's VoodooInput) appears to have fixed the instant wake problem. I need to test further, but initial results are good. I followed instructions here. I'm booting with OC 0.6.8. My current kext injection order is as follows: VoodooSMBus.kext VoodooRMI.kext VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext VoodooRMI.kext/Contents/PlugIns/RMISMBus.kext VoodooPS2Controller.kext VoodooPS2Controller.kext/Contents/Plugins/VoodooPS2Keyboard.kext VoodooPS2Controller.kext/Contents/Plugins/VoodooPS2Trackpad.kext With this configuration, trackpad works and laptop sleeps / wakes without problems. It's early in my testing, but this looks promising. Link to comment Share on other sites More sharing options...
deeveedee Posted April 13, 2021 Author Share Posted April 13, 2021 I've switched from VoodooRMI back to VoodooPS2Controller.kext/Contents/PlugIns/VoodooInput.kext after finding that my trackpad wasn't responsive after wake when using VoodooSMBus.kext/VoodooRMI.kext (and Plugins). I have found that with VoodooPS2Controller.kext/.../VoodooInput.kext, my laptop will sleep and remain sleeping as long as the lid is closed (as long as I close the lid to "Sleep" the laptop). If my laptop sleeps while the lid is open (either by sleeping on its own or when I make it sleep using Sleep in the Apple menu), it wakes again after 1-2 seconds. For now, I can live with not sleeping when the lid is open vs. a non-responsive trackpad after wake. Link to comment Share on other sites More sharing options...
deeveedee Posted April 15, 2021 Author Share Posted April 15, 2021 Below is the sleep/wake event log captured when my laptop sleeps with the lid open and VoodooPS2Trackpad.kext v2.2.2 enabled. It appears that the laptop thinks the Power Button was pressed to wake the laptop. Does anyone know what VoodooPS2Trackpad.kext is "tickling" to generate this wake event (something that Rehabman's version was not doing)? 2021-04-13 18:58:39 -0400 Sleep Entering Sleep state due to 'Idle Sleep': Using AC (Charge:100%) 14 secs 2021-04-13 18:58:41 -0400 PM Client Acks Delays to Sleep notifications: [mDNSResponder is slow(1011 ms)] [com.apple.apsd is slow(2572 ms)] 2021-04-13 18:58:50 -0400 Kernel Client Acks Delays to Sleep notifications: [AppleHDADriver driver is slow(msg: SetState to 0)(814 ms)] [AppleAHCIDiskQueueManager driver is slow(msg: SetState to 0)(500 ms)] 2021-04-13 18:58:53 -0400 Wake Wake from Normal Sleep [CDNVA] : due to power-button/User Using AC (Charge:100%) Link to comment Share on other sites More sharing options...
deeveedee Posted April 19, 2021 Author Share Posted April 19, 2021 @mnfesq I hope you don't mind me "pinging" you and tapping into your expertise in this area. I noticed you also have an HP laptop and I admire your work. The "SLPE = 0" _PTS fix that you use for complete shutdown is the same _PTS fix that I have had to use on my HP Envy x360 15m (Kaby Lake R) in this thread (and on my Thinkpad T61 and Dell Latitude E6410). The only problem I have left on this HP Envy is that it wakes instantly after sleep if I have Acidanthera's VoodooPS2Trackpad.kext v2.2.2 (and also v2.1.8) enabled in my OC 0.6.8 config.plist. I don't have this instant wake problem with Rehabman's v1.9.2, but it has other problems. Have you ever encounted this instant wake problem with Acidanthera's VoodooPS2Trackpad.kext and if so, how did you fix it? I have used Rehabman's ACPI Debug in an attempt to identify spurious EC Queries, but so far, I haven't found the cause of instant wake (although Rehabman's ACPI Debug did let me identify the brightness key patch). I do have the GPRW instant wake fix applied and working, but it does not fix this instant wake problem. The only way I have found to "cure" this instant wake is to disable the Acidanthera VoodooPS2Trackpad.kext, but then my trackpad doesn't work. Thanks for any advice or suggestions. Link to comment Share on other sites More sharing options...
mnfesq Posted April 20, 2021 Share Posted April 20, 2021 Please run this and post the results: log show --style syslog | fgrep "Wake reason" 1 Link to comment Share on other sites More sharing options...
deeveedee Posted April 20, 2021 Author Share Posted April 20, 2021 @mnfesq - Thank you for your quick reply! Below are wake reasons for the four scenarios noted. When the laptop wakes instantly, it's as though the VoodooPS2Controller autonomously generates a key stroke event on sleep when the lid is open and VoodooPS2Trackpad is enabled. Lid Open, VoodooPS2Trackpad.kext enabled, Press/Release Power Button to sleep, laptop wakes "instantly" on its own without user stimulus Spoiler 2021-04-19 23:56:11.755097-0400 0x81e Default 0x0 104 0 powerd: [powerd:sleepWake] Wake reason: "<private>" identity: "<private>" 2021-04-19 23:56:55.819869-0400 0x74 Default 0x0 0 0 kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User) 2021-04-19 23:56:55.819871-0400 0x74 Default 0x0 0 0 kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User) VoodooPS2Trackpad.kext enabled, Close lid to sleep and then open lid to wake, laptop remains asleep until lid opened Spoiler 2021-04-20 00:02:02.814643-0400 0x74 Default 0x0 0 0 kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User) 2021-04-20 00:02:02.814645-0400 0x74 Default 0x0 0 0 kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User) Lid Open, VoodooPS2Trackpad.kext disabled, Press Power Button to sleep, Press down arrow (keyboard) to wake, laptop remains asleep until key pressed Spoiler 2021-04-20 00:10:34.917107-0400 0x127e Default 0x0 104 0 powerd: [powerd:sleepWake] Wake reason: "<private>" identity: "<private>" 2021-04-20 00:11:29.757659-0400 0x74 Default 0x0 0 0 kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User) 2021-04-20 00:11:29.757661-0400 0x74 Default 0x0 0 0 kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User) LId Open, VoodooPS2Trackpad.kext disabled, laptop sleeps due to idle, Press down arrow key (keyboard) to wake, laptop remains asleep until key pressed Spoiler 2021-04-20 00:10:34.917107-0400 0x127e Default 0x0 104 0 powerd: [powerd:sleepWake] Wake reason: "<private>" identity: "<private>" 2021-04-20 00:18:17.951350-0400 0x74 Default 0x0 0 0 kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User) 2021-04-20 00:18:17.951352-0400 0x74 Default 0x0 0 0 kernel: (AppleACPIPlatform) AppleACPIPlatformPower Wake reason: PWRB (User) Link to comment Share on other sites More sharing options...
theroadw Posted April 20, 2021 Share Posted April 20, 2021 Try using the debug versions (LILU and Voodoo) and see if the logs give any more information. Also post your DSDT 1 Link to comment Share on other sites More sharing options...
mnfesq Posted April 20, 2021 Share Posted April 20, 2021 (edited) I was under the impression that Lilu and VirtualSMC needed to load before VoodooInput/VoodooPS2, etc. I notice the order of your kexts in your kernel settings of your config.plist don't load kexts in that order. Doubtful that it would cause your problem. Since you ended up with <private> as your wake reason, Apple is not being all that helpful. I don't think there is a power button issue here. See if you get any better info using this: pmset -g log. Post your results. Also, why are you using SSDT-GPRW.aml and the ACPI rename from GPRW to XPRW? My Kabylake-R laptop does not need this for sleep/wake function. Also, I use SMBIOS MacbookPro14,3. Also, try newest version of VoodooPS; v. 2.2.3 VoodooPS2Controller.kext.zip Edited April 20, 2021 by mnfesq 1 Link to comment Share on other sites More sharing options...
deeveedee Posted April 20, 2021 Author Share Posted April 20, 2021 4 hours ago, theroadw said: Try using the debug versions (LILU and Voodoo) and see if the logs give any more information. Also post your DSDT @1Revenger1 also suggested that. I think that might be necessary. 4 hours ago, mnfesq said: I was under the impression that Lilu and VirtualSMC needed to load before VoodooInput/VoodooPS2, etc. I notice the order of your kexts in your kernel settings of your config.plist don't load kexts in that order. Doubtful that it would cause your problem. Since you ended up with <private> as your wake reason, Apple is not being all that helpful. I don't think there is a power button issue here. See if you get any better info using this: pmset -g log. Post your results. Also, why are you using SSDT-GPRW.aml and the ACPI rename from GPRW to XPRW? My Kabylake-R laptop does not need this for sleep/wake function. Also, I use SMBIOS MacbookPro14,3. Also, try newest version of VoodooPS; v. 2.2.3 I'll collect the info and report back. I have some other priorities and will ping you when I have updates. I did test various kext injection orders and the Lilu/VPS2 order didn't matter. I'm currently running with Lilu first. It could be that I patched GPRW because I misinterpreted the VoodooPS2Controller instant wake problem. I'll have to test again without the GPRW patch. I looked at VPS2 and it looks to me like the only commit in 2.2.3 is a version bump, but it can't hurt to test it. I thought MBP14,3 was better suited to a rig with discrete graphics, but I can try that, too. Thank you both for the suggestions! Link to comment Share on other sites More sharing options...
deeveedee Posted April 21, 2021 Author Share Posted April 21, 2021 (edited) Before I start down the detailed debug path, I decided to revert to older versions of Acidanthera's VoodooPS2Controller (since Rehabman's version 1.9.2 does not have the instant wake problem for me). I have confirmed that if I revert to Acidanthera's v2.0.2, I do not have the instant wake problem. v2.0.4 does have the instant wake problem. If I can figure out which commit is responsible for the change in behavior, that might help to isolate the cause (and the fix). EDIT: I have confirmed that the instant wake problem (for me) was introduced with Acidanthera's VoodooPS2Controller.kext 2.0.3. The problem does not occur if I use Acidanthera's v2.0.2. According to the Acidanthera change log, the changes from 2.0.2 to 2.0.3 are Use touchpad sleep mode during mainboard sleep Improve physical and trackpad button support Here is the detailed comparison of the two versions. Edited April 21, 2021 by tonyx86 Added link to detailed comparison of 2.0.2 and 2.0.3 Link to comment Share on other sites More sharing options...
deeveedee Posted April 21, 2021 Author Share Posted April 21, 2021 (edited) I have confirmed that I am able to run Acidanthera's VoodooPS2Controller.kext v2.0.3 if I comment out the following lines of code in VoodooPS2SynapticsTouchPad.cpp (ApplePS2SynapticsTouchPad::setDevicePowerState): _touchPadModeByte |= 1 << 3; setModeByte(_touchPadModeByte); // Enable sleep I have reported this to vit9696. Since this has not been reported by others, I'm convinced this is specific to my laptop, but I'm not sure what to change to resolve this. EDIT: I have confirmed that making the same code change to v2.0.4 "fixes" my instant wake problem. Note that I'm not testing my code change with newer versions, because newer versions depend on VoodooInput and I don't need newer versions to isolate the problem. EDIT2: I have confirmed that making the same code change to v2.2.2 "fixes" my instant wake problem. I am currently running with my slightly modified version of VoodooPS2Controller.kext v2.2.2. Edited April 22, 2021 by tonyx86 Added note about 2.2.2 1 Link to comment Share on other sites More sharing options...
deeveedee Posted April 22, 2021 Author Share Posted April 22, 2021 (edited) The fix for this issue will be introduced in VoodooPS2Controller.kext v2.2.3. See commit here. EDIT: I built and tested v2.2.3. The fix works as expected when injecting Synaptics Touchpad property "DisableDeepSleep" via SSDT. Many thanks to vit9696 and the Acidanthera team for responding so quickly and implementing this fix. Edited April 23, 2021 by tonyx86 Added note about successful test of v2.2.3 1 Link to comment Share on other sites More sharing options...
makk Posted April 23, 2021 Share Posted April 23, 2021 (edited) Nice when is this new version available? Thanks and great work! on my system with V 222 trackpad is not recognized and does not load in Catalina. In Big Sur caused reboot and could not boot into finish my install need keyboard. So I went back to Rehabman 192 which causes a pause on bootup in Catalina, Mojave on the load of the Trackpad kext. Security check to allow it. So what I have done is installed several things in testing VoodooI2C.kext I took out GPIO.kext and Services.kext one at a time to single out the problem. But in the end we get version conflicts because one is newer and the code has thing in one and not the other Yet they work and load not perfect marriage here. Edited April 23, 2021 by makk Link to comment Share on other sites More sharing options...
deeveedee Posted April 25, 2021 Author Share Posted April 25, 2021 @makk The release date for VoodooPS2Controller v2.2.3 is up to the Acidanthera team. If history is an indicator, the next release will be at the beginning of May. For those who are curious about the "DeepSleep" setting and why it might cause the instant wake problem that I noted in this thread, see this Synaptics Interface Spec. It appears that some Synaptics Trackpads may not support low power idle mode (what is referred to as "DeepSleep" in the VoodooPS2Trackpad code). Before attempting to set the Sleep bit in the Mode Byte, the driver must first check the capSleep bit to confirm that low power idle mode is supported. The current VoodPS2Trackpad code change which is scheduled to be released with v2.2.3 is acceptable and does the job. As an additional measure, it may not be a bad idea for VoodooPS2Trackpad to check the capSleep bit before attempting to set power idle mode. Link to comment Share on other sites More sharing options...
makk Posted April 25, 2021 Share Posted April 25, 2021 8 hours ago, tonyx86 said: @makk The release date for VoodooPS2Controller v2.2.3 is up to the Acidanthera team. If history is an indicator, the next release will be at the beginning of May. For those who are curious about the "DeepSleep" setting and why it might cause the instant wake problem that I noted in this thread, see this Synaptics Interface Spec. It appears that some Synaptics Trackpads may not support low power idle mode (what is referred to as "DeepSleep" in the VoodooPS2Trackpad code). Before attempting to set the Sleep bit in the Mode Byte, the driver must first check the capSleep bit to confirm that low power idle mode is supported. The current VoodPS2Trackpad code change which is scheduled to be released with v2.2.3 is acceptable and does the job. As an additional measure, it may not be a bad idea for VoodooPS2Trackpad to check the capSleep bit before attempting to set power idle mode. Thank you tony Seems to the case. Have a good day Link to comment Share on other sites More sharing options...
deeveedee Posted May 4, 2021 Author Share Posted May 4, 2021 VoodooPS2Controller.kext v2.2.3 is now available here with the fix for this issue. Many thanks to the Acidanthera team for their fast response. For those affected by this issue, add the following to your VPS2 SSDT: "Synaptics TouchPad", Package() { "DisableDeepSleep", ">y", } Link to comment Share on other sites More sharing options...
deeveedee Posted November 27, 2023 Author Share Posted November 27, 2023 (edited) It's been a while since I tested DeepSleep on my HP Envy Kabylake-R laptop. I am currently using VoodooPS2Controller.kext v2.3.5 with Sonoma 14.1.1 and am finding that I no longer need to set "DisableDeepSleep", ">y" It's early in my testing, but I modified my SSDT to set DisableDeepSleep = n and sleep / wake is working fine. EDIT: It appears that the issue reported in this thread was fixed with the release of VoodooPS2Controller.kext v2.2.6 with this commit. I have not tested to confirm that the sleep/wake fix was in fact this commit and am only guessing based on the commit description. Many thanks to @1Revenger1 for his outstanding work on this kext. Edited November 29, 2023 by deeveedee 1 Link to comment Share on other sites More sharing options...
Recommended Posts