diff options
-rw-r--r-- | drivers/usb/wusbcore/wa-xfer.c | 20 |
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 | 312 | static inline u32 wa_xfer_id(struct wa_xfer *xfer) |
313 | * | ||
314 | * Need to generate a | ||
315 | */ | ||
316 | static 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). */ | ||
318 | static 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 */ |