USB: musb: respect usb_request->zero in control requests
authorDaniel Glöckner <dg@emlix.com>
Tue, 17 Nov 2009 09:52:56 +0000 (14:52 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 1 Dec 2009 00:43:16 +0000 (16:43 -0800)
commit5542bc2ac7b52c021fc9c7a96329955491b7e763
tree653fc1d0bdad8d910047c1c3fa37fcb6a9d50add
parentdfeffa531ccf9c31f2f55df6d7ca86eec92142df
USB: musb: respect usb_request->zero in control requests

In gadget mode the answer to a control request should be followed by
a zero-length packet if the amount transferred is an exact multiple of
the endpoint's packet size and the requests has its "zero" flag set.

This patch prevents the request from being immediately removed from the
queue when a control IN transfer ends on a full packet and "zero" is set.
The next time ep0_txstate is entered, a zero-length packet is queued and
the request is removed as fifo_count is 0.

Signed-off-by: Daniel Glöckner <dg@emlix.com>
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/musb/musb_gadget_ep0.c