|
@@ -76,13 +76,21 @@ static inline void map_dma_buffer(struct musb_request *request,
|
|
|
return;
|
|
|
|
|
|
if (request->request.dma == DMA_ADDR_INVALID) {
|
|
|
- request->request.dma = dma_map_single(
|
|
|
+ dma_addr_t dma_addr;
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ dma_addr = dma_map_single(
|
|
|
musb->controller,
|
|
|
request->request.buf,
|
|
|
request->request.length,
|
|
|
request->tx
|
|
|
? DMA_TO_DEVICE
|
|
|
: DMA_FROM_DEVICE);
|
|
|
+ ret = dma_mapping_error(musb->controller, dma_addr);
|
|
|
+ if (ret)
|
|
|
+ return;
|
|
|
+
|
|
|
+ request->request.dma = dma_addr;
|
|
|
request->map_state = MUSB_MAPPED;
|
|
|
} else {
|
|
|
dma_sync_single_for_device(musb->controller,
|