Lines Matching refs:wvif
60 void wfx_tx_queues_init(struct wfx_vif *wvif) in wfx_tx_queues_init() argument
69 skb_queue_head_init(&wvif->tx_queue[i].normal); in wfx_tx_queues_init()
70 skb_queue_head_init(&wvif->tx_queue[i].cab); in wfx_tx_queues_init()
71 wvif->tx_queue[i].priority = priorities[i]; in wfx_tx_queues_init()
75 bool wfx_tx_queue_empty(struct wfx_vif *wvif, struct wfx_queue *queue) in wfx_tx_queue_empty() argument
80 void wfx_tx_queues_check_empty(struct wfx_vif *wvif) in wfx_tx_queues_check_empty() argument
85 WARN_ON(atomic_read(&wvif->tx_queue[i].pending_frames)); in wfx_tx_queues_check_empty()
86 WARN_ON(!wfx_tx_queue_empty(wvif, &wvif->tx_queue[i])); in wfx_tx_queues_check_empty()
90 static void __wfx_tx_queue_drop(struct wfx_vif *wvif, in __wfx_tx_queue_drop() argument
103 void wfx_tx_queue_drop(struct wfx_vif *wvif, struct wfx_queue *queue, in wfx_tx_queue_drop() argument
106 __wfx_tx_queue_drop(wvif, &queue->cab, dropped); in wfx_tx_queue_drop()
107 __wfx_tx_queue_drop(wvif, &queue->normal, dropped); in wfx_tx_queue_drop()
108 wake_up(&wvif->wdev->tx_dequeue); in wfx_tx_queue_drop()
111 void wfx_tx_queues_put(struct wfx_vif *wvif, struct sk_buff *skb) in wfx_tx_queues_put() argument
113 struct wfx_queue *queue = &wvif->tx_queue[skb_get_queue_mapping(skb)]; in wfx_tx_queues_put()
125 struct wfx_vif *wvif; in wfx_pending_drop() local
132 wvif = wdev_to_wvif(wdev, hif->interface); in wfx_pending_drop()
133 if (wvif) { in wfx_pending_drop()
134 queue = &wvif->tx_queue[skb_get_queue_mapping(skb)]; in wfx_pending_drop()
147 struct wfx_vif *wvif; in wfx_pending_get() local
158 wvif = wdev_to_wvif(wdev, hif->interface); in wfx_pending_get()
159 if (wvif) { in wfx_pending_get()
160 queue = &wvif->tx_queue[skb_get_queue_mapping(skb)]; in wfx_pending_get()
206 bool wfx_tx_queues_has_cab(struct wfx_vif *wvif) in wfx_tx_queues_has_cab() argument
208 struct ieee80211_vif *vif = wvif_to_vif(wvif); in wfx_tx_queues_has_cab()
217 if (!skb_queue_empty_lockless(&wvif->tx_queue[i].cab)) in wfx_tx_queues_has_cab()
231 struct wfx_vif *wvif; in wfx_tx_queues_get_skb() local
236 wvif = NULL; in wfx_tx_queues_get_skb()
237 while ((wvif = wvif_iterate(wdev, wvif)) != NULL) { in wfx_tx_queues_get_skb()
240 queues[num_queues] = &wvif->tx_queue[i]; in wfx_tx_queues_get_skb()
249 wvif = NULL; in wfx_tx_queues_get_skb()
250 while ((wvif = wvif_iterate(wdev, wvif)) != NULL) { in wfx_tx_queues_get_skb()
251 if (!wvif->after_dtim_tx_allowed) in wfx_tx_queues_get_skb()
261 WARN_ON(hif->interface != wvif->id); in wfx_tx_queues_get_skb()
262 WARN_ON(queues[i] != &wvif->tx_queue[skb_get_queue_mapping(skb)]); in wfx_tx_queues_get_skb()
268 wvif->after_dtim_tx_allowed = false; in wfx_tx_queues_get_skb()
269 schedule_work(&wvif->update_tim_work); in wfx_tx_queues_get_skb()