|
@@ -497,19 +497,6 @@ static int exception_in_progress(struct fsg_dev *fsg)
|
|
|
return (fsg->state > FSG_STATE_IDLE);
|
|
|
}
|
|
|
|
|
|
-/* Make bulk-out requests be divisible by the maxpacket size */
|
|
|
-static void set_bulk_out_req_length(struct fsg_dev *fsg,
|
|
|
- struct fsg_buffhd *bh, unsigned int length)
|
|
|
-{
|
|
|
- unsigned int rem;
|
|
|
-
|
|
|
- bh->bulk_out_intended_length = length;
|
|
|
- rem = length % fsg->bulk_out_maxpacket;
|
|
|
- if (rem > 0)
|
|
|
- length += fsg->bulk_out_maxpacket - rem;
|
|
|
- bh->outreq->length = length;
|
|
|
-}
|
|
|
-
|
|
|
static struct fsg_dev *the_fsg;
|
|
|
static struct usb_gadget_driver fsg_driver;
|
|
|
|
|
@@ -730,10 +717,9 @@ static void bulk_out_complete(struct usb_ep *ep, struct usb_request *req)
|
|
|
struct fsg_buffhd *bh = req->context;
|
|
|
|
|
|
dump_msg(fsg, "bulk-out", req->buf, req->actual);
|
|
|
- if (req->status || req->actual != bh->bulk_out_intended_length)
|
|
|
+ if (req->status || req->actual != req->length)
|
|
|
DBG(fsg, "%s --> %d, %u/%u\n", __func__,
|
|
|
- req->status, req->actual,
|
|
|
- bh->bulk_out_intended_length);
|
|
|
+ req->status, req->actual, req->length);
|
|
|
if (req->status == -ECONNRESET) // Request was cancelled
|
|
|
usb_ep_fifo_flush(ep);
|
|
|
|
|
@@ -1349,8 +1335,7 @@ static int do_write(struct fsg_dev *fsg)
|
|
|
|
|
|
/* amount is always divisible by 512, hence by
|
|
|
* the bulk-out maxpacket size */
|
|
|
- bh->outreq->length = bh->bulk_out_intended_length =
|
|
|
- amount;
|
|
|
+ bh->outreq->length = amount;
|
|
|
bh->outreq->short_not_ok = 1;
|
|
|
start_transfer(fsg, fsg->bulk_out, bh->outreq,
|
|
|
&bh->outreq_busy, &bh->state);
|
|
@@ -2010,8 +1995,7 @@ static int throw_away_data(struct fsg_dev *fsg)
|
|
|
|
|
|
/* amount is always divisible by 512, hence by
|
|
|
* the bulk-out maxpacket size */
|
|
|
- bh->outreq->length = bh->bulk_out_intended_length =
|
|
|
- amount;
|
|
|
+ bh->outreq->length = amount;
|
|
|
bh->outreq->short_not_ok = 1;
|
|
|
start_transfer(fsg, fsg->bulk_out, bh->outreq,
|
|
|
&bh->outreq_busy, &bh->state);
|
|
@@ -2688,8 +2672,8 @@ static int get_next_command(struct fsg_dev *fsg)
|
|
|
}
|
|
|
|
|
|
/* Queue a request to read a Bulk-only CBW */
|
|
|
- set_bulk_out_req_length(fsg, bh, USB_BULK_CB_WRAP_LEN);
|
|
|
- bh->outreq->short_not_ok = 1;
|
|
|
+ bh->outreq->length = USB_BULK_CB_WRAP_LEN;
|
|
|
+ bh->outreq->short_not_ok = 0;
|
|
|
start_transfer(fsg, fsg->bulk_out, bh->outreq,
|
|
|
&bh->outreq_busy, &bh->state);
|
|
|
|