HID: usbhid: Simplify code in hid_submit_ctrl()
This patch makes a small simplification to the code in hid_submit_ctrl(). The test for maxpacket being > 0 is unnecessary, because endpoint 0 always has a maxpacket value which is >= 8. Furthermore, endpoint 0's maxpacket value is always a power of 2, so instead of open-coding the round-to-next-multiple computation we can call the optimized round_up() routine. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Tested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
0a824efdb7
commit
d2f311ec91
|
@ -388,14 +388,10 @@ static int hid_submit_ctrl(struct hid_device *hid)
|
|||
usbhid->urbctrl->pipe = usb_rcvctrlpipe(hid_to_usb_dev(hid), 0);
|
||||
maxpacket = usb_maxpacket(hid_to_usb_dev(hid),
|
||||
usbhid->urbctrl->pipe, 0);
|
||||
if (maxpacket > 0) {
|
||||
len += (len == 0); /* Don't allow 0-length reports */
|
||||
len = DIV_ROUND_UP(len, maxpacket);
|
||||
len *= maxpacket;
|
||||
if (len > usbhid->bufsize)
|
||||
len = usbhid->bufsize;
|
||||
} else
|
||||
len = 0;
|
||||
len += (len == 0); /* Don't allow 0-length reports */
|
||||
len = round_up(len, maxpacket);
|
||||
if (len > usbhid->bufsize)
|
||||
len = usbhid->bufsize;
|
||||
}
|
||||
usbhid->urbctrl->transfer_buffer_length = len;
|
||||
usbhid->urbctrl->dev = hid_to_usb_dev(hid);
|
||||
|
|
Loading…
Reference in New Issue