Bluetooth: hci_usb: Write large packets to USB in multiple chunks

try_write() writes the whole net buffer to USB which sometimes is larger
than the maximum packet size of an endpoint.

Use the ret_bytes param to know how much has been written to the USB bus
and write the remaining chunks in the subsequent calls.

Usually the USB driver write doesn't happen immediately in cases where
the usb_write() is not synchronous. In such cases, USB driver returns
-EAGAIN.

If driver returns -EAGAIN, yield so as to give other threads a chance
to run while waiting for previous USB write to complete.

Signed-off-by: Sundar Subramaniyan <sundar.subramaniyan@gmail.com>
1 file changed