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