Hi, I’m using a Surface Go 2 and have been investigating this problem. I think I’ve now identified what is happening with the Type Cover and have a working workaround.
The Type Cover is a Microsoft USB HID device (045e:09b5). Its mouse/touchpad are on USB interface 03, using usbhid / hid-multitouch.
I’ve found that when the touchpad fails, rebinding that interface restores it without needing to physically detach and reconnect the Type Cover.
More importantly, I discovered another related Surface Go 2 issue: when the Type Cover is folded behind the screen, the Surface correctly generates SW_TABLET_MODE=1, and FydeOS powerd correctly receives that event. However, the Type Cover touchpad remains enumerated as an external USB pointing device, which prevents FydeOS/Ash from entering its proper tablet UI.
Temporarily unbinding only the Type Cover mouse/touchpad interface immediately makes FydeOS enter tablet mode:
echo -n "1-7:1.3" > /sys/bus/usb/drivers/usbhid/unbind
Rebinding it restores the touchpad:
echo -n "1-7:1.3" > /sys/bus/usb/drivers/usbhid/bind
I now have an automatic workaround which watches the existing SW_TABLET_MODE event:
Type Cover folded:
SW_TABLET_MODE=1
-> unbind Type Cover pointer interface
-> FydeOS immediately enters tablet UI
Type Cover unfolded:
SW_TABLET_MODE=0
-> rebind Type Cover pointer interface
-> desktop mode + freshly initialised touchpad
I’ve tested repeated folding/unfolding and it is working perfectly so far.
I’m also hoping the forced rebind on unfold will solve the intermittent dead-touchpad-after-sleep problem described in this thread, although I need more sleep/wake testing before I can say that is definitely fixed.
I’ve posted the full technical findings, including the Surface Go 2 LTE fix and tablet-mode diagnosis, here:
Hopefully this information can help get a proper Surface-specific fix incorporated into FydeOS.