[Bug 282592] Framework Laptop 16: Touchpad driver crashes on boot

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 06 Nov 2024 21:22:19 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282592

            Bug ID: 282592
           Summary: Framework Laptop 16: Touchpad driver crashes on boot
           Product: Base System
           Version: CURRENT
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: dhs@frame.work

On the Framework Laptop 16, the touchpad driver (sys/dev/hid/hmt.c) crashes on
boot.
This only occurs when the touchpad is present.

If the touchpad is disconnected on boot, the EC will pretend to be the touchpad
and send the exact same HID report descriptor to the OS as the touchpad does.
The difference is that it won't send any HID reports and does not respond to
any GET_REPORT requests, except for report ID 2 where it returns the bytes
`{0x04, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00}`.
See:
https://github.com/FrameworkComputer/EmbeddedController/commit/9d49389919c36e44e451514b8278b9eb7ee6ed1e

Analysing the crashdump it seems we crashed in this line:
https://github.com/freebsd/freebsd-src/blob/609fa228bae6d864558f5167d4a964aab2a5fc88/sys/dev/hid/hmt.c#L757
But looking at the HID report descriptor `left_button` will be 2 and there is
no matching Usage that could land us in this if branch.

-- 
You are receiving this mail because:
You are the assignee for the bug.