aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2006-03-23 15:05:16 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2006-04-14 14:12:20 -0400
commit70ffe6e14d7c5db84b92841471ce6fd0200010cd (patch)
treebc77a5b2a140cc00518aae2518d671e8911eddd7
parent7e1c0b86aca9d42fa4de3fdad17c57bb462fe1e2 (diff)
[PATCH] USB: g_file_storage: Set short_not_ok for bulk-out transfers
I'm told that some UDC hardware may work better if it knows that receiving a short packet should always cause an error. Accordingly, this patch (as663) sets the short_not_ok flag for bulk-out transfers in g_file_storage. Oddly enough, there are no circumstances where that driver can legally receive a shorter-than-expected bulk-out packet. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/usb/gadget/file_storage.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c
index cf3be299e353..eb2821542b7c 100644
--- a/drivers/usb/gadget/file_storage.c
+++ b/drivers/usb/gadget/file_storage.c
@@ -1795,6 +1795,7 @@ static int do_write(struct fsg_dev *fsg)
1795 * the bulk-out maxpacket size */ 1795 * the bulk-out maxpacket size */
1796 bh->outreq->length = bh->bulk_out_intended_length = 1796 bh->outreq->length = bh->bulk_out_intended_length =
1797 amount; 1797 amount;
1798 bh->outreq->short_not_ok = 1;
1798 start_transfer(fsg, fsg->bulk_out, bh->outreq, 1799 start_transfer(fsg, fsg->bulk_out, bh->outreq,
1799 &bh->outreq_busy, &bh->state); 1800 &bh->outreq_busy, &bh->state);
1800 fsg->next_buffhd_to_fill = bh->next; 1801 fsg->next_buffhd_to_fill = bh->next;
@@ -2398,6 +2399,7 @@ static int throw_away_data(struct fsg_dev *fsg)
2398 * the bulk-out maxpacket size */ 2399 * the bulk-out maxpacket size */
2399 bh->outreq->length = bh->bulk_out_intended_length = 2400 bh->outreq->length = bh->bulk_out_intended_length =
2400 amount; 2401 amount;
2402 bh->outreq->short_not_ok = 1;
2401 start_transfer(fsg, fsg->bulk_out, bh->outreq, 2403 start_transfer(fsg, fsg->bulk_out, bh->outreq,
2402 &bh->outreq_busy, &bh->state); 2404 &bh->outreq_busy, &bh->state);
2403 fsg->next_buffhd_to_fill = bh->next; 2405 fsg->next_buffhd_to_fill = bh->next;
@@ -3029,6 +3031,7 @@ static int get_next_command(struct fsg_dev *fsg)
3029 3031
3030 /* Queue a request to read a Bulk-only CBW */ 3032 /* Queue a request to read a Bulk-only CBW */
3031 set_bulk_out_req_length(fsg, bh, USB_BULK_CB_WRAP_LEN); 3033 set_bulk_out_req_length(fsg, bh, USB_BULK_CB_WRAP_LEN);
3034 bh->outreq->short_not_ok = 1;
3032 start_transfer(fsg, fsg->bulk_out, bh->outreq, 3035 start_transfer(fsg, fsg->bulk_out, bh->outreq,
3033 &bh->outreq_busy, &bh->state); 3036 &bh->outreq_busy, &bh->state);
3034 3037