ANDROID: usb: gadget: f_accessory: Enabled Zero Length Packet (ZLP) for acc_write
Accessory connected to Android Device requires Zero Length Packet (ZLP) to be written when data transferred out from the Android device are multiples of wMaxPacketSize (64bytes (Full-Speed) / 512bytes (High-Speed)) to end the transfer. Change-Id: Ib2c2c0ab98ef9afa10e74a720142deca5c0ed476 Signed-off-by: Anson Jacob <ansonkuzhumbil@gmail.com>
This commit is contained in:
parent
45cb8c7e3c
commit
47f4f3ff23
1 changed files with 9 additions and 2 deletions
|
@ -640,10 +640,17 @@ static ssize_t acc_write(struct file *fp, const char __user *buf,
|
|||
break;
|
||||
}
|
||||
|
||||
if (count > BULK_BUFFER_SIZE)
|
||||
if (count > BULK_BUFFER_SIZE) {
|
||||
xfer = BULK_BUFFER_SIZE;
|
||||
else
|
||||
/* ZLP, They will be more TX requests so not yet. */
|
||||
req->zero = 0;
|
||||
} else {
|
||||
xfer = count;
|
||||
/* If the data length is a multple of the
|
||||
* maxpacket size then send a zero length packet(ZLP).
|
||||
*/
|
||||
req->zero = ((xfer % dev->ep_in->maxpacket) == 0);
|
||||
}
|
||||
if (copy_from_user(req->buf, buf, xfer)) {
|
||||
r = -EFAULT;
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue