diff options
Diffstat (limited to 'drivers/usb/renesas_usbhs/fifo.c')
| -rw-r--r-- | drivers/usb/renesas_usbhs/fifo.c | 16 |
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 | ||
| 806 | static void usbhsf_dma_complete(void *arg); | 808 | static 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 | ||
| 899 | usbhsf_pio_prepare_push_unmap: | 901 | usbhsf_pio_prepare_push_unselect: |
| 900 | usbhsf_dma_unmap(pkt); | 902 | usbhsf_fifo_unselect(pipe, fifo); |
| 901 | usbhsf_pio_prepare_push: | 903 | usbhsf_pio_prepare_push: |
| 902 | /* | 904 | /* |
| 903 | * change handler to PIO | 905 | * change handler to PIO |
