Lines Matching refs:coex_cb
23 (struct rsi_coex_ctrl_block *coex_cb) in rsi_coex_determine_coex_q() argument
27 if (skb_queue_len(&coex_cb->coex_tx_qs[RSI_COEX_Q_COMMON]) > 0) in rsi_coex_determine_coex_q()
29 if (skb_queue_len(&coex_cb->coex_tx_qs[RSI_COEX_Q_BT]) > 0) in rsi_coex_determine_coex_q()
31 if (skb_queue_len(&coex_cb->coex_tx_qs[RSI_COEX_Q_WLAN]) > 0) in rsi_coex_determine_coex_q()
37 static void rsi_coex_sched_tx_pkts(struct rsi_coex_ctrl_block *coex_cb) in rsi_coex_sched_tx_pkts() argument
43 coex_q = rsi_coex_determine_coex_q(coex_cb); in rsi_coex_sched_tx_pkts()
47 skb = skb_dequeue(&coex_cb->coex_tx_qs[RSI_COEX_Q_BT]); in rsi_coex_sched_tx_pkts()
48 rsi_send_bt_pkt(coex_cb->priv, skb); in rsi_coex_sched_tx_pkts()
55 struct rsi_coex_ctrl_block *coex_cb = in rsi_coex_scheduler_thread() local
56 (struct rsi_coex_ctrl_block *)common->coex_cb; in rsi_coex_scheduler_thread()
60 rsi_wait_event(&coex_cb->coex_tx_thread.event, timeout); in rsi_coex_scheduler_thread()
61 rsi_reset_event(&coex_cb->coex_tx_thread.event); in rsi_coex_scheduler_thread()
63 rsi_coex_sched_tx_pkts(coex_cb); in rsi_coex_scheduler_thread()
64 } while (atomic_read(&coex_cb->coex_tx_thread.thread_done) == 0); in rsi_coex_scheduler_thread()
66 complete_and_exit(&coex_cb->coex_tx_thread.completion, 0); in rsi_coex_scheduler_thread()
104 struct rsi_coex_ctrl_block *coex_cb = in rsi_coex_send_pkt() local
105 (struct rsi_coex_ctrl_block *)common->coex_cb; in rsi_coex_send_pkt()
117 skb_queue_tail(&coex_cb->coex_tx_qs[coex_q], skb); in rsi_coex_send_pkt()
118 rsi_set_event(&coex_cb->coex_tx_thread.event); in rsi_coex_send_pkt()
142 struct rsi_coex_ctrl_block *coex_cb; in rsi_coex_attach() local
145 coex_cb = kzalloc(sizeof(*coex_cb), GFP_KERNEL); in rsi_coex_attach()
146 if (!coex_cb) in rsi_coex_attach()
149 common->coex_cb = (void *)coex_cb; in rsi_coex_attach()
150 coex_cb->priv = common; in rsi_coex_attach()
154 skb_queue_head_init(&coex_cb->coex_tx_qs[cnt]); in rsi_coex_attach()
155 rsi_init_event(&coex_cb->coex_tx_thread.event); in rsi_coex_attach()
159 &coex_cb->coex_tx_thread, in rsi_coex_attach()
170 struct rsi_coex_ctrl_block *coex_cb = in rsi_coex_detach() local
171 (struct rsi_coex_ctrl_block *)common->coex_cb; in rsi_coex_detach()
174 rsi_kill_thread(&coex_cb->coex_tx_thread); in rsi_coex_detach()
177 skb_queue_purge(&coex_cb->coex_tx_qs[cnt]); in rsi_coex_detach()
179 kfree(coex_cb); in rsi_coex_detach()