Lines Matching refs:ep

60 static void ath10k_htc_notify_tx_completion(struct ath10k_htc_ep *ep,  in ath10k_htc_notify_tx_completion()  argument
63 struct ath10k *ar = ep->htc->ar; in ath10k_htc_notify_tx_completion()
66 ep->eid, skb); in ath10k_htc_notify_tx_completion()
68 ath10k_htc_restore_tx_skb(ep->htc, skb); in ath10k_htc_notify_tx_completion()
70 if (!ep->ep_ops.ep_tx_complete) { in ath10k_htc_notify_tx_completion()
71 ath10k_warn(ar, "no tx handler for eid %d\n", ep->eid); in ath10k_htc_notify_tx_completion()
76 ep->ep_ops.ep_tx_complete(ep->htc->ar, skb); in ath10k_htc_notify_tx_completion()
79 static void ath10k_htc_prepare_tx_skb(struct ath10k_htc_ep *ep, in ath10k_htc_prepare_tx_skb() argument
86 hdr->eid = ep->eid; in ath10k_htc_prepare_tx_skb()
91 spin_lock_bh(&ep->htc->tx_lock); in ath10k_htc_prepare_tx_skb()
92 hdr->seq_no = ep->seq_no++; in ath10k_htc_prepare_tx_skb()
93 spin_unlock_bh(&ep->htc->tx_lock); in ath10k_htc_prepare_tx_skb()
101 struct ath10k_htc_ep *ep = &htc->endpoint[eid]; in ath10k_htc_send() local
118 if (ep->tx_credit_flow_enabled) { in ath10k_htc_send()
121 if (ep->tx_credits < credits) { in ath10k_htc_send()
126 ep->tx_credits -= credits; in ath10k_htc_send()
129 eid, credits, ep->tx_credits); in ath10k_htc_send()
133 ath10k_htc_prepare_tx_skb(ep, skb); in ath10k_htc_send()
143 sg_item.transfer_id = ep->eid; in ath10k_htc_send()
149 ret = ath10k_hif_tx_sg(htc->ar, ep->ul_pipe_id, &sg_item, 1); in ath10k_htc_send()
158 if (ep->tx_credit_flow_enabled) { in ath10k_htc_send()
160 ep->tx_credits += credits; in ath10k_htc_send()
163 eid, credits, ep->tx_credits); in ath10k_htc_send()
166 if (ep->ep_ops.ep_tx_credits) in ath10k_htc_send()
167 ep->ep_ops.ep_tx_credits(htc->ar); in ath10k_htc_send()
178 struct ath10k_htc_ep *ep; in ath10k_htc_tx_completion_handler() local
184 ep = &htc->endpoint[skb_cb->eid]; in ath10k_htc_tx_completion_handler()
186 ath10k_htc_notify_tx_completion(ep, skb); in ath10k_htc_tx_completion_handler()
202 struct ath10k_htc_ep *ep; in ath10k_htc_process_credit_report() local
215 ep = &htc->endpoint[report->eid]; in ath10k_htc_process_credit_report()
216 ep->tx_credits += report->credits; in ath10k_htc_process_credit_report()
219 report->eid, report->credits, ep->tx_credits); in ath10k_htc_process_credit_report()
221 if (ep->ep_ops.ep_tx_credits) { in ath10k_htc_process_credit_report()
223 ep->ep_ops.ep_tx_credits(htc->ar); in ath10k_htc_process_credit_report()
300 struct ath10k_htc_ep *ep; in ath10k_htc_rx_completion_handler() local
319 ep = &htc->endpoint[eid]; in ath10k_htc_rx_completion_handler()
409 ep->ep_ops.ep_rx_complete(ar, skb); in ath10k_htc_rx_completion_handler()
463 struct ath10k_htc_ep *ep; in ath10k_htc_reset_endpoint_states() local
467 ep = &htc->endpoint[i]; in ath10k_htc_reset_endpoint_states()
468 ep->service_id = ATH10K_HTC_SVC_ID_UNUSED; in ath10k_htc_reset_endpoint_states()
469 ep->max_ep_message_len = 0; in ath10k_htc_reset_endpoint_states()
470 ep->max_tx_queue_depth = 0; in ath10k_htc_reset_endpoint_states()
471 ep->eid = i; in ath10k_htc_reset_endpoint_states()
472 ep->htc = htc; in ath10k_htc_reset_endpoint_states()
473 ep->tx_credit_flow_enabled = true; in ath10k_htc_reset_endpoint_states()
608 struct ath10k_htc_ep *ep; in ath10k_htc_connect_service() local
714 ep = &htc->endpoint[assigned_eid]; in ath10k_htc_connect_service()
715 ep->eid = assigned_eid; in ath10k_htc_connect_service()
717 if (ep->service_id != ATH10K_HTC_SVC_ID_UNUSED) in ath10k_htc_connect_service()
725 ep->service_id = conn_req->service_id; in ath10k_htc_connect_service()
726 ep->max_tx_queue_depth = conn_req->max_send_queue_depth; in ath10k_htc_connect_service()
727 ep->max_ep_message_len = __le16_to_cpu(resp_msg->max_msg_size); in ath10k_htc_connect_service()
728 ep->tx_credits = tx_alloc; in ath10k_htc_connect_service()
729 ep->tx_credit_size = htc->target_credit_size; in ath10k_htc_connect_service()
730 ep->tx_credits_per_max_message = ep->max_ep_message_len / in ath10k_htc_connect_service()
733 if (ep->max_ep_message_len % htc->target_credit_size) in ath10k_htc_connect_service()
734 ep->tx_credits_per_max_message++; in ath10k_htc_connect_service()
737 ep->ep_ops = conn_req->ep_ops; in ath10k_htc_connect_service()
740 ep->service_id, in ath10k_htc_connect_service()
741 &ep->ul_pipe_id, in ath10k_htc_connect_service()
742 &ep->dl_pipe_id); in ath10k_htc_connect_service()
748 htc_service_name(ep->service_id), ep->ul_pipe_id, in ath10k_htc_connect_service()
749 ep->dl_pipe_id, ep->eid); in ath10k_htc_connect_service()
751 if (disable_credit_flow_ctrl && ep->tx_credit_flow_enabled) { in ath10k_htc_connect_service()
752 ep->tx_credit_flow_enabled = false; in ath10k_htc_connect_service()
755 htc_service_name(ep->service_id), assigned_eid); in ath10k_htc_connect_service()
810 struct ath10k_htc_ep *ep = NULL; in ath10k_htc_init() local
820 ep = &htc->endpoint[ATH10K_HTC_EP_0]; in ath10k_htc_init()
822 ath10k_hif_get_default_pipe(ar, &ep->ul_pipe_id, &ep->dl_pipe_id); in ath10k_htc_init()