Jump to content

HP Envy 17t-j000 Quad (Haswell) + 10.8.5/10.9.5/10.10.x/10.11.x/10.12.x/10.13.x/10.14.x


gygabyte666
 Share

1,321 posts in this topic

Recommended Posts

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

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

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

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

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/

  • Like 1
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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

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

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

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

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

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

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

  • 3 weeks later...

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

  • 2 weeks later...

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

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

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

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

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

 Share

×
×
  • Create New...