Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87c2905f authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Felipe Balbi
Browse files

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: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 3192fcb2
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -681,9 +681,9 @@ static int usbhsh_queue_push(struct usb_hcd *hcd,
	}

	if (usb_pipein(urb->pipe))
		pipe->handler = &usbhs_fifo_pio_pop_handler;
		pipe->handler = &usbhs_fifo_dma_pop_handler;
	else
		pipe->handler = &usbhs_fifo_pio_push_handler;
		pipe->handler = &usbhs_fifo_dma_push_handler;

	buf = (void *)(urb->transfer_buffer + 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)
{
	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;
}