Contribute
Register

VoodooI2C Help and Support

Status
Not open for further replies.
Hi guys,

the prefpanel shows the trackpad, but is has no function at all.

I tried with VoodooI2CHID and VoodooI2CSynaptics.
I followed the guide but could not get it to work.

Find attached the requested files.

Hope you can help...

@ben9923 helped me fix this.
Only thing is now, that the movement of the pointer stops, while moving the finger. After about a second it moves again and so on. So it is but barely usable. Also this means no "fine" movements are possible, only short "bursts"...
 

Attachments

  • Error Reporting.zip
    920.7 KB · Views: 124
Last edited:
Hi, just installed latest 2.2 VoodooI2C.kext with VoodooI2CHID.kext (coming from 2.1.6)
Some trackpad gestures seems working better :
- safari zoom out (no more need to zoom in/out within the same gesture)
- 3 fingers pinch for desktop view is also better.
Are these could be improvements of the 2.2 version ?

Anyway thanks for your job here !
 
Hi, just installed latest 2.2 VoodooI2C.kext with VoodooI2CHID.kext (coming from 2.1.6)
Some trackpad gestures seems working better :
- safari zoom out (no more need to zoom in/out within the same gesture)
- 3 fingers pinch for desktop view is also better.
Are these could be improvements of the 2.2 version ?

Anyway thanks for your job here !
I think 2.2 only benefits Cannon Lake GPIO-enabled devices. If you're using such hardware, it should improve stability when transitioning to GPIO.
Why aren't you using VoodooI2CHID from 2.2? (I think it's the same, but...)
 
I think 2.2 only benefits Cannon Lake GPIO-enabled devices. If you're using such hardware, it should improve stability when transitioning to GPIO.
Why aren't you using VoodooI2CHID from 2.2? (I think it's the same, but...)
ok noted maybe the improvement I have noted is linked to something else !
Yes I am using VoodooI2CHID coming with 2.2 (2.1.6 I have mentioned was for VoodooI2C.kext)
 
Hmm... Not sure what can be done more exactly :(
You could try older versions of the kext, one might work and will give us a clue about the problem.
just wanted to share that I think i fixed this glitchyness after sleep.

I swapped FakeSMC.kext and ACPIBatteryManager.kext for VirtualSMC.kext and SMCBatteryManager.kext.

also, in my DSDT i had this in my Wake method (_WAK) twice
Code:
If (LOr (LLess (Arg0, One), LGreater (Arg0, 0x05)))
        {
            Store (0x03, Arg0)
        }

I removed the duplicate instance.

Im not sure if its one or the other or both, but after that my trackpad isnt getting glitchy after sleep. Ive only done short (<10 minute sleep) tests so far but previously itd get glitchy even after sleeping for a minute. An overnight test tonight, but i feel this is likely fixed.

Now that I have that sorted, I wanted to see if there is any way to enable palm rejection. As it is now there is zero palm rejection and i have to be careful not to hit the trackpad or itll click wherever.

--UPDATE-- Let the machine sleep overnight, it woke up just fine and my touchpad and touchscreen are having zero issues. The solution was swapping FakeSMC.kext and ACPIBatteryManager.kext for VirtualSMC.kext and SMCBatteryManager.kext.
 
Last edited:
just wanted to share that I think i fixed this glitchyness after sleep.

I swapped FakeSMC.kext and ACPIBatteryManager.kext for VirtualSMC.kext and SMCBatteryManager.kext.

also, in my DSDT i had this in my Wake method (_WAK) twice
Code:
If (LOr (LLess (Arg0, One), LGreater (Arg0, 0x05)))
        {
            Store (0x03, Arg0)
        }

I removed the duplicate instance.

Im not sure if its one or the other or both, but after that my trackpad isnt getting glitchy after sleep. Ive only done short (<10 minute sleep) tests so far but previously itd get glitchy even after sleeping for a minute. An overnight test tonight, but i feel this is likely fixed.

Now that I have that sorted, I wanted to see if there is any way to enable palm rejection. As it is now there is zero palm rejection and i have to be careful not to hit the trackpad or itll click wherever.
Not too sure about that _WAK patch. Probably the use of SMCBatteryManager fixed that.
What's the full original content of _WAK?

There's VoodooI2CHID/VoodooI2CELAN + VoodooPS2 integration which disables trackpad input while keyboard is used for a certain time (0.5s default, I think. Changeable via info.plist).
 
Not too sure about that _WAK patch. Probably the use of SMCBatteryManager fixed that.
What's the full original content of _WAK?

There's VoodooI2CHID/VoodooI2CELAN + VoodooPS2 integration which disables trackpad input while keyboard is used for a certain time (0.5s default, I think. Changeable via info.plist).
Original looked like:
Code:
 Method (_WAK, 1, NotSerialized)  // _WAK: Wake
    {
        RWAK (Arg0)
        \_SB.PCI0.NWAK (Arg0)
        \_SB.PCI0.LPCB.SWAK (Arg0)
        WAK (Arg0)
        Return (WAKP)
    }

now looks like

Code:
 Method (_WAK, 1, NotSerialized)  // _WAK: Wake
    {
        
        If (LOr (LLess (Arg0, One), LGreater (Arg0, 0x05)))
        {
            Store (0x03, Arg0)
        }

        RWAK (Arg0)
        \_SB.PCI0.NWAK (Arg0)
        \_SB.PCI0.LPCB.SWAK (Arg0)
        WAK (Arg0)
        Return (WAKP)
    }

Is the conditional even needed? Im not sure where it came from now.

Regarding the palm rejection, does that apply to Synaptics too or just Elan?
 
Original looked like:
Code:
 Method (_WAK, 1, NotSerialized)  // _WAK: Wake
    {
        RWAK (Arg0)
        \_SB.PCI0.NWAK (Arg0)
        \_SB.PCI0.LPCB.SWAK (Arg0)
        WAK (Arg0)
        Return (WAKP)
    }

now looks like

Code:
 Method (_WAK, 1, NotSerialized)  // _WAK: Wake
    {
      
        If (LOr (LLess (Arg0, One), LGreater (Arg0, 0x05)))
        {
            Store (0x03, Arg0)
        }

        RWAK (Arg0)
        \_SB.PCI0.NWAK (Arg0)
        \_SB.PCI0.LPCB.SWAK (Arg0)
        WAK (Arg0)
        Return (WAKP)
    }

Is the conditional even needed? Im not sure where it came from now.

Regarding the palm rejection, does that apply to Synaptics too or just Elan?
It can be found in RehabMan's SSDT-PTSWAK.
This piece of code isn't relevant on OS X 10.10.2 and above, so it doesn't really have any effect apparently. Undo that patch.

If you're using VoodooI2CHID it should work. If you're using VoodooI2CSynaptics it won't... This code will need to be ported there to work.
 
It can be found in RehabMan's SSDT-PTSWAK.
This piece of code isn't relevant on OS X 10.10.2 and above, so it doesn't really have any effect apparently. Undo that patch.

If you're using VoodooI2CHID it should work. If you're using VoodooI2CSynaptics it won't... This code will need to be ported there to work.
Ya, im using Synaptics, CHID only gave basic support. At least it explains why its not working. Ill keep an eye out for future updates and hope the code gets ported over. Appreciate your input.
 
Here's the latest one, hopefully this is correct this time. I can't seem to fix this error when trying to apply the voodooi2c patch.
 

Attachments

  • debug_17359.zip
    5.9 MB · Views: 153
  • I2C error.png
    I2C error.png
    252.6 KB · Views: 98
Last edited:
Status
Not open for further replies.
Back
Top