Lines Matching refs:pipe
36 ath10k_usb_alloc_urb_from_pipe(struct ath10k_usb_pipe *pipe) in ath10k_usb_alloc_urb_from_pipe() argument
41 spin_lock_irqsave(&pipe->ar_usb->cs_lock, flags); in ath10k_usb_alloc_urb_from_pipe()
42 if (!list_empty(&pipe->urb_list_head)) { in ath10k_usb_alloc_urb_from_pipe()
43 urb_context = list_first_entry(&pipe->urb_list_head, in ath10k_usb_alloc_urb_from_pipe()
46 pipe->urb_cnt--; in ath10k_usb_alloc_urb_from_pipe()
48 spin_unlock_irqrestore(&pipe->ar_usb->cs_lock, flags); in ath10k_usb_alloc_urb_from_pipe()
53 static void ath10k_usb_free_urb_to_pipe(struct ath10k_usb_pipe *pipe, in ath10k_usb_free_urb_to_pipe() argument
58 spin_lock_irqsave(&pipe->ar_usb->cs_lock, flags); in ath10k_usb_free_urb_to_pipe()
60 pipe->urb_cnt++; in ath10k_usb_free_urb_to_pipe()
61 list_add(&urb_context->link, &pipe->urb_list_head); in ath10k_usb_free_urb_to_pipe()
63 spin_unlock_irqrestore(&pipe->ar_usb->cs_lock, flags); in ath10k_usb_free_urb_to_pipe()
71 ath10k_usb_free_urb_to_pipe(urb_context->pipe, urb_context); in ath10k_usb_cleanup_recv_urb()
75 struct ath10k_usb_pipe *pipe) in ath10k_usb_free_pipe_resources() argument
79 if (!pipe->ar_usb) { in ath10k_usb_free_pipe_resources()
86 pipe->logical_pipe_num, pipe->usb_pipe_handle, in ath10k_usb_free_pipe_resources()
87 pipe->urb_alloc, pipe->urb_cnt); in ath10k_usb_free_pipe_resources()
89 if (pipe->urb_alloc != pipe->urb_cnt) { in ath10k_usb_free_pipe_resources()
92 pipe->logical_pipe_num, pipe->usb_pipe_handle, in ath10k_usb_free_pipe_resources()
93 pipe->urb_alloc, pipe->urb_cnt); in ath10k_usb_free_pipe_resources()
97 urb_context = ath10k_usb_alloc_urb_from_pipe(pipe); in ath10k_usb_free_pipe_resources()
120 struct ath10k_usb_pipe *pipe = urb_context->pipe; in ath10k_usb_recv_complete() local
121 struct ath10k *ar = pipe->ar_usb->ar; in ath10k_usb_recv_complete()
127 pipe->logical_pipe_num, urb->status, urb->actual_length, in ath10k_usb_recv_complete()
144 pipe->logical_pipe_num, in ath10k_usb_recv_complete()
145 pipe->ep_address, urb->status); in ath10k_usb_recv_complete()
161 skb_queue_tail(&pipe->io_comp_queue, skb); in ath10k_usb_recv_complete()
162 schedule_work(&pipe->io_complete_work); in ath10k_usb_recv_complete()
168 pipe->urb_cnt >= pipe->urb_cnt_thresh) { in ath10k_usb_recv_complete()
170 ath10k_usb_post_recv_transfers(ar, pipe); in ath10k_usb_recv_complete()
177 struct ath10k_usb_pipe *pipe = urb_context->pipe; in ath10k_usb_transmit_complete() local
178 struct ath10k *ar = pipe->ar_usb->ar; in ath10k_usb_transmit_complete()
184 pipe->logical_pipe_num, urb->status); in ath10k_usb_transmit_complete()
189 ath10k_usb_free_urb_to_pipe(urb_context->pipe, urb_context); in ath10k_usb_transmit_complete()
192 skb_queue_tail(&pipe->io_comp_queue, skb); in ath10k_usb_transmit_complete()
193 schedule_work(&pipe->io_complete_work); in ath10k_usb_transmit_complete()
348 struct ath10k_usb_pipe *pipe = container_of(work, in ath10k_usb_io_comp_work() local
351 struct ath10k *ar = pipe->ar_usb->ar; in ath10k_usb_io_comp_work()
354 while ((skb = skb_dequeue(&pipe->io_comp_queue))) { in ath10k_usb_io_comp_work()
355 if (pipe->flags & ATH10K_USB_PIPE_FLAG_TX) in ath10k_usb_io_comp_work()
398 struct ath10k_usb_pipe *pipe = &ar_usb->pipes[pipe_id]; in ath10k_usb_hif_tx_sg() local
405 urb_context = ath10k_usb_alloc_urb_from_pipe(pipe); in ath10k_usb_hif_tx_sg()
422 pipe->usb_pipe_handle, in ath10k_usb_hif_tx_sg()
427 if (!(skb->len % pipe->max_packet_size)) { in ath10k_usb_hif_tx_sg()
432 usb_anchor_urb(urb, &pipe->urb_submitted); in ath10k_usb_hif_tx_sg()
448 ath10k_usb_free_urb_to_pipe(urb_context->pipe, urb_context); in ath10k_usb_hif_tx_sg()
694 u8 pipe, int force) in ath10k_usb_hif_send_complete_check() argument
787 struct ath10k_usb_pipe *pipe, in ath10k_usb_alloc_pipe_resources() argument
793 INIT_LIST_HEAD(&pipe->urb_list_head); in ath10k_usb_alloc_pipe_resources()
794 init_usb_anchor(&pipe->urb_submitted); in ath10k_usb_alloc_pipe_resources()
801 urb_context->pipe = pipe; in ath10k_usb_alloc_pipe_resources()
806 pipe->urb_alloc++; in ath10k_usb_alloc_pipe_resources()
807 ath10k_usb_free_urb_to_pipe(pipe, urb_context); in ath10k_usb_alloc_pipe_resources()
812 pipe->logical_pipe_num, pipe->usb_pipe_handle, in ath10k_usb_alloc_pipe_resources()
813 pipe->urb_alloc); in ath10k_usb_alloc_pipe_resources()
824 struct ath10k_usb_pipe *pipe; in ath10k_usb_setup_pipe_resources() local
867 pipe = &ar_usb->pipes[pipe_num]; in ath10k_usb_setup_pipe_resources()
868 if (pipe->ar_usb) in ath10k_usb_setup_pipe_resources()
872 pipe->ar_usb = ar_usb; in ath10k_usb_setup_pipe_resources()
873 pipe->logical_pipe_num = pipe_num; in ath10k_usb_setup_pipe_resources()
874 pipe->ep_address = endpoint->bEndpointAddress; in ath10k_usb_setup_pipe_resources()
875 pipe->max_packet_size = le16_to_cpu(endpoint->wMaxPacketSize); in ath10k_usb_setup_pipe_resources()
878 if (ATH10K_USB_IS_DIR_IN(pipe->ep_address)) { in ath10k_usb_setup_pipe_resources()
879 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
881 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
883 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
885 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
888 if (ATH10K_USB_IS_DIR_IN(pipe->ep_address)) { in ath10k_usb_setup_pipe_resources()
889 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
891 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
893 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
895 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
899 if (ATH10K_USB_IS_DIR_IN(pipe->ep_address)) { in ath10k_usb_setup_pipe_resources()
900 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
902 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
904 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
906 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
910 pipe->ep_desc = endpoint; in ath10k_usb_setup_pipe_resources()
912 if (!ATH10K_USB_IS_DIR_IN(pipe->ep_address)) in ath10k_usb_setup_pipe_resources()
913 pipe->flags |= ATH10K_USB_PIPE_FLAG_TX; in ath10k_usb_setup_pipe_resources()
915 ret = ath10k_usb_alloc_pipe_resources(ar, pipe, urbcount); in ath10k_usb_setup_pipe_resources()
928 struct ath10k_usb_pipe *pipe; in ath10k_usb_create() local
937 pipe = &ar_usb->pipes[i]; in ath10k_usb_create()
938 INIT_WORK(&pipe->io_complete_work, in ath10k_usb_create()
940 skb_queue_head_init(&pipe->io_comp_queue); in ath10k_usb_create()