usb: xhci: Add support for URB_ZERO_PACKET to bulk/sg transfers
This commit checks for the URB_ZERO_PACKET flag and creates an extra zero-length td if the urb transfer length is a multiple of the endpoint's max packet length. Signed-off-by: Reyad Attiyat <reyad.attiyat@gmail.com> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
6c05cb145d
commit
4758dcd19a
@@ -1340,6 +1340,11 @@ int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags)
|
||||
|
||||
if (usb_endpoint_xfer_isoc(&urb->ep->desc))
|
||||
size = urb->number_of_packets;
|
||||
else if (usb_endpoint_is_bulk_out(&urb->ep->desc) &&
|
||||
urb->transfer_buffer_length > 0 &&
|
||||
urb->transfer_flags & URB_ZERO_PACKET &&
|
||||
!(urb->transfer_buffer_length % usb_endpoint_maxp(&urb->ep->desc)))
|
||||
size = 2;
|
||||
else
|
||||
size = 1;
|
||||
|
||||
|
Reference in New Issue
Block a user