Lines Matching full:ab
11 struct sk_buff *ath11k_htc_alloc_skb(struct ath11k_base *ab, int size) in ath11k_htc_alloc_skb() argument
23 ath11k_warn(ab, "Unaligned HTC tx skb\n"); in ath11k_htc_alloc_skb()
28 static void ath11k_htc_control_tx_complete(struct ath11k_base *ab, in ath11k_htc_control_tx_complete() argument
34 static struct sk_buff *ath11k_htc_build_tx_ctrl_skb(void *ab) in ath11k_htc_build_tx_ctrl_skb() argument
49 ath11k_dbg(ab, ATH11K_DBG_HTC, "%s: skb %pK\n", __func__, skb); in ath11k_htc_build_tx_ctrl_skb()
80 struct device *dev = htc->ab->dev; in ath11k_htc_send()
81 struct ath11k_base *ab = htc->ab; in ath11k_htc_send() local
86 ath11k_warn(ab, "Invalid endpoint id: %d\n", eid); in ath11k_htc_send()
96 ath11k_dbg(ab, ATH11K_DBG_HTC, in ath11k_htc_send()
104 ath11k_dbg(ab, ATH11K_DBG_HTC, in ath11k_htc_send()
120 ret = ath11k_ce_send(htc->ab, skb, ep->ul_pipe_id, ep->eid); in ath11k_htc_send()
132 ath11k_dbg(ab, ATH11K_DBG_HTC, in ath11k_htc_send()
138 ep->ep_ops.ep_tx_credits(htc->ab); in ath11k_htc_send()
151 struct ath11k_base *ab = htc->ab; in ath11k_htc_process_credit_report() local
156 ath11k_warn(ab, "Uneven credit report len %d", len); in ath11k_htc_process_credit_report()
168 ath11k_dbg(ab, ATH11K_DBG_HTC, "htc ep %d got %d credits (total %d)\n", in ath11k_htc_process_credit_report()
173 ep->ep_ops.ep_tx_credits(htc->ab); in ath11k_htc_process_credit_report()
185 struct ath11k_base *ab = htc->ab; in ath11k_htc_process_trailer() local
200 ath11k_warn(ab, "Invalid record length: %d\n", in ath11k_htc_process_trailer()
210 ath11k_warn(ab, "Credit report too long\n"); in ath11k_htc_process_trailer()
220 ath11k_warn(ab, "Unhandled record: id:%d length:%d\n", in ath11k_htc_process_trailer()
236 static void ath11k_htc_suspend_complete(struct ath11k_base *ab, bool ack) in ath11k_htc_suspend_complete() argument
238 ath11k_dbg(ab, ATH11K_DBG_BOOT, "boot suspend complete %d\n", ack); in ath11k_htc_suspend_complete()
241 set_bit(ATH11K_FLAG_HTC_SUSPEND_COMPLETE, &ab->dev_flags); in ath11k_htc_suspend_complete()
243 clear_bit(ATH11K_FLAG_HTC_SUSPEND_COMPLETE, &ab->dev_flags); in ath11k_htc_suspend_complete()
245 complete(&ab->htc_suspend); in ath11k_htc_suspend_complete()
248 void ath11k_htc_rx_completion_handler(struct ath11k_base *ab, in ath11k_htc_rx_completion_handler() argument
252 struct ath11k_htc *htc = &ab->htc; in ath11k_htc_rx_completion_handler()
267 ath11k_warn(ab, "HTC Rx: invalid eid %d\n", eid); in ath11k_htc_rx_completion_handler()
276 ath11k_warn(ab, "HTC rx frame too long, len: %zu\n", in ath11k_htc_rx_completion_handler()
282 ath11k_warn(ab, "HTC Rx: insufficient length, got %d, expected %d\n", in ath11k_htc_rx_completion_handler()
299 ath11k_warn(ab, "Invalid trailer length: %d\n", in ath11k_htc_rx_completion_handler()
331 ath11k_warn(ab, "HTC rx ctrl still processing\n"); in ath11k_htc_rx_completion_handler()
346 ath11k_htc_suspend_complete(ab, true); in ath11k_htc_rx_completion_handler()
349 ath11k_htc_suspend_complete(ab, false); in ath11k_htc_rx_completion_handler()
354 ath11k_warn(ab, "ignoring unsolicited htc ep0 event %ld\n", in ath11k_htc_rx_completion_handler()
361 ath11k_dbg(ab, ATH11K_DBG_HTC, "htc rx completion ep %d skb %pK\n", in ath11k_htc_rx_completion_handler()
363 ep->ep_ops.ep_rx_complete(ab, skb); in ath11k_htc_rx_completion_handler()
366 ath11k_ce_poll_send_completed(ab, ep->ul_pipe_id); in ath11k_htc_rx_completion_handler()
374 static void ath11k_htc_control_rx_complete(struct ath11k_base *ab, in ath11k_htc_control_rx_complete() argument
380 ath11k_warn(ab, "unexpected htc rx\n"); in ath11k_htc_control_rx_complete()
483 struct ath11k_base *ab = htc->ab; in ath11k_htc_wait_target() local
493 ath11k_warn(ab, "failed to receive control response completion, polling..\n"); in ath11k_htc_wait_target()
495 for (i = 0; i < ab->hw_params.ce_count; i++) in ath11k_htc_wait_target()
496 ath11k_ce_per_engine_service(htc->ab, i); in ath11k_htc_wait_target()
507 ath11k_warn(ab, "ctl_resp never came in (%d)\n", status); in ath11k_htc_wait_target()
512 ath11k_warn(ab, "Invalid HTC ready msg len:%d\n", in ath11k_htc_wait_target()
524 ath11k_warn(ab, "Invalid HTC ready msg: 0x%x\n", message_id); in ath11k_htc_wait_target()
531 ath11k_dbg(ab, ATH11K_DBG_HTC, in ath11k_htc_wait_target()
537 ath11k_warn(ab, "Invalid credit size received\n"); in ath11k_htc_wait_target()
544 if (ab->hw_params.supports_shadow_regs) in ath11k_htc_wait_target()
556 struct ath11k_base *ab = htc->ab; in ath11k_htc_connect_service() local
582 ath11k_dbg(ab, ATH11K_DBG_BOOT, in ath11k_htc_connect_service()
586 skb = ath11k_htc_build_tx_ctrl_skb(htc->ab); in ath11k_htc_connect_service()
588 ath11k_warn(ab, "Failed to allocate HTC packet\n"); in ath11k_htc_connect_service()
626 ath11k_err(ab, "Service connect timeout\n"); in ath11k_htc_connect_service()
638 ath11k_err(ab, "Invalid resp message ID 0x%x", message_id); in ath11k_htc_connect_service()
642 ath11k_dbg(ab, ATH11K_DBG_HTC, in ath11k_htc_connect_service()
653 ath11k_err(ab, "HTC Service %s connect request failed: 0x%x)\n", in ath11k_htc_connect_service()
695 status = ath11k_hif_map_service_to_pipe(htc->ab, in ath11k_htc_connect_service()
702 ath11k_dbg(ab, ATH11K_DBG_BOOT, in ath11k_htc_connect_service()
709 ath11k_dbg(ab, ATH11K_DBG_BOOT, in ath11k_htc_connect_service()
721 struct ath11k_base *ab = htc->ab; in ath11k_htc_start() local
724 skb = ath11k_htc_build_tx_ctrl_skb(htc->ab); in ath11k_htc_start()
735 ath11k_dbg(ab, ATH11K_DBG_HTC, "HTC is using TX credit flow control\n"); in ath11k_htc_start()
746 int ath11k_htc_init(struct ath11k_base *ab) in ath11k_htc_init() argument
748 struct ath11k_htc *htc = &ab->htc; in ath11k_htc_init()
757 htc->ab = ab; in ath11k_htc_init()
759 switch (ab->wmi_ab.preferred_hw_mode) { in ath11k_htc_init()
771 htc->wmi_ep_count = ab->hw_params.max_radios; in ath11k_htc_init()
786 ath11k_err(ab, "could not connect to htc service (%d)\n", ret); in ath11k_htc_init()