mnfesq Posted March 22, 2014 Share Posted March 22, 2014 I have a brand new SSDT. It really isn't that, unless the ones compiled by MaciASL are now no good. I have full speed stepping with the old kexts. It's just when I use the current vanilla kexts that I lose it. I will give it a try but I really feel that this is not the problem I'm having. I think I need to patch my DSDT to address this. Link to comment Share on other sites More sharing options...
pokenguyen Posted March 22, 2014 Share Posted March 22, 2014 The one created by MacIASL is Sandy-Bridge style ssdt. It does not have plugin-type one, that's why you need old ACPIPlatform 1.3.5 to force SandyBridge Pm to work. Use vanilla ACPIPlatform and ssdt.aml by ssdtprgen will give you IvyBrdge pm Link to comment Share on other sites More sharing options...
mnfesq Posted March 22, 2014 Share Posted March 22, 2014 Well, I did make a new SSDT as you suggested. I also tried out Rehabman's ACPIBatteryManager.kext. Now, the only kext I need to roll back to get speed stepping to work is ACPIPlatform. Whenever I use the 10.9.2 vanilla version, I lose speed stepping and it runs at 800 MHz, which is not even a speed step when speed step is working. My CPU's lowest proper running frequency is 1200 MHz. I'm making progress, I think, but I still can't figure out why it needs that old ACPIPlatform.kext. Afterthought: I got an error when I made my new SSDT. It said that the board id was not right for the type of CPU I had. It asked me if I wanted to continue anyway and I entered yes. Might that be relevant? Link to comment Share on other sites More sharing options...
pokenguyen Posted March 22, 2014 Share Posted March 22, 2014 What's ur smbios? I explained why you need old acpiplatform in previous post. Link to comment Share on other sites More sharing options...
mnfesq Posted March 22, 2014 Share Posted March 22, 2014 I have been using macbookpro8,3. I am currently experimenting with different ones (all Ivy Bridge) to see if that helps. Any suggestions? Link to comment Share on other sites More sharing options...
pokenguyen Posted March 22, 2014 Share Posted March 22, 2014 Macbook Pro 8,3 is SandyBridge, while your laptop uses IvyBridge CPU, make sense? Link to comment Share on other sites More sharing options...
warlikewings Posted March 22, 2014 Share Posted March 22, 2014 For your laptop I think MacBook Pro 9,x or 10,x would be acceptable, and may help you. Link to comment Share on other sites More sharing options...
mnfesq Posted March 22, 2014 Share Posted March 22, 2014 I think that MacbookPro9,1 or 9,2 would be the closest to my system but, for reasons unknown to me, when I use the 10.9.2 version of the ACPIPlatform kext with either of those two smbios, my laptop runs at only 800 MHz. (I experimented with MacAir and MacMini smbios also for Ivy bridge with no success. MacBookPro10,1 didn't work and, while 10,2 looks promising, I couldn't find it anywhere.) I am using the AICPUPM patch in Clover but, when I don't use that patch and instead use the patched AICPUPM kext, I get the same result. Also, when I don't use my custom SSDT and instead let Clover generate one, I can use the 10.9.2 version of the ACPIPlatform kext with the MacBookPro9,1 or 9,2 smbios but get only two speed steps, 1200 MHz and 2500 MHz. Using the old ACPIPlatform kext and the 8,3 smbios, I get about 7 different speeds including turbo up to 3100 MHz. More suggestions would be appreciated. [@ Pokenguyen - I totally get that my smbios should match my system. That's why I am having such a hard time - the ones that match my system have never worked for me.] Link to comment Share on other sites More sharing options...
pokenguyen Posted March 22, 2014 Share Posted March 22, 2014 You wrongly I think that MacbookPro9,1 or 9,2 would be the closest to my system but, for reasons unknown to me, when I use the 10.9.2 version of the ACPIPlatform kext with either of those two smbios, my laptop runs at only 800 MHz. (I experimented with MacAir and MacMini smbios also for Ivy bridge with no success. MacBookPro10,1 didn't work and, while 10,2 looks promising, I couldn't find it anywhere.) I am using the AICPUPM patch in Clover but, when I don't use that patch and instead use the patched AICPUPM kext, I get the same result. Also, when I don't use my custom SSDT and instead let Clover generate one, I can use the 10.9.2 version of the ACPIPlatform kext with the MacBookPro9,1 or 9,2 smbios but get only two speed steps, 1200 MHz and 2500 MHz. Using the old ACPIPlatform kext and the 8,3 smbios, I get about 7 different speeds including turbo up to 3100 MHz. More suggestions would be appreciated. Run the ssdtprgen with -w 3. If not, you will be stucked in 8x. www.insanelymac.com/forum/topic/295587-power-management-for-sandyivy-bridgehaswell-cpus/ 1 Link to comment Share on other sites More sharing options...
warlikewings Posted March 22, 2014 Share Posted March 22, 2014 Any clue why my hibernation doesn't seem to be working correctly? Power management fully working with patched mach kernel, sleep works fine, only refuses to wake from hibernate. Smbios MacBook Pro 11,2 HP Envy 17 touch smart m7-J010dx Haswell i7 4700mq Intel HD 4600 graphics 8gb ram Currently using all files provided by gigabyte666 as I've determined my system is near identical to his (minus the nvidia and blue ray drive, and potentially other minor differences) If any additional information is needed about my laptop or installation, let me know, and I'll do my best to accommodate. 1 Link to comment Share on other sites More sharing options...
mnfesq Posted March 22, 2014 Share Posted March 22, 2014 You wrongly Run the ssdtprgen with -w 3. If not, you will be stucked in 8x. www.insanelymac.com/forum/topic/295587-power-management-for-sandyivy-bridgehaswell-cpus/ I think your suggestion worked. I was making the SSDT with -TURBO 3100 instead of -w 3. I am seeing a lot more speed steps now. Thanks much for sticking with me. 1 Link to comment Share on other sites More sharing options...
warlikewings Posted March 22, 2014 Share Posted March 22, 2014 Glad you seem to be making progress! Link to comment Share on other sites More sharing options...
pokenguyen Posted March 22, 2014 Share Posted March 22, 2014 Any clue why my hibernation doesn't seem to be working correctly? Power management fully working with patched mach kernel, sleep works fine, only refuses to wake from hibernate. Smbios MacBook Pro 11,2 HP Envy 17 touch smart m7-J010dx Haswell i7 4700mq Intel HD 4600 graphics 8gb ram Currently using all files provided by gigabyte666 as I've determined my system is near identical to his (minus the nvidia and blue ray drive, and potentially other minor differences) If any additional information is needed about my laptop or installation, let me know, and I'll do my best to accommodate. Don't know if you're using Chameleon or Clover UEFI, but Clover hibernation will only work if you don't have AptioFix driver. You also have to set a lot more option to make hibernation work. I would stick to sleep mode and disable hibernation. http://www.projectosx.com/forum/index.php?showtopic=3167 Link to comment Share on other sites More sharing options...
mnfesq Posted March 22, 2014 Share Posted March 22, 2014 I can confirm that native power management is working as it should. Now, I just have one small problem. When I press the power button, it toggles the video display off and on instead of bringing up the shutdown/sleep/restart window. I can still get that by pressing Ctrl+F12. Any idea what I need to restore that feature? EDIT: Got it working. What a pleasure to have full native power management with no rollbacks! Link to comment Share on other sites More sharing options...
warlikewings Posted March 22, 2014 Share Posted March 22, 2014 Don't know if you're using Chameleon or Clover UEFI, but Clover hibernation will only work if you don't have AptioFix driver. You also have to set a lot more option to make hibernation work. I would stick to sleep mode and disable hibernation. http://www.projectosx.com/forum/index.php?showtopic=3167 Yup, I'm using clover uefi, and have aptiofix driver. Maybe I'll try it without and see what happens. Setting hibernate mode to 0 (disable hibernate) didn't actually stop it from hibernating oddly enough, I'd like to attempt to get the mode working if possible, if not I'll figure out how to disable it. Link to comment Share on other sites More sharing options...
warlikewings Posted March 22, 2014 Share Posted March 22, 2014 Forget it, I just ticked "never hibernate" in clover and decided to be done with it. It's not a major issue, I'll be getting my 15" MacBook Pro from school in a few months anyhow. This is just my practice rig for now, while I start dabbling in computer animation and sound recording/creation (the latter being a long DIY hobby of mine) Link to comment Share on other sites More sharing options...
gygabyte666 Posted March 23, 2014 Author Share Posted March 23, 2014 I would add some debug traces that print the value of BAR1 from the POLL.FCPU method. Just a debug trace: \rmdt.p2("IGPU.BAR1", \_SB.PCI0.IGPU.BAR1) Then you can see if it is reading the BAR1 value from the PCI_config for IGPU correctly. Compare BAR1 value against the value you see in Windows. I had the 11,2 10.9.1 update on my Haswell and this stuff was working fine there too... Have you looked at my DSDT/SSDT patching repo? I've got a slick setup there (if a bit developer oriented... using shell scripts and make) that automates the process of patching DSDT/SSDT from Linux native and installing it. It would need some adaptation for your setup as you have nvidia, and that might throw off where the GFX0 SSDT is as far as numbering. And yes, I suppose it is possible that your attempts to get your nvidia recognized could be causing issues. Quick update on this. I recently did a complete remake of my DSDT/SSDT setup in an attempt to remove all unneeded patches, fixes and general alterations that could have been left behind during the testing that I did for your ACPIBacklight. I re-ran a quick test of my own and I can still say sadly that ACPIBacklight still doesn't work for me. I used a clean install of 10.9.2 with an smbios of a MBP11,3 during the test. Good news is that i'm able to use AppleBacklight natively now without my old injector. I have not tried your suggestion of adding in traces yet (since my understanding of what you suggested doing is very, very limited) but I just wanted to quickly let you know that it wasn't any edits I made that caused it to not work, it just doesn't work with my machine for some reason. Link to comment Share on other sites More sharing options...
RehabMan Posted March 29, 2014 Share Posted March 29, 2014 I planned to try this out but my patch-writing skills are extremely poor. I keep getting a major compile error with the dsdt after I apply the patch. I renamed my dsdt's EC region (H_EC) to match the one listed in your patch (EC0) but it still fails to compile properly so there are errors, I can't seem to fix them. Here is my patch based on what you provided: # instrument EC query methods into method label _Q0A parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1(“EC0._Q0A enter")\n %1\n \\rmdt.p1(“EC0._Q0A exit")\n end; into method label _Q06 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q06 enter")\n %1\n \\rmdt.p1("EC0._Q06 exit")\n end; into method label _Q08 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q08 enter")\n %1\n \\rmdt.p1("EC0._Q08 exit")\n end; into method label _Q09 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q09 enter")\n %1\n \\rmdt.p1("EC0._Q09 exit")\n end; into method label _Q13 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q13 enter")\n %1\n \\rmdt.p1("EC0._Q13 exit")\n end; into method label _QB1 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._QB1 enter")\n %1\n \\rmdt.p1("EC0._QB1 exit")\n end; into method label _Q21 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q21 enter")\n %1\n \\rmdt.p1("EC0._Q21 exit")\n end; into method label _Q12 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q12 enter")\n %1\n \\rmdt.p1("EC0._Q12 exit")\n end; into method label _Q25 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q25 enter")\n %1\n \\rmdt.p1("EC0._Q25 exit")\n end; into method label _Q75 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q75 enter")\n %1\n \\rmdt.p1("EC0._Q75 exit")\n end; into method label _Q33 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q33 enter")\n %1\n \\rmdt.p1("EC0._Q33 exit")\n end; into method label _Q3D parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q3D enter")\n %1\n \\rmdt.p1("EC0._Q3D exit")\n end; into method label _Q3E parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q3E enter")\n %1\n \\rmdt.p1("EC0._Q3E exit")\n end; into method label _Q20 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q20 enter")\n %1\n \\rmdt.p1("EC0._Q20 exit")\n end; into method label _Q3F parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q3F enter")\n %1\n \\rmdt.p1("EC0._Q3F exit")\n end; into method label _Q22 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q22 enter")\n %1\n \\rmdt.p1("EC0._Q22 exit")\n end; into method label _Q66 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q66 enter")\n %1\n \\rmdt.p1("EC0._Q66 exit")\n end; into method label _Q50 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q50 enter")\n %1\n \\rmdt.p1("EC0._Q50 exit")\n end; into method label _Q51 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q51 enter")\n %1\n \\rmdt.p1("EC0._Q51 exit")\n end; into method label _Q52 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q52 enter")\n %1\n \\rmdt.p1("EC0._Q52 exit")\n end; into method label _QCE parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._QCE enter")\n %1\n \\rmdt.p1("EC0._QCE exit")\n end; into method label _Q77 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q77 enter")\n %1\n \\rmdt.p1("EC0._Q77 exit")\n end; into method label _Q63 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q63 enter")\n %1\n \\rmdt.p1("EC0._Q63 exit")\n end; into method label _Q64 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q64 enter")\n %1\n \\rmdt.p1("EC0._Q64 exit")\n end; into method label _Q11 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q11 enter")\n %1\n \\rmdt.p1("EC0._Q11 exit")\n end; into method label _Q10 parent_label EC0 code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("EC0._Q10 enter")\n %1\n \\rmdt.p1("EC0._Q10 exit")\n end; The full path for the EC region seems to be _SB.PCI0.LPCB.H_EC._Qxx for my dsdt. As mentioned I renamed it to _SB.PCI0.LPCB.EC0._Qxx. Any ideas on what I did wrong with the patch code? Thanks. This is why I don't write patches >_> Without seeing the error and the code that causes it, I can't be sure. Link to comment Share on other sites More sharing options...
gygabyte666 Posted April 5, 2014 Author Share Posted April 5, 2014 Without seeing the error and the code that causes it, I can't be sure. Would it help if I uploaded my dsdt? You'd probably have no problem adjusting the code to work with it. I'm not implying that there is a problem with your code, i'm just saying I am not sure how to go about applying it to my specific dsdt. As mentioned, all of my ECs are named differently and thus causing an error during compiling. I am not sure how to get around it. Link to comment Share on other sites More sharing options...
RehabMan Posted April 20, 2014 Share Posted April 20, 2014 Would it help if I uploaded my dsdt? You'd probably have no problem adjusting the code to work with it. I'm not implying that there is a problem with your code, i'm just saying I am not sure how to go about applying it to my specific dsdt. As mentioned, all of my ECs are named differently and thus causing an error during compiling. I am not sure how to get around it. Upload your DSDT unpatched for _Qxx methods and the modified patch you applied... Link to comment Share on other sites More sharing options...
gygabyte666 Posted April 30, 2014 Author Share Posted April 30, 2014 Upload your DSDT unpatched for _Qxx methods and the modified patch you applied... I would but I don't have the modified patch anymore. I deleted it after I realized it was a bust. I could still up the unpatched dsdt but I will wait to hear back from you before I do. Link to comment Share on other sites More sharing options...
RehabMan Posted April 30, 2014 Share Posted April 30, 2014 I would but I don't have the modified patch anymore. I deleted it after I realized it was a bust. I could still up the unpatched dsdt but I will wait to hear back from you before I do. Post it and I'll throw together a patch to instrument the methods. You probably should post the patched DSDT you're currently using, so you can just swap it in. I'm not sure if your DSDT patching process is automated or whether you have a bunch of manual steps... Link to comment Share on other sites More sharing options...
gygabyte666 Posted April 30, 2014 Author Share Posted April 30, 2014 Post it and I'll throw together a patch to instrument the methods. You probably should post the patched DSDT you're currently using, so you can just swap it in. I'm not sure if your DSDT patching process is automated or whether you have a bunch of manual steps... Seems I was mistaken. Typically, I upload all my dsdt/ssdt changes to my cloud storage in the event of HDD failure to prevent data loss but in this instance, I guess I didn't think a failed EC edit was worth uploading. However, it remained locally on my HDD so I do actually have the dsdt I edited. I included it in the archive along with a current copy of my most recent dsdt. The failed edit also already has RMDT added to it if that's helpful. Thanks for the assist! I hope you can help. Secondary concern: I recently purchased an Apple Magic Trackpad and realized that it has trouble pairing with my machine and the only likely conclusion I could come to is that your VoodooPS2Controller/Trackpad must be interfering with it. I came to this conclusion after testing it with my tower which has very similar hardware with the only major exception is the tower lacks the need for your Voodoo kext. Since it's a trackpad, it's not a huge deal but down the road, should I ever run into a similar problem with a bluetooth keyboard, it would kind of suck. Just out of curiosity, have you ran into this issue yourself and can you think of a way around it? Thanks. 17t_dsdt_EC_failure.zip Link to comment Share on other sites More sharing options...
RehabMan Posted May 1, 2014 Share Posted May 1, 2014 Seems I was mistaken. Typically, I upload all my dsdt/ssdt changes to my cloud storage in the event of HDD failure to prevent data loss but in this instance, I guess I didn't think a failed EC edit was worth uploading. However, it remained locally on my HDD so I do actually have the dsdt I edited. I included it in the archive along with a current copy of my most recent dsdt. The failed edit also already has RMDT added to it if that's helpful. Thanks for the assist! I hope you can help. Here's a set of patches for instrumentation. It includes instrumentation checking for completion of _PTS/_WAK just in case you're curious about that too. # instrument _PTS and _WAK ## into method label _WAK code_regex ([\s\S]*)(Return[\s\S]*) replace_matched begin \\rmdt.p2("_WAK enter", Arg0)\n %1\n \\rmdt.p1("_WAK exit")\n %2\n end; into method label _PTS code_regex ([\s\S]*) replace_matched begin \\rmdt.p2("_PTS enter", Arg0)\n %1\n \\rmdt.p1("_PTS exit")\n end; # instrument EC query methods ## into method label _Q0A parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q0A enter")\n %1\n \\rmdt.p1("H_EC._Q0A exit")\n end; into method label _Q06 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q06 enter")\n %1\n \\rmdt.p1("H_EC._Q06 exit")\n end; into method label _Q08 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q08 enter")\n %1\n \\rmdt.p1("H_EC._Q08 exit")\n end; into method label _Q09 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q09 enter")\n %1\n \\rmdt.p1("H_EC._Q09 exit")\n end; into method label _Q13 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q13 enter")\n %1\n \\rmdt.p1("H_EC._Q13 exit")\n end; into method label _QB1 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._QB1 enter")\n %1\n \\rmdt.p1("H_EC._QB1 exit")\n end; into method label _Q21 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q21 enter")\n %1\n \\rmdt.p1("H_EC._Q21 exit")\n end; into method label _Q12 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q12 enter")\n %1\n \\rmdt.p1("H_EC._Q12 exit")\n end; into method label _Q25 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q25 enter")\n %1\n \\rmdt.p1("H_EC._Q25 exit")\n end; into method label _Q75 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q75 enter")\n %1\n \\rmdt.p1("H_EC._Q75 exit")\n end; into method label _Q33 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q33 enter")\n %1\n \\rmdt.p1("H_EC._Q33 exit")\n end; into method label _Q3D parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q3D enter")\n %1\n \\rmdt.p1("H_EC._Q3D exit")\n end; into method label _Q3E parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q3E enter")\n %1\n \\rmdt.p1("H_EC._Q3E exit")\n end; into method label _Q20 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q20 enter")\n %1\n \\rmdt.p1("H_EC._Q20 exit")\n end; into method label _Q3F parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q3F enter")\n %1\n \\rmdt.p1("H_EC._Q3F exit")\n end; into method label _Q22 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q22 enter")\n %1\n \\rmdt.p1("H_EC._Q22 exit")\n end; into method label _Q66 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q66 enter")\n %1\n \\rmdt.p1("H_EC._Q66 exit")\n end; into method label _Q50 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q50 enter")\n %1\n \\rmdt.p1("H_EC._Q50 exit")\n end; into method label _Q51 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q51 enter")\n %1\n \\rmdt.p1("H_EC._Q51 exit")\n end; into method label _Q52 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q52 enter")\n %1\n \\rmdt.p1("H_EC._Q52 exit")\n end; into method label _QCE parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._QCE enter")\n %1\n \\rmdt.p1("H_EC._QCE exit")\n end; into method label _Q77 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q77 enter")\n %1\n \\rmdt.p1("H_EC._Q77 exit")\n end; into method label _Q63 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q63 enter")\n %1\n \\rmdt.p1("H_EC._Q63 exit")\n end; into method label _Q64 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q64 enter")\n %1\n \\rmdt.p1("H_EC._Q64 exit")\n end; into method label _Q11 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q11 enter")\n %1\n \\rmdt.p1("H_EC._Q11 exit")\n end; into method label _Q10 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q10 enter")\n %1\n \\rmdt.p1("H_EC._Q10 exit")\n end; You will need to add the RMDT device, of course. This will instrument all EC query methods. Secondary concern: I recently purchased an Apple Magic Trackpad and realized that it has trouble pairing with my machine and the only likely conclusion I could come to is that your VoodooPS2Controller/Trackpad must be interfering with it. I came to this conclusion after testing it with my tower which has very similar hardware with the only major exception is the tower lacks the need for your Voodoo kext. Since it's a trackpad, it's not a huge deal but down the road, should I ever run into a similar problem with a bluetooth keyboard, it would kind of suck. Just out of curiosity, have you ran into this issue yourself and can you think of a way around it? Thanks. Bluetooth/pairing is not related at all to the PS2 interface. Link to comment Share on other sites More sharing options...
gygabyte666 Posted May 1, 2014 Author Share Posted May 1, 2014 Here's a set of patches for instrumentation. It includes instrumentation checking for completion of _PTS/_WAK just in case you're curious about that too. # instrument _PTS and _WAK ## into method label _WAK code_regex ([\s\S]*)(Return[\s\S]*) replace_matched begin \\rmdt.p2("_WAK enter", Arg0)\n %1\n \\rmdt.p1("_WAK exit")\n %2\n end; into method label _PTS code_regex ([\s\S]*) replace_matched begin \\rmdt.p2("_PTS enter", Arg0)\n %1\n \\rmdt.p1("_PTS exit")\n end; # instrument EC query methods ## into method label _Q0A parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q0A enter")\n %1\n \\rmdt.p1("H_EC._Q0A exit")\n end; into method label _Q06 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q06 enter")\n %1\n \\rmdt.p1("H_EC._Q06 exit")\n end; into method label _Q08 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q08 enter")\n %1\n \\rmdt.p1("H_EC._Q08 exit")\n end; into method label _Q09 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q09 enter")\n %1\n \\rmdt.p1("H_EC._Q09 exit")\n end; into method label _Q13 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q13 enter")\n %1\n \\rmdt.p1("H_EC._Q13 exit")\n end; into method label _QB1 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._QB1 enter")\n %1\n \\rmdt.p1("H_EC._QB1 exit")\n end; into method label _Q21 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q21 enter")\n %1\n \\rmdt.p1("H_EC._Q21 exit")\n end; into method label _Q12 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q12 enter")\n %1\n \\rmdt.p1("H_EC._Q12 exit")\n end; into method label _Q25 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q25 enter")\n %1\n \\rmdt.p1("H_EC._Q25 exit")\n end; into method label _Q75 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q75 enter")\n %1\n \\rmdt.p1("H_EC._Q75 exit")\n end; into method label _Q33 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q33 enter")\n %1\n \\rmdt.p1("H_EC._Q33 exit")\n end; into method label _Q3D parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q3D enter")\n %1\n \\rmdt.p1("H_EC._Q3D exit")\n end; into method label _Q3E parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q3E enter")\n %1\n \\rmdt.p1("H_EC._Q3E exit")\n end; into method label _Q20 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q20 enter")\n %1\n \\rmdt.p1("H_EC._Q20 exit")\n end; into method label _Q3F parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q3F enter")\n %1\n \\rmdt.p1("H_EC._Q3F exit")\n end; into method label _Q22 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q22 enter")\n %1\n \\rmdt.p1("H_EC._Q22 exit")\n end; into method label _Q66 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q66 enter")\n %1\n \\rmdt.p1("H_EC._Q66 exit")\n end; into method label _Q50 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q50 enter")\n %1\n \\rmdt.p1("H_EC._Q50 exit")\n end; into method label _Q51 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q51 enter")\n %1\n \\rmdt.p1("H_EC._Q51 exit")\n end; into method label _Q52 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q52 enter")\n %1\n \\rmdt.p1("H_EC._Q52 exit")\n end; into method label _QCE parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._QCE enter")\n %1\n \\rmdt.p1("H_EC._QCE exit")\n end; into method label _Q77 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q77 enter")\n %1\n \\rmdt.p1("H_EC._Q77 exit")\n end; into method label _Q63 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q63 enter")\n %1\n \\rmdt.p1("H_EC._Q63 exit")\n end; into method label _Q64 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q64 enter")\n %1\n \\rmdt.p1("H_EC._Q64 exit")\n end; into method label _Q11 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q11 enter")\n %1\n \\rmdt.p1("H_EC._Q11 exit")\n end; into method label _Q10 parent_label H_EC code_regex ([\s\S]*) replace_matched begin \\rmdt.p1("H_EC._Q10 enter")\n %1\n \\rmdt.p1("H_EC._Q10 exit")\n end; You will need to add the RMDT device, of course. This will instrument all EC query methods. If i'm understanding this correctly, what you're saying is that this patch should apply properly to my dsdt? Is this correct? Bluetooth/pairing is not related at all to the PS2 interface. As I expected but sadly, it doesn't explain why pairing fails. I can only assume it's because the Voodoo prefpane takes the place of the pane used by the trackpad. It paired properly and took maybe a full minute to pair on my tower but the laptop has a difficult time of even locating the device. Pairing slowed the machine to a crawl and just fails every time. Hmm... Link to comment Share on other sites More sharing options...
Recommended Posts