those routines have everything we need to map/unmap
USB requests and it's better to use them.

Signed-off-by: Felipe Balbi <[email protected]>
---
 drivers/usb/gadget/amd5536udc.c |   33 ++++++---------------------------
 1 files changed, 6 insertions(+), 27 deletions(-)

diff --git a/drivers/usb/gadget/amd5536udc.c b/drivers/usb/gadget/amd5536udc.c
index c16ff55..e0ad9ee 100644
--- a/drivers/usb/gadget/amd5536udc.c
+++ b/drivers/usb/gadget/amd5536udc.c
@@ -831,20 +831,8 @@ __acquires(ep->dev->lock)
 
        dev = ep->dev;
        /* unmap DMA */
-       if (req->dma_mapping) {
-               if (ep->in)
-                       pci_unmap_single(dev->pdev,
-                                       req->req.dma,
-                                       req->req.length,
-                                       PCI_DMA_TODEVICE);
-               else
-                       pci_unmap_single(dev->pdev,
-                                       req->req.dma,
-                                       req->req.length,
-                                       PCI_DMA_FROMDEVICE);
-               req->dma_mapping = 0;
-               req->req.dma = DMA_DONT_USE;
-       }
+       if (ep->dma)
+               usb_gadget_unmap_request(&dev->gadget, &req->req, ep->in);
 
        halted = ep->halted;
        ep->halted = 1;
@@ -1095,20 +1083,11 @@ udc_queue(struct usb_ep *usbep, struct usb_request 
*usbreq, gfp_t gfp)
                return -ESHUTDOWN;
 
        /* map dma (usually done before) */
-       if (ep->dma && usbreq->length != 0
-                       && (usbreq->dma == DMA_DONT_USE || usbreq->dma == 0)) {
+       if (ep->dma) {
                VDBG(dev, "DMA map req %p\n", req);
-               if (ep->in)
-                       usbreq->dma = pci_map_single(dev->pdev,
-                                               usbreq->buf,
-                                               usbreq->length,
-                                               PCI_DMA_TODEVICE);
-               else
-                       usbreq->dma = pci_map_single(dev->pdev,
-                                               usbreq->buf,
-                                               usbreq->length,
-                                               PCI_DMA_FROMDEVICE);
-               req->dma_mapping = 1;
+               retval = usb_gadget_map_request(&udc->gadget, usbreq, ep->in);
+               if (retval)
+                       return retval;
        }
 
        VDBG(dev, "%s queue req %p, len %d req->td_data=%p buf %p\n",
-- 
1.7.8.2

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to