VoodooSMBus / VoodooRMI

Synaptic Trackpad driver over SMBus/I2C for macOS
GNU General Public License v2.0
232 stars 19 forks source link

HP Omen 15 Synaptics touchpad only works properly after sleep #146

Open Darkspeed294 opened 2 years ago

Darkspeed294 commented 2 years ago

I have a HP Omen 15 with a Synaptics trackpad with two physical buttons (SYN327C). I have been trying to figure out how I can enable the trackpad buttons and I have partially achieved this with Voodoops2, VoodooRMI and VoodooSMBUS. Gestures work too, But now I have some weird behaviour going on.

When booting from an off state (G5 or S0) and loading into MacOS, the trackpad has a ~0.5 second delay from the point I rest my finger on the pad. if I drag my finger it would start to drag the cursor around the screen after this delay, but tapping to click and two/three finger taps are just not registered Within MacOS.

Furthermore, the trackpad buttons are only functional when I rest my finger on the trackpad. as soon as I lift my finger, they stop working again. Also, when I hold one of the trackpad buttons, there seems to be no delay when I touch and release the trackpad, making taps possible. This is probably preventing it from going into a different state.

When the laptop goes into sleep mode and wakes again, the trackpad with its button starts to work again (although the cursor becomes laggy but who cares), including taps and gestures.

What could be the cause? What is a fix? do I need to enable a _STA method or power states somewhere in my DSDT?

PS: Rehabmans voodoops2 works but doesn't support gestures, So I am willing to sleep and wake for this method until i find a fix.

DSDT.aml.zip

Darkspeed294 commented 2 years ago

Besides this, I cannot flick the trackpad. every time I lift my finger, the trackpad seems to go into some sort of "off" state. After this I need to keep my finger on the trackpad for it to work again. If you guys really want I can make a video to demonstrate what is going on.

This project already kinda works, so thank you all already for making this all possible. you can't have a Hackintosh without it being hacky at some point you know!

Darkspeed294 commented 2 years ago

Demonstration video: https://www.youtube.com/watch?v=SV2jXuuJ0ac Laptop Github: https://github.com/Darkspeed294/HP-Omen-15-DC-1xxxx-Hackintosh-Opencore

Darkspeed294 commented 2 years ago

https://github.com/VoodooSMBus/VoodooRMI/issues/115

I believe I have the same problem as him

Darkspeed294 commented 2 years ago

Update: after waking from sleep, the trackpad is functional, but after a certain period of time, the laptop starts to hang/stutter and when shutting down causes a stall.

Darkspeed294 commented 2 years ago

I fixed it by using VooDooRMI 1.3

Darkspeed294 commented 2 years ago

Using VooDooRMI 1.3 seems to do the trick and the trackpad with its buttons seem to be functional. However, now I face the issue like before with the new release that MacOS starts to hang and stutter after 4-5 minutes of usage and causing a kernel panic/freeze when shutting down or restarting. Making this "fix" useless.

Playing around with the Kexts, it seems that the problem causing these hangs lies within the VooDooSMBUS.Kext

How can I get log from the debug version so I can see what is going on behind the screens?

Darkspeed294 commented 2 years ago

without VooDooSMBUS.Kext the hanging disappears and the trackpad is functional, but the trackpad buttons are non-functional.

all I need is to drag and resize windows

Darkspeed294 commented 2 years ago

I finally got a useful log from terminal this time. has this something to do with gpio pinning or interups Screenshot 2022-03-10 at 23 32 23 voodoormi version 1.3.4

Darkspeed294 commented 2 years ago

Screenshot 2022-03-11 at 01 44 46 VooDooRMI release 1.3 Log (debug doesn't seem to work)

tlefko commented 2 years ago

on my lenovo thinkpad x1 carbon X1C5, i have a similar issue. Gestures and scrolling do not work naturally, and physical buttons have issues as well. i have also explored 1.3, and found similar problems. the behaviour for me is consistent after sleep. in specific, 3/4 finger gestures are essentially not functional unless being mapped to KBM shortcuts. doing this makes them feel horrible and unnatural, but i guess let’s you switch between pages…kinda — while scrolling with two fingers is unusable laggy, inconsistent, and generally painful in web browsers. almost as if the inertia component is also entirely missing. mouse also feels laggy ish st times, with delayed click registration. interestingly, GPI0 pinning seems to be initialized okay based on the verbose log.

in your machine, have you checked if your XOSI patches are configured properly? Could be having an impact. however, like you I am in the dark as to the root of this issue. (in my case, these patches are in successfully)

@Darkspeed294

Darkspeed294 commented 2 years ago

After 4 months now, I still have found no solution to this problem. I have tried anything to make it work normally, but I just can't. from dsdt patches to all kexts that make Synaptics work, nothing suffices.

I got it to work kinda, but every time I boot there is a 30-40% chance it functions properly. The other 60-70% it has a track delay, I can't tap or swipe to switch desktops and the buttons don't work unless I touch the trackpad whilst pressing the button.

The debug log doesn't tell me shit, even with debug enhancer. Apple console log is also fkn dumb only saying . I don't know what to look at in ioregistery next to differences when it does and doesn't work properly. Very frustrating!

Please revenger, Hear my plea! I will give you anything you ask for.

Darkspeed294 commented 2 years ago

I will reopen another issue with voodoormi 1.3.4 with more information regarding this problem. Closing this issue.

Darkspeed294 commented 1 year ago

great work Revenger!

build 1.4 DEBUG seems to show a 100% proper functionality rate from wake, hot- and cold boot. Well done! You cannot understand how happy you've made me! My warmest congratulations on this achievement!

sincerely, Darkspeed294

Darkspeed294 commented 1 year ago

I will leave this open for a while, since a lot of people have been messaging me personally asking if I found a fix already.

1Revenger1 commented 1 year ago

visible confusion

Some stuff related to power management did change, but I didn't expect it to fix this, lol. That's great though.

1Revenger1 commented 1 year ago

GPIO pinning/I2C patches shouldn't be needed with VoodooSMBus/VoodooRMI (unless you are using VoodooRMI with VoodooI2C instead of VoodooSMBus). Can I get a copy of your IOReg from IORegistryExplorer? Looks like there is something weird going on that was causing notifications to trigger multiple times in VoodooSMBus. Nvm, I didn't notice the timestamps.

Darkspeed294 commented 1 year ago

I can still drop it if you want, but I couldn't find any differences in the ioregs of before and after. Yes, I am using VoodooRMI and VoodooSMBUS. I too am clueless what fixed it. I tried builds of your code that I modified, but I can't seem to figure out what it was. even after looking into it, I still don't know.

but hey, I have seen the DSDT of my HP laptop and they suck man ass when it comes to properly making one as they are very convoluted. The ACPI tables are "modular" so to say as I think they made one-for-all to dump on other laptops too, but that brings a lot of bloat too. Fucking cheapskates.

anyways, I am not seeing any problems anymore and I can't find out what caused it. Apple sure loves magic I guess 🤷‍♂️

Great job! keep up the good work!

Darkspeed294 commented 1 year ago

MacBook Pro.zip

Darkspeed294 commented 1 year ago

I recon it is caused by the bios incorrectly handling the ASPM of the trackpad, because I thought after the wake from sleep, macOS is responsible to initialise these devices again. But no clue how macOS does it. Even patching DSDT properties like _STA, _DSM, _INI and even pinning (LMAO) did not seem to do anything.

Darkspeed294 commented 1 year ago

Screenshot 2023-02-12 at 23 32 03

Darkspeed294 commented 1 year ago

don't think this will help, but can't hurt.