[PATCH 00/10] HID: hid-lenovo-go-s: Fix various bugs
From: Derek J. Clark
Date: Mon Sep 14 2026 - 18:53:38 EST
This series fixes various bugs in the hid-lenovo-go-s driver
Patch 1 fixes a dropped error on return from mcu_property_out()
Patch 2 creates a mechanism to ignore stale responses if they timed out
in the previous command.
Patch 3 fixes a deadlock if the device is removed while cfg_setup() is
running.
Patch 4 adds missing pm_ptr to the reset_resume function pointer.
Patch 5 adds a kobject_uevent notify during reset-resume to ensure the
os_mode return is caught by udev.
Patch 6 adds a suspend callback to cancel delayed work and re-queue the
cfg_setup if the device was suspended prior to or during the work.
Patch 7 moves attribute init to the end of cfg_setup, ensuring the
attributes can only be used once the MCU is ready.
Patch 8 reorganizes hid_gos_cfg and renamed it to gos_cfg_drvdata in
preparation for later fixes.
Patch 9 moves the static led_classdev to become a member of the drvdata
struct.
Patch 10 moved drvdata from a static global to a device allocated
struct.
Signed-off-by: Derek J. Clark <derekjohn.clark@xxxxxxxxx>
Derek J. Clark (10):
HID: hid-lenovo-go-s: Return ret instead of 0 in mcu_property_out()
HID: hid-lenovo-go-s: Bound stale reply window before reusing
send_cmd_complete
HID: hid-lenovo-go-s: Prevent deadlock if device removed during setup
HID: hid-lenovo-go-s: Use pm_ptr for reset_resume callback
HID: hid-lenovo-go-s: Add kobject_uevent notify during reset-resume
HID: hid-lenovo-go-s: Add suspend function and gate access under bool.
HID: hid-lenovo-go-s: Move attribute init to after device query
HID: hid-lenovo-go-s: Reorganize and rename hid_gos_cfg
HID: hid-lenovo-go-s: Move static led_classdev_mc to drvdata struct
HID: hid-lenovo-go-s: Use devm_kzalloc for drvdata
drivers/hid/hid-lenovo-go-s.c | 655 ++++++++++++++++++++++++----------
1 file changed, 473 insertions(+), 182 deletions(-)
--
2.55.0