• Home
  • Raw
  • Download

Lines Matching refs:pipe

47 ath10k_usb_alloc_urb_from_pipe(struct ath10k_usb_pipe *pipe)  in ath10k_usb_alloc_urb_from_pipe()  argument
53 if (!pipe->ar_usb) in ath10k_usb_alloc_urb_from_pipe()
56 spin_lock_irqsave(&pipe->ar_usb->cs_lock, flags); in ath10k_usb_alloc_urb_from_pipe()
57 if (!list_empty(&pipe->urb_list_head)) { in ath10k_usb_alloc_urb_from_pipe()
58 urb_context = list_first_entry(&pipe->urb_list_head, in ath10k_usb_alloc_urb_from_pipe()
61 pipe->urb_cnt--; in ath10k_usb_alloc_urb_from_pipe()
63 spin_unlock_irqrestore(&pipe->ar_usb->cs_lock, flags); in ath10k_usb_alloc_urb_from_pipe()
68 static void ath10k_usb_free_urb_to_pipe(struct ath10k_usb_pipe *pipe, in ath10k_usb_free_urb_to_pipe() argument
74 if (!pipe->ar_usb) in ath10k_usb_free_urb_to_pipe()
77 spin_lock_irqsave(&pipe->ar_usb->cs_lock, flags); in ath10k_usb_free_urb_to_pipe()
79 pipe->urb_cnt++; in ath10k_usb_free_urb_to_pipe()
80 list_add(&urb_context->link, &pipe->urb_list_head); in ath10k_usb_free_urb_to_pipe()
82 spin_unlock_irqrestore(&pipe->ar_usb->cs_lock, flags); in ath10k_usb_free_urb_to_pipe()
90 ath10k_usb_free_urb_to_pipe(urb_context->pipe, urb_context); in ath10k_usb_cleanup_recv_urb()
94 struct ath10k_usb_pipe *pipe) in ath10k_usb_free_pipe_resources() argument
98 if (!pipe->ar_usb) { in ath10k_usb_free_pipe_resources()
105 pipe->logical_pipe_num, pipe->usb_pipe_handle, in ath10k_usb_free_pipe_resources()
106 pipe->urb_alloc, pipe->urb_cnt); in ath10k_usb_free_pipe_resources()
108 if (pipe->urb_alloc != pipe->urb_cnt) { in ath10k_usb_free_pipe_resources()
111 pipe->logical_pipe_num, pipe->usb_pipe_handle, in ath10k_usb_free_pipe_resources()
112 pipe->urb_alloc, pipe->urb_cnt); in ath10k_usb_free_pipe_resources()
116 urb_context = ath10k_usb_alloc_urb_from_pipe(pipe); in ath10k_usb_free_pipe_resources()
139 struct ath10k_usb_pipe *pipe = urb_context->pipe; in ath10k_usb_recv_complete() local
140 struct ath10k *ar = pipe->ar_usb->ar; in ath10k_usb_recv_complete()
146 pipe->logical_pipe_num, urb->status, urb->actual_length, in ath10k_usb_recv_complete()
163 pipe->logical_pipe_num, in ath10k_usb_recv_complete()
164 pipe->ep_address, urb->status); in ath10k_usb_recv_complete()
180 skb_queue_tail(&pipe->io_comp_queue, skb); in ath10k_usb_recv_complete()
181 schedule_work(&pipe->io_complete_work); in ath10k_usb_recv_complete()
187 pipe->urb_cnt >= pipe->urb_cnt_thresh) { in ath10k_usb_recv_complete()
189 ath10k_usb_post_recv_transfers(ar, pipe); in ath10k_usb_recv_complete()
196 struct ath10k_usb_pipe *pipe = urb_context->pipe; in ath10k_usb_transmit_complete() local
197 struct ath10k *ar = pipe->ar_usb->ar; in ath10k_usb_transmit_complete()
203 pipe->logical_pipe_num, urb->status); in ath10k_usb_transmit_complete()
208 ath10k_usb_free_urb_to_pipe(urb_context->pipe, urb_context); in ath10k_usb_transmit_complete()
211 skb_queue_tail(&pipe->io_comp_queue, skb); in ath10k_usb_transmit_complete()
212 schedule_work(&pipe->io_complete_work); in ath10k_usb_transmit_complete()
367 struct ath10k_usb_pipe *pipe = container_of(work, in ath10k_usb_io_comp_work() local
370 struct ath10k *ar = pipe->ar_usb->ar; in ath10k_usb_io_comp_work()
373 while ((skb = skb_dequeue(&pipe->io_comp_queue))) { in ath10k_usb_io_comp_work()
374 if (pipe->flags & ATH10K_USB_PIPE_FLAG_TX) in ath10k_usb_io_comp_work()
417 struct ath10k_usb_pipe *pipe = &ar_usb->pipes[pipe_id]; in ath10k_usb_hif_tx_sg() local
424 urb_context = ath10k_usb_alloc_urb_from_pipe(pipe); in ath10k_usb_hif_tx_sg()
441 pipe->usb_pipe_handle, in ath10k_usb_hif_tx_sg()
446 if (!(skb->len % pipe->max_packet_size)) { in ath10k_usb_hif_tx_sg()
451 usb_anchor_urb(urb, &pipe->urb_submitted); in ath10k_usb_hif_tx_sg()
468 ath10k_usb_free_urb_to_pipe(urb_context->pipe, urb_context); in ath10k_usb_hif_tx_sg()
714 u8 pipe, int force) in ath10k_usb_hif_send_complete_check() argument
806 struct ath10k_usb_pipe *pipe, in ath10k_usb_alloc_pipe_resources() argument
812 INIT_LIST_HEAD(&pipe->urb_list_head); in ath10k_usb_alloc_pipe_resources()
813 init_usb_anchor(&pipe->urb_submitted); in ath10k_usb_alloc_pipe_resources()
820 urb_context->pipe = pipe; in ath10k_usb_alloc_pipe_resources()
825 pipe->urb_alloc++; in ath10k_usb_alloc_pipe_resources()
826 ath10k_usb_free_urb_to_pipe(pipe, urb_context); in ath10k_usb_alloc_pipe_resources()
831 pipe->logical_pipe_num, pipe->usb_pipe_handle, in ath10k_usb_alloc_pipe_resources()
832 pipe->urb_alloc); in ath10k_usb_alloc_pipe_resources()
843 struct ath10k_usb_pipe *pipe; in ath10k_usb_setup_pipe_resources() local
886 pipe = &ar_usb->pipes[pipe_num]; in ath10k_usb_setup_pipe_resources()
887 if (pipe->ar_usb) in ath10k_usb_setup_pipe_resources()
891 pipe->ar_usb = ar_usb; in ath10k_usb_setup_pipe_resources()
892 pipe->logical_pipe_num = pipe_num; in ath10k_usb_setup_pipe_resources()
893 pipe->ep_address = endpoint->bEndpointAddress; in ath10k_usb_setup_pipe_resources()
894 pipe->max_packet_size = le16_to_cpu(endpoint->wMaxPacketSize); in ath10k_usb_setup_pipe_resources()
897 if (ATH10K_USB_IS_DIR_IN(pipe->ep_address)) { in ath10k_usb_setup_pipe_resources()
898 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
900 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
902 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
904 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
907 if (ATH10K_USB_IS_DIR_IN(pipe->ep_address)) { in ath10k_usb_setup_pipe_resources()
908 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
910 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
912 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
914 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
918 if (ATH10K_USB_IS_DIR_IN(pipe->ep_address)) { in ath10k_usb_setup_pipe_resources()
919 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
921 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
923 pipe->usb_pipe_handle = in ath10k_usb_setup_pipe_resources()
925 pipe->ep_address); in ath10k_usb_setup_pipe_resources()
929 pipe->ep_desc = endpoint; in ath10k_usb_setup_pipe_resources()
931 if (!ATH10K_USB_IS_DIR_IN(pipe->ep_address)) in ath10k_usb_setup_pipe_resources()
932 pipe->flags |= ATH10K_USB_PIPE_FLAG_TX; in ath10k_usb_setup_pipe_resources()
934 ret = ath10k_usb_alloc_pipe_resources(ar, pipe, urbcount); in ath10k_usb_setup_pipe_resources()
947 struct ath10k_usb_pipe *pipe; in ath10k_usb_create() local
956 pipe = &ar_usb->pipes[i]; in ath10k_usb_create()
957 INIT_WORK(&pipe->io_complete_work, in ath10k_usb_create()
959 skb_queue_head_init(&pipe->io_comp_queue); in ath10k_usb_create()