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:
Родитель
0a824efdb7
Коммит
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);
|
usbhid->urbctrl->pipe = usb_rcvctrlpipe(hid_to_usb_dev(hid), 0);
|
||||||
maxpacket = usb_maxpacket(hid_to_usb_dev(hid),
|
maxpacket = usb_maxpacket(hid_to_usb_dev(hid),
|
||||||
usbhid->urbctrl->pipe, 0);
|
usbhid->urbctrl->pipe, 0);
|
||||||
if (maxpacket > 0) {
|
len += (len == 0); /* Don't allow 0-length reports */
|
||||||
len += (len == 0); /* Don't allow 0-length reports */
|
len = round_up(len, maxpacket);
|
||||||
len = DIV_ROUND_UP(len, maxpacket);
|
if (len > usbhid->bufsize)
|
||||||
len *= maxpacket;
|
len = usbhid->bufsize;
|
||||||
if (len > usbhid->bufsize)
|
|
||||||
len = usbhid->bufsize;
|
|
||||||
} else
|
|
||||||
len = 0;
|
|
||||||
}
|
}
|
||||||
usbhid->urbctrl->transfer_buffer_length = len;
|
usbhid->urbctrl->transfer_buffer_length = len;
|
||||||
usbhid->urbctrl->dev = hid_to_usb_dev(hid);
|
usbhid->urbctrl->dev = hid_to_usb_dev(hid);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче