diff options
-rw-r--r-- | drivers/usb/renesas_usbhs/fifo.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c index 0bad84ebe9aa..c0f5c652d272 100644 --- a/drivers/usb/renesas_usbhs/fifo.c +++ b/drivers/usb/renesas_usbhs/fifo.c | |||
@@ -678,7 +678,14 @@ static int usbhsf_pio_try_pop(struct usbhs_pkt *pkt, int *is_done) | |||
678 | *is_done = 1; | 678 | *is_done = 1; |
679 | usbhsf_rx_irq_ctrl(pipe, 0); | 679 | usbhsf_rx_irq_ctrl(pipe, 0); |
680 | usbhs_pipe_running(pipe, 0); | 680 | usbhs_pipe_running(pipe, 0); |
681 | usbhs_pipe_disable(pipe); /* disable pipe first */ | 681 | /* |
682 | * If function mode, since this controller is possible to enter | ||
683 | * Control Write status stage at this timing, this driver | ||
684 | * should not disable the pipe. If such a case happens, this | ||
685 | * controller is not able to complete the status stage. | ||
686 | */ | ||
687 | if (!usbhs_mod_is_host(priv) && !usbhs_pipe_is_dcp(pipe)) | ||
688 | usbhs_pipe_disable(pipe); /* disable pipe first */ | ||
682 | } | 689 | } |
683 | 690 | ||
684 | /* | 691 | /* |