summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2019-05-27 11:14:59 -0700
committerSascha Hauer <s.hauer@pengutronix.de>2019-05-28 10:38:22 +0200
commit958bc6b0496b9a33cd740ada724df0f27f7265d8 (patch)
treed106b0b525b1d878f018496743f443758920577c /drivers/usb
parentb082f2edca46c425a8e28e0a98e6ea47fb43a795 (diff)
downloadbarebox-958bc6b0496b9a33cd740ada724df0f27f7265d8.tar.gz
barebox-958bc6b0496b9a33cd740ada724df0f27f7265d8.tar.xz
usb: fsl_udc: Use dma_alloc_coherent() to get DMA address
Instead on relying virt_to_phys() to do virtual-to-physical address conversion, make use of the fact that dma_alloc_coherent() can already do that for us. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/fsl_udc.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/usb/gadget/fsl_udc.c b/drivers/usb/gadget/fsl_udc.c
index 705f6c0ba7..a47ba20f46 100644
--- a/drivers/usb/gadget/fsl_udc.c
+++ b/drivers/usb/gadget/fsl_udc.c
@@ -1143,11 +1143,10 @@ static struct ep_td_struct *fsl_build_dtd(struct fsl_req *req, unsigned *length,
(unsigned)EP_MAX_LENGTH_TRANSFER);
dtd = dma_alloc_coherent(sizeof(struct ep_td_struct),
- DMA_ADDRESS_BROKEN);
+ dma);
if (dtd == NULL)
return dtd;
- *dma = (dma_addr_t)virt_to_phys(dtd);
dtd->td_dma = *dma;
/* Clear reserved field */
swap_temp = cpu_to_le32(dtd->size_ioc_sts);
@@ -2066,13 +2065,12 @@ static int struct_udc_setup(struct fsl_udc *udc,
size &= ~(QH_ALIGNMENT - 1);
}
- udc->ep_qh = dma_alloc_coherent(size, DMA_ADDRESS_BROKEN);
+ udc->ep_qh = dma_alloc_coherent(size, &udc->ep_qh_dma);
if (!udc->ep_qh) {
ERR("malloc QHs for udc failed\n");
kfree(udc->eps);
return -1;
}
- udc->ep_qh_dma = (dma_addr_t)virt_to_phys(udc->ep_qh);
udc->ep_qh_size = size;