aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/renesas_usbhs/fifo.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/renesas_usbhs/fifo.c')
-rw-r--r--drivers/usb/renesas_usbhs/fifo.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
index 000f9750149f..7be4e7d57ace 100644
--- a/drivers/usb/renesas_usbhs/fifo.c
+++ b/drivers/usb/renesas_usbhs/fifo.c
@@ -799,8 +799,10 @@ static int __usbhsf_dma_map_ctrl(struct usbhs_pkt *pkt, int map)
799 struct usbhs_pipe *pipe = pkt->pipe; 799 struct usbhs_pipe *pipe = pkt->pipe;
800 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); 800 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
801 struct usbhs_pipe_info *info = usbhs_priv_to_pipeinfo(priv); 801 struct usbhs_pipe_info *info = usbhs_priv_to_pipeinfo(priv);
802 struct usbhs_fifo *fifo = usbhs_pipe_to_fifo(pipe);
803 struct dma_chan *chan = usbhsf_dma_chan_get(fifo, pkt);
802 804
803 return info->dma_map_ctrl(pkt, map); 805 return info->dma_map_ctrl(chan->device->dev, pkt, map);
804} 806}
805 807
806static void usbhsf_dma_complete(void *arg); 808static void usbhsf_dma_complete(void *arg);
@@ -881,12 +883,12 @@ static int usbhsf_dma_prepare_push(struct usbhs_pkt *pkt, int *is_done)
881 if (!fifo) 883 if (!fifo)
882 goto usbhsf_pio_prepare_push; 884 goto usbhsf_pio_prepare_push;
883 885
884 if (usbhsf_dma_map(pkt) < 0)
885 goto usbhsf_pio_prepare_push;
886
887 ret = usbhsf_fifo_select(pipe, fifo, 0); 886 ret = usbhsf_fifo_select(pipe, fifo, 0);
888 if (ret < 0) 887 if (ret < 0)
889 goto usbhsf_pio_prepare_push_unmap; 888 goto usbhsf_pio_prepare_push;
889
890 if (usbhsf_dma_map(pkt) < 0)
891 goto usbhsf_pio_prepare_push_unselect;
890 892
891 pkt->trans = len; 893 pkt->trans = len;
892 894
@@ -896,8 +898,8 @@ static int usbhsf_dma_prepare_push(struct usbhs_pkt *pkt, int *is_done)
896 898
897 return 0; 899 return 0;
898 900
899usbhsf_pio_prepare_push_unmap: 901usbhsf_pio_prepare_push_unselect:
900 usbhsf_dma_unmap(pkt); 902 usbhsf_fifo_unselect(pipe, fifo);
901usbhsf_pio_prepare_push: 903usbhsf_pio_prepare_push:
902 /* 904 /*
903 * change handler to PIO 905 * change handler to PIO