In some situations, trying to suspend a laptop with an attached USB keyboard
would fail if both NumLock and CapsLock LEDs were lit.
This was due to a race condition between asynchronously submitted
LED-manipulating CTRL URBs and the suspend process.
This is a different solution to the same problem highlighted here:
https://lkml.org/lkml/2011/9/2/391
These patches are against Jiri's hid/for-next branch.
Daniel Kurtz (3):
HID: usbhid: remove LED_ON
HID: usbhid: hid-core: submit queued urbs before suspend
HID: usbhid: defer LED setting to a workqueue
Differences since v1:
* Rebase on hid/for-next
* Solve race with usbhid_stop() [reported by Oliver Neukum]
drivers/hid/hid-input.c | 42 +++++++
drivers/hid/usbhid/hid-core.c | 241 ++++++++++++++++++++++++-----------------
drivers/hid/usbhid/usbhid.h | 3 +-
include/linux/hid.h | 2 +
4 files changed, 187 insertions(+), 101 deletions(-)
--
1.7.3.1