hid: lenovo: Resend all settings on reset_resume for compact keyboards
authorJamie Lentin <jm@lentin.co.uk>
Mon, 2 Oct 2023 15:09:14 +0000 (15:09 +0000)
committerBenjamin Tissoires <bentiss@kernel.org>
Wed, 25 Oct 2023 16:25:24 +0000 (18:25 +0200)
commit2f2bd7cbd1d1548137b351040dc4e037d18cdfdc
tree7cd4bdc9ff39c9c8913f6661b0597534d47b2645
parent46a0a2c96f0f47628190f122c2e3d879e590bcbe
hid: lenovo: Resend all settings on reset_resume for compact keyboards

The USB Compact Keyboard variant requires a reset_resume function to
restore keyboard configuration after a suspend in some situations. Move
configuration normally done on probe to lenovo_features_set_cptkbd(), then
recycle this for use on reset_resume.

Without, the keyboard and driver would end up in an inconsistent state,
breaking middle-button scrolling amongst other problems, and twiddling
sysfs values wouldn't help as the middle-button mode won't be set until
the driver is reloaded.

Tested on a USB and Bluetooth Thinkpad Compact Keyboard.

CC: stable@vger.kernel.org
Fixes: 94eefa271323 ("HID: lenovo: Use native middle-button mode for compact keyboards")
Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
Signed-off-by: Martin Kepplinger <martink@posteo.de>
Link: https://lore.kernel.org/r/20231002150914.22101-1-martink@posteo.de
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
drivers/hid/hid-lenovo.c