aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/wusbcore/wa-xfer.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c
index 0b27146b5bc1..6f935d575b07 100644
--- a/drivers/usb/wusbcore/wa-xfer.c
+++ b/drivers/usb/wusbcore/wa-xfer.c
@@ -308,16 +308,18 @@ static void wa_xfer_id_init(struct wa_xfer *xfer)
308 xfer->id = atomic_add_return(1, &xfer->wa->xfer_id_count); 308 xfer->id = atomic_add_return(1, &xfer->wa->xfer_id_count);
309} 309}
310 310
311/* 311/* Return the xfer's ID. */
312 * Return the xfer's ID associated with xfer 312static inline u32 wa_xfer_id(struct wa_xfer *xfer)
313 *
314 * Need to generate a
315 */
316static u32 wa_xfer_id(struct wa_xfer *xfer)
317{ 313{
318 return xfer->id; 314 return xfer->id;
319} 315}
320 316
317/* Return the xfer's ID in transport format (little endian). */
318static inline __le32 wa_xfer_id_le32(struct wa_xfer *xfer)
319{
320 return cpu_to_le32(xfer->id);
321}
322
321/* 323/*
322 * Search for a transfer list ID on the HCD's URB list 324 * Search for a transfer list ID on the HCD's URB list
323 * 325 *
@@ -381,7 +383,7 @@ static void __wa_xfer_abort(struct wa_xfer *xfer)
381 b->cmd.bLength = sizeof(b->cmd); 383 b->cmd.bLength = sizeof(b->cmd);
382 b->cmd.bRequestType = WA_XFER_ABORT; 384 b->cmd.bRequestType = WA_XFER_ABORT;
383 b->cmd.wRPipe = rpipe->descr.wRPipeIndex; 385 b->cmd.wRPipe = rpipe->descr.wRPipeIndex;
384 b->cmd.dwTransferID = wa_xfer_id(xfer); 386 b->cmd.dwTransferID = wa_xfer_id_le32(xfer);
385 387
386 usb_init_urb(&b->urb); 388 usb_init_urb(&b->urb);
387 usb_fill_bulk_urb(&b->urb, xfer->wa->usb_dev, 389 usb_fill_bulk_urb(&b->urb, xfer->wa->usb_dev,
@@ -477,7 +479,7 @@ static void __wa_xfer_setup_hdr0(struct wa_xfer *xfer,
477 xfer_hdr0->bLength = xfer_hdr_size; 479 xfer_hdr0->bLength = xfer_hdr_size;
478 xfer_hdr0->bRequestType = xfer_type; 480 xfer_hdr0->bRequestType = xfer_type;
479 xfer_hdr0->wRPipe = rpipe->descr.wRPipeIndex; 481 xfer_hdr0->wRPipe = rpipe->descr.wRPipeIndex;
480 xfer_hdr0->dwTransferID = wa_xfer_id(xfer); 482 xfer_hdr0->dwTransferID = wa_xfer_id_le32(xfer);
481 xfer_hdr0->bTransferSegment = 0; 483 xfer_hdr0->bTransferSegment = 0;
482 switch (xfer_type) { 484 switch (xfer_type) {
483 case WA_XFER_TYPE_CTL: { 485 case WA_XFER_TYPE_CTL: {
@@ -1750,7 +1752,7 @@ static void wa_dti_cb(struct urb *urb)
1750 if (usb_status == WA_XFER_STATUS_NOT_FOUND) 1752 if (usb_status == WA_XFER_STATUS_NOT_FOUND)
1751 /* taken care of already */ 1753 /* taken care of already */
1752 break; 1754 break;
1753 xfer_id = xfer_result->dwTransferID; 1755 xfer_id = le32_to_cpu(xfer_result->dwTransferID);
1754 xfer = wa_xfer_get_by_id(wa, xfer_id); 1756 xfer = wa_xfer_get_by_id(wa, xfer_id);
1755 if (xfer == NULL) { 1757 if (xfer == NULL) {
1756 /* FIXME: transaction might have been cancelled */ 1758 /* FIXME: transaction might have been cancelled */