mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 09:01:34 +00:00
usb: renesas_usbhs: add DMAEngine support on mod_host
This patch enabled dma mapping, and used dma transfer handler on mod_host Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
3192fcb234
commit
87c2905fd8
@ -681,9 +681,9 @@ static int usbhsh_queue_push(struct usb_hcd *hcd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (usb_pipein(urb->pipe))
|
if (usb_pipein(urb->pipe))
|
||||||
pipe->handler = &usbhs_fifo_pio_pop_handler;
|
pipe->handler = &usbhs_fifo_dma_pop_handler;
|
||||||
else
|
else
|
||||||
pipe->handler = &usbhs_fifo_pio_push_handler;
|
pipe->handler = &usbhs_fifo_dma_push_handler;
|
||||||
|
|
||||||
buf = (void *)(urb->transfer_buffer + urb->actual_length);
|
buf = (void *)(urb->transfer_buffer + urb->actual_length);
|
||||||
len = urb->transfer_buffer_length - urb->actual_length;
|
len = urb->transfer_buffer_length - urb->actual_length;
|
||||||
@ -916,6 +916,19 @@ static int usbhsh_dcp_queue_push(struct usb_hcd *hcd,
|
|||||||
*/
|
*/
|
||||||
static int usbhsh_dma_map_ctrl(struct usbhs_pkt *pkt, int map)
|
static int usbhsh_dma_map_ctrl(struct usbhs_pkt *pkt, int map)
|
||||||
{
|
{
|
||||||
|
if (map) {
|
||||||
|
struct usbhsh_request *ureq = usbhsh_pkt_to_ureq(pkt);
|
||||||
|
struct urb *urb = ureq->urb;
|
||||||
|
|
||||||
|
/* it can not use scatter/gather */
|
||||||
|
if (urb->num_sgs)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
pkt->dma = urb->transfer_dma;
|
||||||
|
if (!pkt->dma)
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user