[PATCH 5.4 47/85] usb: gadget: f_hid: idle uses the highest byte for duration

From: Greg Kroah-Hartman
Date: Tue Aug 10 2021 - 13:37:36 EST


From: Maxim Devaev <mdevaev@xxxxxxxxx>

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@xxxxxxxxxxxxxxx>
Signed-off-by: Maxim Devaev <mdevaev@xxxxxxxxx>
Link: https://lore.kernel.org/r/20210727185800.43796-1-mdevaev@xxxxxxxxx
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
drivers/usb/gadget/function/f_hid.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/usb/gadget/function/f_hid.c
+++ b/drivers/usb/gadget/function/f_hid.c
@@ -579,7 +579,7 @@ static int hidg_setup(struct usb_functio
| HID_REQ_SET_IDLE):
VDBG(cdev, "set_idle\n");
length = 0;
- hidg->idle = value;
+ hidg->idle = value >> 8;
goto respond;
break;