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

Commit 2f0de9d8 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Greg Kroah-Hartman
Browse files

usb: renesas_usbhs: use dmaengine helper functions



This patch used dmaengine helper functions instead of using hand setting.

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 277bd874
Loading
Loading
Loading
Loading
+3 −11
Original line number Diff line number Diff line
@@ -771,22 +771,15 @@ static void xfer_work(struct work_struct *work)
	struct usbhs_pipe *pipe = pkt->pipe;
	struct usbhs_fifo *fifo = usbhs_pipe_to_fifo(pipe);
	struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
	struct scatterlist sg;
	struct dma_async_tx_descriptor *desc;
	struct dma_chan *chan = usbhsf_dma_chan_get(fifo, pkt);
	struct device *dev = usbhs_priv_to_dev(priv);
	enum dma_transfer_direction dir;
	dma_cookie_t cookie;

	dir = usbhs_pipe_is_dir_in(pipe) ? DMA_DEV_TO_MEM : DMA_MEM_TO_DEV;

	sg_init_table(&sg, 1);
	sg_set_page(&sg, virt_to_page(pkt->dma),
		    pkt->length, offset_in_page(pkt->dma));
	sg_dma_address(&sg) = pkt->dma + pkt->actual;
	sg_dma_len(&sg) = pkt->trans;

	desc = dmaengine_prep_slave_sg(chan, &sg, 1, dir,
	desc = dmaengine_prep_slave_single(chan, pkt->dma + pkt->actual,
					pkt->trans, dir,
					DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
	if (!desc)
		return;
@@ -794,8 +787,7 @@ static void xfer_work(struct work_struct *work)
	desc->callback		= usbhsf_dma_complete;
	desc->callback_param	= pipe;

	cookie = desc->tx_submit(desc);
	if (cookie < 0) {
	if (dmaengine_submit(desc) < 0) {
		dev_err(dev, "Failed to submit dma descriptor\n");
		return;
	}