mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-22 10:58:18 +07:00
usb: gadget: atmel_usba_udc: switch over to usb_gadget_map/unmap_request()
we have generic implementations for a reason, let's use them. Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
3be49f38d3
commit
1bda9df8dd
@ -489,13 +489,8 @@ request_complete(struct usba_ep *ep, struct usba_request *req, int status)
|
||||
if (req->req.status == -EINPROGRESS)
|
||||
req->req.status = status;
|
||||
|
||||
if (req->mapped) {
|
||||
dma_unmap_single(
|
||||
&udc->pdev->dev, req->req.dma, req->req.length,
|
||||
ep->is_in ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
|
||||
req->req.dma = DMA_ADDR_INVALID;
|
||||
req->mapped = 0;
|
||||
}
|
||||
if (req->using_dma)
|
||||
usb_gadget_unmap_request(&udc->gadget, &req->req, ep->is_in);
|
||||
|
||||
DBG(DBG_GADGET | DBG_REQ,
|
||||
"%s: req %p complete: status %d, actual %u\n",
|
||||
@ -684,7 +679,6 @@ usba_ep_alloc_request(struct usb_ep *_ep, gfp_t gfp_flags)
|
||||
return NULL;
|
||||
|
||||
INIT_LIST_HEAD(&req->queue);
|
||||
req->req.dma = DMA_ADDR_INVALID;
|
||||
|
||||
return &req->req;
|
||||
}
|
||||
@ -717,20 +711,11 @@ static int queue_dma(struct usba_udc *udc, struct usba_ep *ep,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = usb_gadget_map_request(&udc->gadget, &req->req, ep->is_in);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
req->using_dma = 1;
|
||||
|
||||
if (req->req.dma == DMA_ADDR_INVALID) {
|
||||
req->req.dma = dma_map_single(
|
||||
&udc->pdev->dev, req->req.buf, req->req.length,
|
||||
ep->is_in ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
|
||||
req->mapped = 1;
|
||||
} else {
|
||||
dma_sync_single_for_device(
|
||||
&udc->pdev->dev, req->req.dma, req->req.length,
|
||||
ep->is_in ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
|
||||
req->mapped = 0;
|
||||
}
|
||||
|
||||
req->ctrl = USBA_BF(DMA_BUF_LEN, req->req.length)
|
||||
| USBA_DMA_CH_EN | USBA_DMA_END_BUF_IE
|
||||
| USBA_DMA_END_TR_EN | USBA_DMA_END_TR_IE;
|
||||
|
Loading…
Reference in New Issue
Block a user