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.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
index bc23b4a2c415..0bad84ebe9aa 100644
--- a/drivers/usb/renesas_usbhs/fifo.c
+++ b/drivers/usb/renesas_usbhs/fifo.c
@@ -611,6 +611,8 @@ struct usbhs_pkt_handle usbhs_fifo_pio_push_handler = {
611static int usbhsf_prepare_pop(struct usbhs_pkt *pkt, int *is_done) 611static int usbhsf_prepare_pop(struct usbhs_pkt *pkt, int *is_done)
612{ 612{
613 struct usbhs_pipe *pipe = pkt->pipe; 613 struct usbhs_pipe *pipe = pkt->pipe;
614 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe);
615 struct usbhs_fifo *fifo = usbhsf_get_cfifo(priv);
614 616
615 if (usbhs_pipe_is_busy(pipe)) 617 if (usbhs_pipe_is_busy(pipe))
616 return 0; 618 return 0;
@@ -624,6 +626,9 @@ static int usbhsf_prepare_pop(struct usbhs_pkt *pkt, int *is_done)
624 usbhs_pipe_data_sequence(pipe, pkt->sequence); 626 usbhs_pipe_data_sequence(pipe, pkt->sequence);
625 pkt->sequence = -1; /* -1 sequence will be ignored */ 627 pkt->sequence = -1; /* -1 sequence will be ignored */
626 628
629 if (usbhs_pipe_is_dcp(pipe))
630 usbhsf_fifo_clear(pipe, fifo);
631
627 usbhs_pipe_set_trans_count_if_bulk(pipe, pkt->length); 632 usbhs_pipe_set_trans_count_if_bulk(pipe, pkt->length);
628 usbhs_pipe_enable(pipe); 633 usbhs_pipe_enable(pipe);
629 usbhs_pipe_running(pipe, 1); 634 usbhs_pipe_running(pipe, 1);