Input: mouse: Trackpoint middle button not recognized on Thinkpad E470

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The middle trackpoint button on the Thinkpad E470 (20H2) is not recognized. The psmouse module warns about "failed to get extended button data".

I tried to dive a bit deeper into trackpoint.c and track down the issue:

- trackpoint_read for TP_EXT_BTN fails.
- This read consists of two ps2_commands, first TP_COMMAND and then the actual TP_EXT_BTN command
- The second ps2_command fails.
- In __ps2_command, it's the first ps2_sendbyte that fails.
- In ps2_sendbyte, serio_write returns 0. Waiting for the acknowledgement does not timeout. But ps2dev->nak is 0xfe.
- Therefore ps2_sendbyte fails.

From there the whole stack unwinds, "failed to get extended button data" is produced and button_info is set to 0. And finally

__set_bit(BTN_MIDDLE, psmouse->dev->keybit);

is not called. Manually calling it, or setting button_info to 0x33, makes the middle button functional. Of course that's not a general solution.

Additionally, when loading the psmouse module with proto=imps the middle mouse button is detected as discussed here: https://bugs.freedesktop.org/show_bug.cgi?id=100694
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux