Contribute
Register

VoodooI2C Help and Support

Status
Not open for further replies.
The easiest way is to re-patch the DSDT without applying that patch. While doing it, re-extract it as well (Clover F4).
It won't be really necessary to revert it, but this patch is not needed.

Trackpad does work via I2C now, yay :p

You're using GPIO interrupts, not polling:
Bash:
2019-05-11 08:17:12.671804-0700 0xf1       Default     0x0                  0      0    kernel: (kernel) VoodooI2CDeviceNub::Got GPIO Controller! VoodooGPIOSunrisePointLP

If it's Synaptics you can try VoodooI2CSynaptics, yeah.
Notice currently VoodooI2CSynaptics only matches to SYNA2B33. Before installing the kext, change this name to your device's name - DLL0701. Find it in the kext's info.plist.
Hopefully that'll work, then you'll have multitouch, etc.
A future release should allow matching regardless of ACPI ID.
Trackpad now works with multitouch gestures!! Thank you so much for the help. I did notice, upon switching to VoodooI2CSynaptics I lose multitouch support on the touchscreen. VoodooI2CHID did work for multitouch for the touch screen. Is there a way to preserve multitouch on both devices?
 
Trackpad now works with multitouch gestures!! Thank you so much for the help. I did notice, upon switching to VoodooI2CSynaptics I lose multitouch support on the touchscreen. VoodooI2CHID did work for multitouch for the touch screen. Is there a way to preserve multitouch on both devices?
Sure, just install both VoodooI2CHID and VoodooI2CSyanptics.
HID will match to your touchscreen, Synaptics will match to your trackpad.
(VoodooI2CSynapticsDevice's IOProbeScore is 400, VoodooI2CHIDDevice's is 100, so the Syanptics kext will be used for your trackpad)
 
Sure, just install both VoodooI2CHID and VoodooI2CSyanptics.
HID will match to your touchscreen, Synaptics will match to your trackpad.
(VoodooI2CSynapticsDevice's IOProbeScore is 400, VoodooI2CHIDDevice's is 100, so the Syanptics kext will be used for your trackpad)
Yes sir! Multitouch is now working on both devices. Thank you again for all the support.
 
Me again. Noticed this morning after the laptop had slept all night that upon wake the trackpad became unresponsive. Touchcscreen still worked fine. Had to do a shutdown to get trackpad back. I had the same problem to varying degrees with voodoops2 and smarttouchpad also, so not sure if its even something that can be fixed but checking to see if its truly a trackpad issue, or if its something else.
 

Attachments

  • debug_3760.zip
    6.7 MB · Views: 183
Me again. Noticed this morning after the laptop had slept all night that upon wake the trackpad became unresponsive. Touchcscreen still worked fine. Had to do a shutdown to get trackpad back. I had the same problem to varying degrees with voodoops2 and smarttouchpad also, so not sure if its even something that can be fixed but checking to see if its truly a trackpad issue, or if its something else.
This archive wasn't taken when it didn't work, right? A bit hard to find the source like that :(
Make sure your setup is complete, and sleep/hibernation is configured correctly (could require some extra work...). Perform a BIOS update if available.
 
This archive wasn't taken when it didn't work, right? A bit hard to find the source like that :(
Make sure your setup is complete, and sleep/hibernation is configured correctly (could require some extra work...). Perform a BIOS update if available.
You are right, this is after a restart. Ill see if i can get it to replicate the problem tomorrow and stick a usb mouse to get troubleshooting files
 
Here is a log while its acting symptomatic, sometimes wont two finger scroll, some times wont even register one finger, sometimes will move cursor really slowly or will randomly click when im not clicking.
 

Attachments

  • debug_2367.zip
    6.8 MB · Views: 110
Here is a log while its acting symptomatic, sometimes wont two finger scroll, some times wont even register one finger, sometimes will move cursor really slowly or will randomly click when im not clicking.
Does it happen in polling mode as well?
Notice it's not the same as "completely not working after sleep".

Probably won't help with anything, but in this section in your DSDT, you can try removing the surrounding `If (USTP)` condition, leaving what's inside:
Code:
    If (USTP)
    {
        Scope (_SB.PCI0.I2C1)
        {
            Method (SSCN, 0, NotSerialized)
            {
                Return (PKG3 (SSHI, SSLI, SSDI))
            }

            Method (FMCN, 0, NotSerialized)
            {
                Return (PKG3 (FMHI, FMLI, FMDI))
            }

            Method (FPCN, 0, NotSerialized)
            {
                Return (PKG3 (FPHI, FPLI, FPDI))
            }

            Method (M0D3, 0, NotSerialized)
            {
                Return (PKG1 (M0CI))
            }

            Method (M1D3, 0, NotSerialized)
            {
                Return (PKG1 (M1CI))
            }
        }

        Scope (_SB.PCI0.SPI1)
        {
            Method (M0D3, 0, NotSerialized)
            {
                Return (PKG1 (M0CS))
            }

            Method (M1D3, 0, NotSerialized)
            {
                Return (PKG1 (M1CS))
            }
        }

        Scope (_SB.PCI0.UA01)
        {
            Method (M0D3, 0, NotSerialized)
            {
                Return (PKG1 (M0CU))
            }

            Method (M1D3, 0, NotSerialized)
            {
                Return (PKG1 (M1CU))
            }
        }
    }
 
Does it happen in polling mode as well?
Notice it's not the same as "completely not working after sleep".

Probably won't help with anything, but in this section in your DSDT, you can try removing the surrounding `If (USTP)` condition, leaving what's inside:
Code:
    If (USTP)
    {
        Scope (_SB.PCI0.I2C1)
        {
            Method (SSCN, 0, NotSerialized)
            {
                Return (PKG3 (SSHI, SSLI, SSDI))
            }

            Method (FMCN, 0, NotSerialized)
            {
                Return (PKG3 (FMHI, FMLI, FMDI))
            }

            Method (FPCN, 0, NotSerialized)
            {
                Return (PKG3 (FPHI, FPLI, FPDI))
            }

            Method (M0D3, 0, NotSerialized)
            {
                Return (PKG1 (M0CI))
            }

            Method (M1D3, 0, NotSerialized)
            {
                Return (PKG1 (M1CI))
            }
        }

        Scope (_SB.PCI0.SPI1)
        {
            Method (M0D3, 0, NotSerialized)
            {
                Return (PKG1 (M0CS))
            }

            Method (M1D3, 0, NotSerialized)
            {
                Return (PKG1 (M1CS))
            }
        }

        Scope (_SB.PCI0.UA01)
        {
            Method (M0D3, 0, NotSerialized)
            {
                Return (PKG1 (M0CU))
            }

            Method (M1D3, 0, NotSerialized)
            {
                Return (PKG1 (M1CU))
            }
        }
    }

To confirm, it should look like this

Code:
Scope (_SB.PCI0.I2C1)

        {

            Method (SSCN, 0, NotSerialized)

            {

                Return (PKG3 (SSHI, SSLI, SSDI))

            }



            Method (FMCN, 0, NotSerialized)

            {

                Return (PKG3 (FMHI, FMLI, FMDI))

            }



            Method (FPCN, 0, NotSerialized)

            {

                Return (PKG3 (FPHI, FPLI, FPDI))

            }



            Method (M0D3, 0, NotSerialized)

            {

                Return (PKG1 (M0CI))

            }



            Method (M1D3, 0, NotSerialized)

            {

                Return (PKG1 (M1CI))

            }

        }



        Scope (_SB.PCI0.SPI1)

        {

            Method (M0D3, 0, NotSerialized)

            {

                Return (PKG1 (M0CS))

            }



            Method (M1D3, 0, NotSerialized)

            {

                Return (PKG1 (M1CS))

            }

        }



        Scope (_SB.PCI0.UA01)

        {

            Method (M0D3, 0, NotSerialized)

            {

                Return (PKG1 (M0CU))

            }



            Method (M1D3, 0, NotSerialized)

            {

                Return (PKG1 (M1CU))

            }

        }

Taking out the line you referenced and the opening and closing bracket, right?
 
To confirm, it should look like this

Code:
Scope (_SB.PCI0.I2C1)

        {

            Method (SSCN, 0, NotSerialized)

            {

                Return (PKG3 (SSHI, SSLI, SSDI))

            }



            Method (FMCN, 0, NotSerialized)

            {

                Return (PKG3 (FMHI, FMLI, FMDI))

            }



            Method (FPCN, 0, NotSerialized)

            {

                Return (PKG3 (FPHI, FPLI, FPDI))

            }



            Method (M0D3, 0, NotSerialized)

            {

                Return (PKG1 (M0CI))

            }



            Method (M1D3, 0, NotSerialized)

            {

                Return (PKG1 (M1CI))

            }

        }



        Scope (_SB.PCI0.SPI1)

        {

            Method (M0D3, 0, NotSerialized)

            {

                Return (PKG1 (M0CS))

            }



            Method (M1D3, 0, NotSerialized)

            {

                Return (PKG1 (M1CS))

            }

        }



        Scope (_SB.PCI0.UA01)

        {

            Method (M0D3, 0, NotSerialized)

            {

                Return (PKG1 (M0CU))

            }



            Method (M1D3, 0, NotSerialized)

            {

                Return (PKG1 (M1CU))

            }

        }

Taking out the line you referenced and the opening and closing bracket, right?
Yes.
Also verify if polling mode has the same issues.
 
Status
Not open for further replies.
Back
Top