ShadowBlip / HandyGCCS

Handheld Game Console Controller Support (Handy Geeks) for Linux
GNU General Public License v3.0
82 stars 30 forks source link

handycon doesn't survive suspend/resume #120

Closed ggrensteiner closed 10 months ago

ggrensteiner commented 1 year ago

The current build gets caught in a loop after resume on the ROG Ally. After resume the device stops accepting most inputs but every once in a while a few key presses will make it in after several seconds of delay.

This is seen using kernel 6.5 and this stack trace is a loop that just keeps going infinitely even without any event traffic at all. I think it's in a loop looking for the event inputs that it was monitoring before sleep.

handyconstrace.txt

ggrensteiner commented 1 year ago

Seems to be an artifact of whatever mode the N-Key device gets into if it doesn't re-appear after two resumes. It's randomly started coming back every other resume again.

pastaq commented 1 year ago

This is mostly expected behavior. When HandyGCCS loses access to an expected input device it will poll for the missing device. This might have an amplified effect on the ROG ally though considering it is losing multiple devices at the same time. I haven't been able to reproduce the extreme slowdowns others have reported dung that polling state though.

fennectech commented 10 months ago

is this fixable? because this is a pretty huge issue.

fennectech commented 10 months ago

I’d like to put a 25 USD bounty on a fix for this. This issue is the only thing holding me back from using Linux default on my ally

pastaq commented 10 months ago

The issue isn't with HandyGCCS, but with the Ally having proper suspend support in Linux. This will need to be resolved through other means.