On Mon, Dec 19, 2011 at 05:02:51PM +0400, Sergei Shtylyov wrote: > Hello. > > On 19-12-2011 14:30, Felipe Balbi wrote: > > >those routines have everything we need to map/unmap > >USB requests and it's better to use them. > > >Signed-off-by: Felipe Balbi > >--- > > drivers/usb/gadget/goku_udc.c | 17 +++++++---------- > > 1 files changed, 7 insertions(+), 10 deletions(-) > > >diff --git a/drivers/usb/gadget/goku_udc.c b/drivers/usb/gadget/goku_udc.c > >index 5af70fcc..bc47735 100644 > >--- a/drivers/usb/gadget/goku_udc.c > >+++ b/drivers/usb/gadget/goku_udc.c > [...] > >@@ -736,10 +732,11 @@ goku_queue(struct usb_ep *_ep, struct usb_request *_req, gfp_t gfp_flags) > > return -EBUSY; > > > > /* set up dma mapping in case the caller didn't */ > >- if (ep->dma&& _req->dma == DMA_ADDR_INVALID) { > >- _req->dma = pci_map_single(dev->pdev, _req->buf, _req->length, > >- ep->is_in ? PCI_DMA_TODEVICE : PCI_DMA_FROMDEVICE); > >- req->mapped = 1; > >+ if (ep->dma) { > >+ status = usb_gadget_map_request(&dev->gadget, &req->req, > > Not '&_req->req'? of course not. _req is the usb_request not Goku's internal representation. I could change that to: usb_gadget_map_request(&dev->gadget, _req, ep->is_in); though. -- balbi