summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorCliff Cai <cliff.cai@analog.com>2009-12-22 03:18:02 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2009-12-23 20:34:18 +0100
commit796a83fa039de50133171221ac102a2310e81ffd (patch)
treef34ef2ed674f3b9b5dcf65fbb901aa975e5df935 /drivers
parentUSB: musb: gadget_ep0: avoid SetupEnd interrupt (diff)
downloadlinux-796a83fa039de50133171221ac102a2310e81ffd.tar.xz
linux-796a83fa039de50133171221ac102a2310e81ffd.zip
USB: musb: correct DMA address for tx
Since a DMA transfer may need to be kicked off several times to complete, the DMA start must include the length that has already been transferred. Signed-off-by: Cliff Cai <cliff.cai@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Cc: Felipe Balbi <felipe.balbi@nokia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/musb/musb_gadget.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index e164999bd364..ac306985a8a1 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -319,7 +319,7 @@ static void txstate(struct musb *musb, struct musb_request *req)
use_dma = use_dma && c->channel_program(
musb_ep->dma, musb_ep->packet_sz,
musb_ep->dma->desired_mode,
- request->dma, request_size);
+ request->dma + request->actual, request_size);
if (use_dma) {
if (musb_ep->dma->desired_mode == 0) {
/*