Lines Matching full:pipe

13 #include "pipe.h"
17 #define usbhsf_fifo_is_busy(f) ((f)->pipe) /* see usbhs_pipe_select_fifo */
32 struct usbhs_priv *priv = usbhs_pipe_to_priv(pkt->pipe); in usbhsf_null_handle()
45 void usbhs_pkt_push(struct usbhs_pipe *pipe, struct usbhs_pkt *pkt, in usbhs_pkt_push() argument
50 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhs_pkt_push()
62 if (!pipe->handler) { in usbhs_pkt_push()
64 pipe->handler = &usbhsf_null_handler; in usbhs_pkt_push()
67 list_move_tail(&pkt->node, &pipe->list); in usbhs_pkt_push()
74 pkt->pipe = pipe; in usbhs_pkt_push()
76 pkt->handler = pipe->handler; in usbhs_pkt_push()
92 struct usbhs_pkt *__usbhsf_pkt_get(struct usbhs_pipe *pipe) in __usbhsf_pkt_get() argument
94 return list_first_entry_or_null(&pipe->list, struct usbhs_pkt, node); in __usbhsf_pkt_get()
97 static void usbhsf_fifo_unselect(struct usbhs_pipe *pipe,
104 static void usbhsf_tx_irq_ctrl(struct usbhs_pipe *pipe, int enable);
105 static void usbhsf_rx_irq_ctrl(struct usbhs_pipe *pipe, int enable);
106 struct usbhs_pkt *usbhs_pkt_pop(struct usbhs_pipe *pipe, struct usbhs_pkt *pkt) in usbhs_pkt_pop() argument
108 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhs_pkt_pop()
109 struct usbhs_fifo *fifo = usbhs_pipe_to_fifo(pipe); in usbhs_pkt_pop()
115 usbhs_pipe_disable(pipe); in usbhs_pkt_pop()
118 pkt = __usbhsf_pkt_get(pipe); in usbhs_pkt_pop()
129 if (usbhs_pipe_is_dir_in(pipe)) in usbhs_pkt_pop()
130 usbhsf_rx_irq_ctrl(pipe, 0); in usbhs_pkt_pop()
132 usbhsf_tx_irq_ctrl(pipe, 0); in usbhs_pkt_pop()
135 usbhs_pipe_clear_without_sequence(pipe, 0, 0); in usbhs_pkt_pop()
136 usbhs_pipe_running(pipe, 0); in usbhs_pkt_pop()
142 usbhsf_fifo_unselect(pipe, fifo); in usbhs_pkt_pop()
156 static int usbhsf_pkt_handler(struct usbhs_pipe *pipe, int type) in usbhsf_pkt_handler() argument
158 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_pkt_handler()
169 pkt = __usbhsf_pkt_get(pipe); in usbhsf_pkt_handler()
202 usbhs_pkt_start(pipe); in usbhsf_pkt_handler()
208 void usbhs_pkt_start(struct usbhs_pipe *pipe) in usbhs_pkt_start() argument
210 usbhsf_pkt_handler(pipe, USBHSF_PKT_PREPARE); in usbhs_pkt_start()
218 #define usbhsf_irq_callback_ctrl(pipe, status, enable) \ argument
220 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); \
222 u16 status = (1 << usbhs_pipe_number(pipe)); \
232 static void usbhsf_tx_irq_ctrl(struct usbhs_pipe *pipe, int enable) in usbhsf_tx_irq_ctrl() argument
235 * And DCP pipe can NOT use "ready interrupt" for "send" in usbhsf_tx_irq_ctrl()
240 * on the other hand, normal pipe can use "ready interrupt" for "send" in usbhsf_tx_irq_ctrl()
243 if (usbhs_pipe_is_dcp(pipe)) in usbhsf_tx_irq_ctrl()
244 usbhsf_irq_empty_ctrl(pipe, enable); in usbhsf_tx_irq_ctrl()
246 usbhsf_irq_ready_ctrl(pipe, enable); in usbhsf_tx_irq_ctrl()
249 static void usbhsf_rx_irq_ctrl(struct usbhs_pipe *pipe, int enable) in usbhsf_rx_irq_ctrl() argument
251 usbhsf_irq_ready_ctrl(pipe, enable); in usbhsf_rx_irq_ctrl()
257 static void usbhsf_send_terminator(struct usbhs_pipe *pipe, in usbhsf_send_terminator() argument
260 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_send_terminator()
275 static void usbhsf_fifo_clear(struct usbhs_pipe *pipe, in usbhsf_fifo_clear() argument
278 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_fifo_clear()
281 if (!usbhs_pipe_is_dcp(pipe)) { in usbhsf_fifo_clear()
283 * This driver checks the pipe condition first to avoid -EBUSY in usbhsf_fifo_clear()
284 * from usbhsf_fifo_barrier() if the pipe is RX direction and in usbhsf_fifo_clear()
287 if (usbhs_pipe_is_dir_in(pipe)) in usbhsf_fifo_clear()
288 ret = usbhs_pipe_is_accessible(pipe); in usbhsf_fifo_clear()
294 * if non-DCP pipe, this driver should set BCLR when in usbhsf_fifo_clear()
307 static void usbhsf_fifo_unselect(struct usbhs_pipe *pipe, in usbhsf_fifo_unselect() argument
310 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_fifo_unselect()
312 usbhs_pipe_select_fifo(pipe, NULL); in usbhsf_fifo_unselect()
316 static int usbhsf_fifo_select(struct usbhs_pipe *pipe, in usbhsf_fifo_select() argument
320 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_fifo_select()
324 u16 base = usbhs_pipe_number(pipe); /* CURPIPE */ in usbhsf_fifo_select()
326 if (usbhs_pipe_is_busy(pipe) || in usbhsf_fifo_select()
330 if (usbhs_pipe_is_dcp(pipe)) { in usbhsf_fifo_select()
334 usbhs_dcp_dir_for_host(pipe, write); in usbhsf_fifo_select()
343 usbhs_pipe_select_fifo(pipe, fifo); in usbhsf_fifo_select()
359 struct usbhs_pipe *pipe = pkt->pipe; in usbhs_dcp_dir_switch_to_write() local
360 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhs_dcp_dir_switch_to_write()
365 usbhs_pipe_disable(pipe); in usbhs_dcp_dir_switch_to_write()
367 ret = usbhsf_fifo_select(pipe, fifo, 1); in usbhs_dcp_dir_switch_to_write()
373 usbhs_pipe_sequence_data1(pipe); /* DATA1 */ in usbhs_dcp_dir_switch_to_write()
375 usbhsf_fifo_clear(pipe, fifo); in usbhs_dcp_dir_switch_to_write()
376 usbhsf_send_terminator(pipe, fifo); in usbhs_dcp_dir_switch_to_write()
378 usbhsf_fifo_unselect(pipe, fifo); in usbhs_dcp_dir_switch_to_write()
380 usbhsf_tx_irq_ctrl(pipe, 1); in usbhs_dcp_dir_switch_to_write()
381 usbhs_pipe_enable(pipe); in usbhs_dcp_dir_switch_to_write()
388 struct usbhs_pipe *pipe = pkt->pipe; in usbhs_dcp_dir_switch_to_read() local
389 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhs_dcp_dir_switch_to_read()
394 usbhs_pipe_disable(pipe); in usbhs_dcp_dir_switch_to_read()
396 ret = usbhsf_fifo_select(pipe, fifo, 0); in usbhs_dcp_dir_switch_to_read()
402 usbhs_pipe_sequence_data1(pipe); /* DATA1 */ in usbhs_dcp_dir_switch_to_read()
403 usbhsf_fifo_clear(pipe, fifo); in usbhs_dcp_dir_switch_to_read()
405 usbhsf_fifo_unselect(pipe, fifo); in usbhs_dcp_dir_switch_to_read()
407 usbhsf_rx_irq_ctrl(pipe, 1); in usbhs_dcp_dir_switch_to_read()
408 usbhs_pipe_enable(pipe); in usbhs_dcp_dir_switch_to_read()
416 struct usbhs_pipe *pipe = pkt->pipe; in usbhs_dcp_dir_switch_done() local
419 usbhsf_tx_irq_ctrl(pipe, 0); in usbhs_dcp_dir_switch_done()
421 usbhsf_rx_irq_ctrl(pipe, 0); in usbhs_dcp_dir_switch_done()
444 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_dcp_data_stage_try_push() local
446 usbhs_pipe_sequence_data1(pipe); /* DATA1 */ in usbhsf_dcp_data_stage_try_push()
466 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_dcp_data_stage_prepare_pop() local
467 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_dcp_data_stage_prepare_pop()
470 if (usbhs_pipe_is_busy(pipe)) in usbhsf_dcp_data_stage_prepare_pop()
479 usbhs_pipe_disable(pipe); in usbhsf_dcp_data_stage_prepare_pop()
481 usbhs_pipe_sequence_data1(pipe); /* DATA1 */ in usbhsf_dcp_data_stage_prepare_pop()
483 usbhsf_fifo_select(pipe, fifo, 0); in usbhsf_dcp_data_stage_prepare_pop()
484 usbhsf_fifo_clear(pipe, fifo); in usbhsf_dcp_data_stage_prepare_pop()
485 usbhsf_fifo_unselect(pipe, fifo); in usbhsf_dcp_data_stage_prepare_pop()
504 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_pio_try_push() local
505 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_pio_try_push()
510 int maxp = usbhs_pipe_get_maxpacket(pipe); in usbhsf_pio_try_push()
515 usbhs_pipe_data_sequence(pipe, pkt->sequence); in usbhsf_pio_try_push()
518 usbhs_pipe_set_trans_count_if_bulk(pipe, pkt->length); in usbhsf_pio_try_push()
520 ret = usbhsf_fifo_select(pipe, fifo, 1); in usbhsf_pio_try_push()
524 ret = usbhs_pipe_is_accessible(pipe); in usbhsf_pio_try_push()
526 /* inaccessible pipe is not an error */ in usbhsf_pio_try_push()
574 * pipe/irq handling in usbhsf_pio_try_push()
577 usbhsf_send_terminator(pipe, fifo); in usbhsf_pio_try_push()
579 usbhsf_tx_irq_ctrl(pipe, !*is_done); in usbhsf_pio_try_push()
580 usbhs_pipe_running(pipe, !*is_done); in usbhsf_pio_try_push()
581 usbhs_pipe_enable(pipe); in usbhsf_pio_try_push()
584 usbhs_pipe_number(pipe), in usbhsf_pio_try_push()
587 usbhsf_fifo_unselect(pipe, fifo); in usbhsf_pio_try_push()
592 usbhsf_fifo_unselect(pipe, fifo); in usbhsf_pio_try_push()
595 * pipe is busy. in usbhsf_pio_try_push()
598 usbhsf_tx_irq_ctrl(pipe, 1); in usbhsf_pio_try_push()
599 usbhs_pipe_running(pipe, 1); in usbhsf_pio_try_push()
606 if (usbhs_pipe_is_running(pkt->pipe)) in usbhsf_pio_prepare_push()
622 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_prepare_pop() local
623 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_prepare_pop()
626 if (usbhs_pipe_is_busy(pipe)) in usbhsf_prepare_pop()
629 if (usbhs_pipe_is_running(pipe)) in usbhsf_prepare_pop()
633 * pipe enable to prepare packet receive in usbhsf_prepare_pop()
635 usbhs_pipe_data_sequence(pipe, pkt->sequence); in usbhsf_prepare_pop()
638 if (usbhs_pipe_is_dcp(pipe)) in usbhsf_prepare_pop()
639 usbhsf_fifo_clear(pipe, fifo); in usbhsf_prepare_pop()
641 usbhs_pipe_set_trans_count_if_bulk(pipe, pkt->length); in usbhsf_prepare_pop()
642 usbhs_pipe_enable(pipe); in usbhsf_prepare_pop()
643 usbhs_pipe_running(pipe, 1); in usbhsf_prepare_pop()
644 usbhsf_rx_irq_ctrl(pipe, 1); in usbhsf_prepare_pop()
651 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_pio_try_pop() local
652 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_pio_try_pop()
658 int maxp = usbhs_pipe_get_maxpacket(pipe); in usbhsf_pio_try_pop()
663 ret = usbhsf_fifo_select(pipe, fifo, 0); in usbhsf_pio_try_pop()
679 * update actual length first here to decide disable pipe. in usbhsf_pio_try_pop()
680 * if this pipe keeps BUF status and all data were popped, in usbhsf_pio_try_pop()
688 usbhsf_rx_irq_ctrl(pipe, 0); in usbhsf_pio_try_pop()
689 usbhs_pipe_running(pipe, 0); in usbhsf_pio_try_pop()
693 * should not disable the pipe. If such a case happens, this in usbhsf_pio_try_pop()
696 if (!usbhs_mod_is_host(priv) && !usbhs_pipe_is_dcp(pipe)) in usbhsf_pio_try_pop()
697 usbhs_pipe_disable(pipe); /* disable pipe first */ in usbhsf_pio_try_pop()
708 usbhsf_fifo_clear(pipe, fifo); in usbhsf_pio_try_pop()
733 usbhs_pipe_number(pipe), in usbhsf_pio_try_pop()
737 usbhsf_fifo_unselect(pipe, fifo); in usbhsf_pio_try_pop()
752 usbhs_dcp_control_transfer_done(pkt->pipe); in usbhsf_ctrl_stage_end()
796 static void __usbhsf_dma_ctrl(struct usbhs_pipe *pipe, in __usbhsf_dma_ctrl() argument
800 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in __usbhsf_dma_ctrl()
807 struct usbhs_pipe *pipe = pkt->pipe; in __usbhsf_dma_map_ctrl() local
808 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in __usbhsf_dma_map_ctrl()
810 struct usbhs_fifo *fifo = usbhs_pipe_to_fifo(pipe); in __usbhsf_dma_map_ctrl()
820 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_dma_xfer_preparing() local
822 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_dma_xfer_preparing()
829 fifo = usbhs_pipe_to_fifo(pipe); in usbhsf_dma_xfer_preparing()
834 dir = usbhs_pipe_is_dir_in(pipe) ? DMA_DEV_TO_MEM : DMA_MEM_TO_DEV; in usbhsf_dma_xfer_preparing()
852 fifo->name, usbhs_pipe_number(pipe), pkt->length, pkt->zero); in usbhsf_dma_xfer_preparing()
854 usbhs_pipe_running(pipe, 1); in usbhsf_dma_xfer_preparing()
855 usbhs_pipe_set_trans_count_if_bulk(pipe, pkt->trans); in usbhsf_dma_xfer_preparing()
857 usbhsf_dma_start(pipe, fifo); in usbhsf_dma_xfer_preparing()
858 usbhs_pipe_enable(pipe); in usbhsf_dma_xfer_preparing()
864 struct usbhs_pipe *pipe = pkt->pipe; in xfer_work() local
865 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in xfer_work()
878 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_dma_prepare_push() local
879 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_dma_prepare_push()
885 if (usbhs_pipe_is_busy(pipe)) in usbhsf_dma_prepare_push()
888 /* use PIO if packet is less than pio_dma_border or pipe is DCP */ in usbhsf_dma_prepare_push()
890 usbhs_pipe_type_is(pipe, USB_ENDPOINT_XFER_ISOC)) in usbhsf_dma_prepare_push()
903 /* return at this time if the pipe is running */ in usbhsf_dma_prepare_push()
904 if (usbhs_pipe_is_running(pipe)) in usbhsf_dma_prepare_push()
912 ret = usbhsf_fifo_select(pipe, fifo, 0); in usbhsf_dma_prepare_push()
921 usbhsf_tx_irq_ctrl(pipe, 0); in usbhsf_dma_prepare_push()
933 usbhsf_fifo_unselect(pipe, fifo); in usbhsf_dma_prepare_push()
945 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_dma_push_done() local
946 int is_short = pkt->trans % usbhs_pipe_get_maxpacket(pipe); in usbhsf_dma_push_done()
957 usbhs_pipe_running(pipe, !*is_done); in usbhsf_dma_push_done()
959 usbhsf_dma_stop(pipe, pipe->fifo); in usbhsf_dma_push_done()
961 usbhsf_fifo_unselect(pipe, pipe->fifo); in usbhsf_dma_push_done()
990 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_dma_prepare_pop_with_usb_dmac() local
991 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_dma_prepare_pop_with_usb_dmac()
995 if (usbhs_pipe_is_busy(pipe)) in usbhsf_dma_prepare_pop_with_usb_dmac()
998 /* use PIO if packet is less than pio_dma_border or pipe is DCP */ in usbhsf_dma_prepare_pop_with_usb_dmac()
1000 usbhs_pipe_type_is(pipe, USB_ENDPOINT_XFER_ISOC)) in usbhsf_dma_prepare_pop_with_usb_dmac()
1010 /* return at this time if the pipe is running */ in usbhsf_dma_prepare_pop_with_usb_dmac()
1011 if (usbhs_pipe_is_running(pipe)) in usbhsf_dma_prepare_pop_with_usb_dmac()
1014 usbhs_pipe_config_change_bfre(pipe, 1); in usbhsf_dma_prepare_pop_with_usb_dmac()
1016 ret = usbhsf_fifo_select(pipe, fifo, 0); in usbhsf_dma_prepare_pop_with_usb_dmac()
1030 usbhsf_rx_irq_ctrl(pipe, 0); in usbhsf_dma_prepare_pop_with_usb_dmac()
1039 usbhsf_fifo_unselect(pipe, fifo); in usbhsf_dma_prepare_pop_with_usb_dmac()
1046 usbhs_pipe_config_change_bfre(pipe, 0); in usbhsf_dma_prepare_pop_with_usb_dmac()
1053 struct usbhs_priv *priv = usbhs_pipe_to_priv(pkt->pipe); in usbhsf_dma_prepare_pop()
1063 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_dma_try_pop_with_rx_irq() local
1064 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_dma_try_pop_with_rx_irq()
1068 if (usbhs_pipe_is_busy(pipe)) in usbhsf_dma_try_pop_with_rx_irq()
1071 if (usbhs_pipe_is_dcp(pipe)) in usbhsf_dma_try_pop_with_rx_irq()
1082 ret = usbhsf_fifo_select(pipe, fifo, 0); in usbhsf_dma_try_pop_with_rx_irq()
1109 usbhsf_rx_irq_ctrl(pipe, 0); in usbhsf_dma_try_pop_with_rx_irq()
1119 usbhsf_fifo_unselect(pipe, fifo); in usbhsf_dma_try_pop_with_rx_irq()
1132 struct usbhs_priv *priv = usbhs_pipe_to_priv(pkt->pipe); in usbhsf_dma_try_pop()
1141 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_dma_pop_done_with_rx_irq() local
1142 int maxp = usbhs_pipe_get_maxpacket(pipe); in usbhsf_dma_pop_done_with_rx_irq()
1144 usbhsf_dma_stop(pipe, pipe->fifo); in usbhsf_dma_pop_done_with_rx_irq()
1146 usbhsf_fifo_unselect(pipe, pipe->fifo); in usbhsf_dma_pop_done_with_rx_irq()
1153 usbhs_pipe_running(pipe, 0); in usbhsf_dma_pop_done_with_rx_irq()
1156 usbhs_pipe_running(pipe, 0); in usbhsf_dma_pop_done_with_rx_irq()
1166 struct usbhs_pipe *pipe = pkt->pipe; in usbhs_dma_calc_received_size() local
1168 int maxp = usbhs_pipe_get_maxpacket(pipe); in usbhs_dma_calc_received_size()
1184 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_dma_pop_done_with_usb_dmac() local
1185 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_dma_pop_done_with_usb_dmac()
1186 struct usbhs_fifo *fifo = usbhs_pipe_to_fifo(pipe); in usbhsf_dma_pop_done_with_usb_dmac()
1195 usbhs_xxxsts_clear(priv, BRDYSTS, usbhs_pipe_number(pipe)); in usbhsf_dma_pop_done_with_usb_dmac()
1198 usbhsf_fifo_clear(pipe, fifo); in usbhsf_dma_pop_done_with_usb_dmac()
1201 usbhs_pipe_running(pipe, 0); in usbhsf_dma_pop_done_with_usb_dmac()
1202 usbhsf_dma_stop(pipe, fifo); in usbhsf_dma_pop_done_with_usb_dmac()
1204 usbhsf_fifo_unselect(pipe, pipe->fifo); in usbhsf_dma_pop_done_with_usb_dmac()
1214 struct usbhs_priv *priv = usbhs_pipe_to_priv(pkt->pipe); in usbhsf_dma_pop_done()
1319 struct usbhs_pipe *pipe; in usbhsf_irq_empty() local
1331 * search interrupted "pipe" in usbhsf_irq_empty()
1334 usbhs_for_each_pipe_with_dcp(pipe, priv, i) { in usbhsf_irq_empty()
1338 ret = usbhsf_pkt_handler(pipe, USBHSF_PKT_TRY_RUN); in usbhsf_irq_empty()
1349 struct usbhs_pipe *pipe; in usbhsf_irq_ready() local
1361 * search interrupted "pipe" in usbhsf_irq_ready()
1364 usbhs_for_each_pipe_with_dcp(pipe, priv, i) { in usbhsf_irq_ready()
1368 ret = usbhsf_pkt_handler(pipe, USBHSF_PKT_TRY_RUN); in usbhsf_irq_ready()
1380 struct usbhs_pipe *pipe = pkt->pipe; in usbhsf_dma_complete() local
1381 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhsf_dma_complete()
1386 ret = usbhsf_pkt_handler(pipe, USBHSF_PKT_DMA_DONE); in usbhsf_dma_complete()
1389 usbhs_pipe_number(pipe), ret); in usbhsf_dma_complete()
1392 void usbhs_fifo_clear_dcp(struct usbhs_pipe *pipe) in usbhs_fifo_clear_dcp() argument
1394 struct usbhs_priv *priv = usbhs_pipe_to_priv(pipe); in usbhs_fifo_clear_dcp()
1398 if (usbhsf_fifo_select(pipe, fifo, 1) < 0) in usbhs_fifo_clear_dcp()
1400 usbhsf_fifo_clear(pipe, fifo); in usbhs_fifo_clear_dcp()
1401 usbhsf_fifo_unselect(pipe, fifo); in usbhs_fifo_clear_dcp()
1404 if (usbhsf_fifo_select(pipe, fifo, 0) < 0) in usbhs_fifo_clear_dcp()
1406 usbhsf_fifo_clear(pipe, fifo); in usbhs_fifo_clear_dcp()
1407 usbhsf_fifo_unselect(pipe, fifo); in usbhs_fifo_clear_dcp()
1425 cfifo->pipe = NULL; in usbhs_fifo_init()
1427 dfifo->pipe = NULL; in usbhs_fifo_init()