Lines Matching refs:pipe
24 * 2) renesas_usbhs pipe number is limited.
25 * the pipe will be re-used for each devices.
38 * | udev 1 |-+- [uep 0 (dcp) ] --+ pipe will be switched when
56 * @ : uep requested free pipe, but all have been used.
57 * now it is waiting for free pipe
75 struct usbhs_pipe *pipe; /* attached pipe */
79 unsigned int counter; /* pipe attach counter */
124 #define usbhsh_uep_to_pipe(u) ((u)->pipe)
197 * pipe control
208 if (usb_pipecontrol(urb->pipe))
212 * renesas_usbhs pipe has a limitation in a number.
213 * So, driver should re-use the limited pipe for each device/endpoint.
237 usb_pipeendpoint(urb->pipe),
238 usb_pipeout(urb->pipe));
250 struct usbhs_pipe *pipe;
254 int dir_in_req = !!usb_pipein(urb->pipe);
263 * if uep has been attached to pipe,
271 usbhs_for_each_pipe_with_dcp(pipe, priv, i) {
273 /* check pipe type */
274 if (!usbhs_pipe_type_is(pipe, usb_endpoint_type(desc)))
277 /* check pipe direction if normal pipe */
279 dir_in = !!usbhs_pipe_is_dir_in(pipe);
284 /* check pipe is free */
285 if (usbhsh_pipe_to_uep(pipe))
289 * attach pipe to uep
296 usbhsh_uep_to_pipe(uep) = pipe;
297 usbhsh_pipe_to_uep(pipe) = uep;
299 usbhs_pipe_config_update(pipe,
307 usbhs_pipe_name(pipe),
328 struct usbhs_pipe *pipe;
340 pipe = usbhsh_uep_to_pipe(uep);
342 if (unlikely(!pipe)) {
343 dev_err(dev, "uep doesn't have pipe\n");
348 /* detach pipe from uep */
350 usbhsh_pipe_to_uep(pipe) = NULL;
355 usbhs_pipe_name(pipe));
475 if (0 == usb_pipedevice(urb->pipe))
503 if (0 != usb_pipedevice(urb->pipe)) {
665 struct usbhs_pipe *pipe = usbhsh_uep_to_pipe(uep);
671 if (usb_pipeisoc(urb->pipe)) {
672 dev_err(dev, "pipe iso is not supported now\n");
683 if (usb_pipein(urb->pipe))
684 pipe->handler = &usbhs_fifo_dma_pop_handler;
686 pipe->handler = &usbhs_fifo_dma_push_handler;
692 usb_pipeendpoint(urb->pipe),
693 usb_pipeout(urb->pipe));
696 usbhs_pkt_push(pipe, &ureq->pkt, usbhsh_queue_done,
700 usbhs_pkt_start(pipe);
706 struct usbhs_pipe *pipe)
711 pkt = usbhs_pkt_pop(pipe, NULL);
718 * then, attached device/endpoint/pipe will be detached
751 struct usbhs_pipe *pipe)
810 struct usbhs_pipe *pipe,
821 if (usb_pipein(urb->pipe))
822 pipe->handler = &usbhs_dcp_data_stage_in_handler;
824 pipe->handler = &usbhs_dcp_data_stage_out_handler;
826 usbhs_pkt_push(pipe, &ureq->pkt,
841 struct usbhs_pipe *pipe,
851 if (usb_pipein(urb->pipe))
852 pipe->handler = &usbhs_dcp_status_stage_in_handler;
854 pipe->handler = &usbhs_dcp_status_stage_out_handler;
856 usbhs_pkt_push(pipe, &ureq->pkt,
871 struct usbhs_pipe *pipe = usbhsh_uep_to_pipe(uep);
882 usbhsh_setup_stage_packet_push(hpriv, urb, pipe);
890 ret = usbhsh_data_stage_packet_push(hpriv, urb, pipe, mflags);
900 ret = usbhsh_status_stage_packet_push(hpriv, urb, pipe, mflags);
909 usbhs_pkt_start(pipe);
957 int is_dir_in = usb_pipein(urb->pipe);
1000 * attach pipe to endpoint
1005 dev_err(dev, "pipe attach failed\n");
1012 if (usb_pipecontrol(urb->pipe))
1040 usbhs_pkt_pop(pkt->pipe, pkt);
1402 struct usbhs_pipe *pipe;
1408 /* init all pipe */
1416 * "input" needs "standby" pipe.
1417 * So, "input" direction pipe > "output" direction pipe
1436 pipe = usbhs_dcp_malloc(priv);
1437 usbhsh_hpriv_to_dcp(hpriv) = pipe;
1439 pipe = usbhs_pipe_malloc(priv,
1444 pipe->mod_private = NULL;
1463 * pipe initialize and enable DCP