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 skb_queue_head_init(&wvif->tx_queue[i].offchan); in wfx_tx_queues_init()
72 wvif->tx_queue[i].priority = priorities[i]; in wfx_tx_queues_init()
76 bool wfx_tx_queue_empty(struct wfx_vif *wvif, struct wfx_queue *queue) in wfx_tx_queue_empty() argument
83 void wfx_tx_queues_check_empty(struct wfx_vif *wvif) in wfx_tx_queues_check_empty() argument
88 WARN_ON(atomic_read(&wvif->tx_queue[i].pending_frames)); in wfx_tx_queues_check_empty()
89 WARN_ON(!wfx_tx_queue_empty(wvif, &wvif->tx_queue[i])); in wfx_tx_queues_check_empty()
93 static void __wfx_tx_queue_drop(struct wfx_vif *wvif, in __wfx_tx_queue_drop() argument
106 void wfx_tx_queue_drop(struct wfx_vif *wvif, struct wfx_queue *queue, in wfx_tx_queue_drop() argument
109 __wfx_tx_queue_drop(wvif, &queue->normal, dropped); in wfx_tx_queue_drop()
110 __wfx_tx_queue_drop(wvif, &queue->cab, dropped); in wfx_tx_queue_drop()
111 __wfx_tx_queue_drop(wvif, &queue->offchan, dropped); in wfx_tx_queue_drop()
112 wake_up(&wvif->wdev->tx_dequeue); in wfx_tx_queue_drop()
115 void wfx_tx_queues_put(struct wfx_vif *wvif, struct sk_buff *skb) in wfx_tx_queues_put() argument
117 struct wfx_queue *queue = &wvif->tx_queue[skb_get_queue_mapping(skb)]; in wfx_tx_queues_put()
131 struct wfx_vif *wvif; in wfx_pending_drop() local
136 wvif = wfx_skb_wvif(wdev, skb); in wfx_pending_drop()
137 if (wvif) { in wfx_pending_drop()
138 queue = &wvif->tx_queue[skb_get_queue_mapping(skb)]; in wfx_pending_drop()
151 struct wfx_vif *wvif; in wfx_pending_get() local
162 wvif = wfx_skb_wvif(wdev, skb); in wfx_pending_get()
163 if (wvif) { in wfx_pending_get()
164 queue = &wvif->tx_queue[skb_get_queue_mapping(skb)]; in wfx_pending_get()
210 bool wfx_tx_queues_has_cab(struct wfx_vif *wvif) in wfx_tx_queues_has_cab() argument
212 struct ieee80211_vif *vif = wvif_to_vif(wvif); in wfx_tx_queues_has_cab()
221 if (!skb_queue_empty_lockless(&wvif->tx_queue[i].cab)) in wfx_tx_queues_has_cab()
235 struct wfx_vif *wvif; in wfx_tx_queues_get_skb() local
240 wvif = NULL; in wfx_tx_queues_get_skb()
241 while ((wvif = wvif_iterate(wdev, wvif)) != NULL) { in wfx_tx_queues_get_skb()
244 queues[num_queues] = &wvif->tx_queue[i]; in wfx_tx_queues_get_skb()
253 wvif = NULL; in wfx_tx_queues_get_skb()
254 while ((wvif = wvif_iterate(wdev, wvif)) != NULL) { in wfx_tx_queues_get_skb()
273 wvif = NULL; in wfx_tx_queues_get_skb()
274 while ((wvif = wvif_iterate(wdev, wvif)) != NULL) { in wfx_tx_queues_get_skb()
275 if (!wvif->after_dtim_tx_allowed) in wfx_tx_queues_get_skb()
285 WARN_ON(hif->interface != wvif->id); in wfx_tx_queues_get_skb()
286 WARN_ON(queues[i] != &wvif->tx_queue[skb_get_queue_mapping(skb)]); in wfx_tx_queues_get_skb()
292 wvif->after_dtim_tx_allowed = false; in wfx_tx_queues_get_skb()
293 schedule_work(&wvif->update_tim_work); in wfx_tx_queues_get_skb()