]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
usb: gadget: f_hid: idle uses the highest byte for duration
authorMaxim Devaev <mdevaev@gmail.com>
Tue, 27 Jul 2021 18:58:00 +0000 (21:58 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Aug 2021 11:19:42 +0000 (13:19 +0200)
commit fa20bada3f934e3b3e4af4c77e5b518cd5a282e5 upstream.

SET_IDLE value must be shifted 8 bits to the right to get duration.
This confirmed by USBCV test.

Fixes: afcff6dc690e ("usb: gadget: f_hid: added GET_IDLE and SET_IDLE handlers")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Maxim Devaev <mdevaev@gmail.com>
Link: https://lore.kernel.org/r/20210727185800.43796-1-mdevaev@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/f_hid.c

index f9fe94d1764a98202290aa815a94fd10ce33ac44..1d10d29c115bc96f6d8be9584195c0e25fd5893e 100644 (file)
@@ -579,7 +579,7 @@ static int hidg_setup(struct usb_function *f,
                  | HID_REQ_SET_IDLE):
                VDBG(cdev, "set_idle\n");
                length = 0;
-               hidg->idle = value;
+               hidg->idle = value >> 8;
                goto respond;
                break;