Skip to content

Commit

Permalink
usb: renesas_usbhs: use dmaengine helper functions
Browse files Browse the repository at this point in the history
This patch used dmaengine helper functions instead of using hand setting.

Signed-off-by: Kuninori Morimoto <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
morimoto authored and gregkh committed Jul 9, 2012
1 parent 277bd87 commit 2f0de9d
Showing 1 changed file with 3 additions and 11 deletions.
14 changes: 3 additions & 11 deletions drivers/usb/renesas_usbhs/fifo.c
Original file line number Diff line number Diff line change
Expand Up @@ -771,31 +771,23 @@ 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;

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;
}
Expand Down

0 comments on commit 2f0de9d

Please sign in to comment.