Lines Matching refs:queue
286 struct ieee80211_txq *queue) in wake_tx_push_queue() argument
289 .sta = queue->sta, in wake_tx_push_queue()
294 skb = ieee80211_tx_dequeue(&local->hw, queue); in wake_tx_push_queue()
308 struct ieee80211_txq *queue; in ieee80211_handle_wake_tx_queue() local
314 while ((queue = ieee80211_next_txq(hw, txq->ac))) { in ieee80211_handle_wake_tx_queue()
315 wake_tx_push_queue(local, sdata, queue); in ieee80211_handle_wake_tx_queue()
316 ieee80211_return_txq(hw, queue, false); in ieee80211_handle_wake_tx_queue()
433 static void __ieee80211_wake_queue(struct ieee80211_hw *hw, int queue, in __ieee80211_wake_queue() argument
440 if (WARN_ON(queue >= hw->queues)) in __ieee80211_wake_queue()
443 if (!test_bit(reason, &local->queue_stop_reasons[queue])) in __ieee80211_wake_queue()
447 local->q_stop_reasons[queue][reason] = 0; in __ieee80211_wake_queue()
449 local->q_stop_reasons[queue][reason]--; in __ieee80211_wake_queue()
450 if (WARN_ON(local->q_stop_reasons[queue][reason] < 0)) in __ieee80211_wake_queue()
451 local->q_stop_reasons[queue][reason] = 0; in __ieee80211_wake_queue()
454 if (local->q_stop_reasons[queue][reason] == 0) in __ieee80211_wake_queue()
455 __clear_bit(reason, &local->queue_stop_reasons[queue]); in __ieee80211_wake_queue()
457 trace_wake_queue(local, queue, reason, in __ieee80211_wake_queue()
458 local->q_stop_reasons[queue][reason]); in __ieee80211_wake_queue()
460 if (local->queue_stop_reasons[queue] != 0) in __ieee80211_wake_queue()
464 if (!skb_queue_empty(&local->pending[queue])) in __ieee80211_wake_queue()
480 void ieee80211_wake_queue_by_reason(struct ieee80211_hw *hw, int queue, in ieee80211_wake_queue_by_reason() argument
488 __ieee80211_wake_queue(hw, queue, reason, refcounted, &flags); in ieee80211_wake_queue_by_reason()
492 void ieee80211_wake_queue(struct ieee80211_hw *hw, int queue) in ieee80211_wake_queue() argument
494 ieee80211_wake_queue_by_reason(hw, queue, in ieee80211_wake_queue()
500 static void __ieee80211_stop_queue(struct ieee80211_hw *hw, int queue, in __ieee80211_stop_queue() argument
506 if (WARN_ON(queue >= hw->queues)) in __ieee80211_stop_queue()
510 local->q_stop_reasons[queue][reason] = 1; in __ieee80211_stop_queue()
512 local->q_stop_reasons[queue][reason]++; in __ieee80211_stop_queue()
514 trace_stop_queue(local, queue, reason, in __ieee80211_stop_queue()
515 local->q_stop_reasons[queue][reason]); in __ieee80211_stop_queue()
517 set_bit(reason, &local->queue_stop_reasons[queue]); in __ieee80211_stop_queue()
520 void ieee80211_stop_queue_by_reason(struct ieee80211_hw *hw, int queue, in ieee80211_stop_queue_by_reason() argument
528 __ieee80211_stop_queue(hw, queue, reason, refcounted); in ieee80211_stop_queue_by_reason()
532 void ieee80211_stop_queue(struct ieee80211_hw *hw, int queue) in ieee80211_stop_queue() argument
534 ieee80211_stop_queue_by_reason(hw, queue, in ieee80211_stop_queue()
546 int queue = info->hw_queue; in ieee80211_add_pending_skb() local
554 __ieee80211_stop_queue(hw, queue, IEEE80211_QUEUE_STOP_REASON_SKB_ADD, in ieee80211_add_pending_skb()
556 __skb_queue_tail(&local->pending[queue], skb); in ieee80211_add_pending_skb()
557 __ieee80211_wake_queue(hw, queue, IEEE80211_QUEUE_STOP_REASON_SKB_ADD, in ieee80211_add_pending_skb()
568 int queue, i; in ieee80211_add_pending_skbs() local
579 queue = info->hw_queue; in ieee80211_add_pending_skbs()
581 __ieee80211_stop_queue(hw, queue, in ieee80211_add_pending_skbs()
585 __skb_queue_tail(&local->pending[queue], skb); in ieee80211_add_pending_skbs()
620 int ieee80211_queue_stopped(struct ieee80211_hw *hw, int queue) in ieee80211_queue_stopped() argument
626 if (WARN_ON(queue >= hw->queues)) in ieee80211_queue_stopped()
631 &local->queue_stop_reasons[queue]); in ieee80211_queue_stopped()