Lines Matching +full:1 +full:ac

119 	int ac, i;  in __cleanup_single_sta()  local
156 for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) { in __cleanup_single_sta()
157 local->total_ps_buffered -= skb_queue_len(&sta->ps_tx_buf[ac]); in __cleanup_single_sta()
158 ieee80211_purge_tx_queue(&local->hw, &sta->ps_tx_buf[ac]); in __cleanup_single_sta()
159 ieee80211_purge_tx_queue(&local->hw, &sta->tx_filtered[ac]); in __cleanup_single_sta()
418 ret = sta_info_move_state(sta, sta->sta_state - 1); in sta_info_free()
580 /* Extended Key ID needs to install keys for keyid 0 and 1 Rx-only. in __sta_info_alloc()
659 WARN_ON(1); in __sta_info_alloc()
701 return __sta_info_alloc(sdata, addr, -1, addr, gfp); in sta_info_alloc()
753 err = drv_sta_state(local, sdata, sta, state, state + 1); in sta_info_insert_drv_state()
771 sta->sta.addr, state + 1, err); in sta_info_insert_drv_state()
777 WARN_ON(drv_sta_state(local, sdata, sta, state, state - 1)); in sta_info_insert_drv_state()
860 ieee80211_recalc_min_chandef(sta->sdata, -1); in sta_info_insert_finish()
943 tim[id / 8] |= (1 << (id % 8)); in __bss_tim_set()
952 tim[id / 8] &= ~(1 << (id % 8)); in __bss_tim_clear()
961 return tim[id / 8] & (1 << (id % 8)); in __bss_tim_get()
964 static unsigned long ieee80211_tids_for_ac(int ac) in ieee80211_tids_for_ac() argument
967 switch (ac) { in ieee80211_tids_for_ac()
975 return BIT(1) | BIT(2); in ieee80211_tids_for_ac()
977 WARN_ON(1); in ieee80211_tids_for_ac()
988 int ac; in __sta_info_recalc_tim() local
1018 if (ignore_for_tim == BIT(IEEE80211_NUM_ACS) - 1) in __sta_info_recalc_tim()
1022 ignore_for_tim = BIT(IEEE80211_NUM_ACS) - 1; in __sta_info_recalc_tim()
1024 for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) { in __sta_info_recalc_tim()
1027 if (ignore_for_tim & ieee80211_ac_to_qos_mask[ac]) in __sta_info_recalc_tim()
1030 indicate_tim |= !skb_queue_empty(&sta->tx_filtered[ac]) || in __sta_info_recalc_tim()
1031 !skb_queue_empty(&sta->ps_tx_buf[ac]); in __sta_info_recalc_tim()
1035 tids = ieee80211_tids_for_ac(ac); in __sta_info_recalc_tim()
1090 struct sta_info *sta, int ac) in sta_info_cleanup_expire_buffered_ac() argument
1103 spin_lock_irqsave(&sta->tx_filtered[ac].lock, flags); in sta_info_cleanup_expire_buffered_ac()
1104 skb = skb_peek(&sta->tx_filtered[ac]); in sta_info_cleanup_expire_buffered_ac()
1106 skb = __skb_dequeue(&sta->tx_filtered[ac]); in sta_info_cleanup_expire_buffered_ac()
1109 spin_unlock_irqrestore(&sta->tx_filtered[ac].lock, flags); in sta_info_cleanup_expire_buffered_ac()
1129 spin_lock_irqsave(&sta->ps_tx_buf[ac].lock, flags); in sta_info_cleanup_expire_buffered_ac()
1130 skb = skb_peek(&sta->ps_tx_buf[ac]); in sta_info_cleanup_expire_buffered_ac()
1132 skb = __skb_dequeue(&sta->ps_tx_buf[ac]); in sta_info_cleanup_expire_buffered_ac()
1135 spin_unlock_irqrestore(&sta->ps_tx_buf[ac].lock, flags); in sta_info_cleanup_expire_buffered_ac()
1163 return !(skb_queue_empty(&sta->ps_tx_buf[ac]) && in sta_info_cleanup_expire_buffered_ac()
1164 skb_queue_empty(&sta->tx_filtered[ac])); in sta_info_cleanup_expire_buffered_ac()
1171 int ac; in sta_info_cleanup_expire_buffered() local
1178 for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) in sta_info_cleanup_expire_buffered()
1180 sta_info_cleanup_expire_buffered_ac(local, sta, ac); in sta_info_cleanup_expire_buffered()
1286 ret = sta_info_move_state(sta, sta->sta_state - 1); in __sta_info_destroy_part2()
1288 WARN_ON_ONCE(1); in __sta_info_destroy_part2()
1518 int filtered = 0, buffered = 0, ac, i; in ieee80211_sta_ps_deliver_wakeup() local
1535 BUILD_BUG_ON(BITS_TO_LONGS(IEEE80211_NUM_TIDS) > 1); in ieee80211_sta_ps_deliver_wakeup()
1554 for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) { in ieee80211_sta_ps_deliver_wakeup()
1557 spin_lock_irqsave(&sta->tx_filtered[ac].lock, flags); in ieee80211_sta_ps_deliver_wakeup()
1558 skb_queue_splice_tail_init(&sta->tx_filtered[ac], &pending); in ieee80211_sta_ps_deliver_wakeup()
1559 spin_unlock_irqrestore(&sta->tx_filtered[ac].lock, flags); in ieee80211_sta_ps_deliver_wakeup()
1564 spin_lock_irqsave(&sta->ps_tx_buf[ac].lock, flags); in ieee80211_sta_ps_deliver_wakeup()
1565 skb_queue_splice_tail_init(&sta->ps_tx_buf[ac], &pending); in ieee80211_sta_ps_deliver_wakeup()
1566 spin_unlock_irqrestore(&sta->ps_tx_buf[ac].lock, flags); in ieee80211_sta_ps_deliver_wakeup()
1664 drv_allow_buffered_frames(local, sta, BIT(tid), 1, in ieee80211_send_null_response()
1686 return fls(tids) - 1; in find_highest_prio_tid()
1690 return fls(tids) - 1; in find_highest_prio_tid()
1703 int ac; in ieee80211_sta_ps_more_data() local
1711 hweight16(driver_release_tids) > 1) in ieee80211_sta_ps_more_data()
1714 for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) { in ieee80211_sta_ps_more_data()
1715 if (ignored_acs & ieee80211_ac_to_qos_mask[ac]) in ieee80211_sta_ps_more_data()
1718 if (!skb_queue_empty(&sta->tx_filtered[ac]) || in ieee80211_sta_ps_more_data()
1719 !skb_queue_empty(&sta->ps_tx_buf[ac])) in ieee80211_sta_ps_more_data()
1734 int ac; in ieee80211_sta_ps_get_frames() local
1737 for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) { in ieee80211_sta_ps_get_frames()
1740 if (ignored_acs & ieee80211_ac_to_qos_mask[ac]) in ieee80211_sta_ps_get_frames()
1743 tids = ieee80211_tids_for_ac(ac); in ieee80211_sta_ps_get_frames()
1758 skb = skb_dequeue(&sta->tx_filtered[ac]); in ieee80211_sta_ps_get_frames()
1761 &sta->ps_tx_buf[ac]); in ieee80211_sta_ps_get_frames()
1772 /* If we have more frames buffered on this AC, then abort the in ieee80211_sta_ps_get_frames()
1776 if (!skb_queue_empty(&sta->tx_filtered[ac]) || in ieee80211_sta_ps_get_frames()
1777 !skb_queue_empty(&sta->ps_tx_buf[ac])) in ieee80211_sta_ps_get_frames()
1808 int tid, ac; in ieee80211_sta_ps_deliver_response() local
1825 /* This will evaluate to 1, 3, 5 or 7. */ in ieee80211_sta_ps_deliver_response()
1826 for (ac = IEEE80211_AC_VO; ac < IEEE80211_NUM_ACS; ac++) in ieee80211_sta_ps_deliver_response()
1827 if (!(ignored_acs & ieee80211_ac_to_qos_mask[ac])) in ieee80211_sta_ps_deliver_response()
1829 tid = 7 - 2 * ac; in ieee80211_sta_ps_deliver_response()
1914 * expect more-data=0 when eosp=1. in ieee80211_sta_ps_deliver_response()
1985 if (ignore_for_response == BIT(IEEE80211_NUM_ACS) - 1) in ieee80211_sta_ps_deliver_poll_response()
1988 ieee80211_sta_ps_deliver_response(sta, 1, ignore_for_response, in ieee80211_sta_ps_deliver_poll_response()
2007 case 1: in ieee80211_sta_ps_deliver_uapsd()
2109 u8 ac = ieee80211_ac_from_tid(tid); in ieee80211_sta_register_airtime() local
2118 spin_lock_bh(&local->active_txq_lock[ac]); in ieee80211_sta_register_airtime()
2119 sta->airtime[ac].tx_airtime += tx_airtime; in ieee80211_sta_register_airtime()
2120 sta->airtime[ac].rx_airtime += rx_airtime; in ieee80211_sta_register_airtime()
2122 diff = (u32)jiffies - sta->airtime[ac].last_active; in ieee80211_sta_register_airtime()
2124 sta->airtime[ac].deficit -= airtime; in ieee80211_sta_register_airtime()
2126 spin_unlock_bh(&local->active_txq_lock[ac]); in ieee80211_sta_register_airtime()
2169 struct sta_info *sta, u8 ac, in ieee80211_sta_update_pending_airtime() argument
2180 &sta->airtime[ac].aql_tx_pending); in ieee80211_sta_update_pending_airtime()
2183 atomic_add(tx_airtime, &local->aql_ac_pending_airtime[ac]); in ieee80211_sta_update_pending_airtime()
2189 &sta->airtime[ac].aql_tx_pending); in ieee80211_sta_update_pending_airtime()
2191 atomic_cmpxchg(&sta->airtime[ac].aql_tx_pending, in ieee80211_sta_update_pending_airtime()
2197 &local->aql_ac_pending_airtime[ac]); in ieee80211_sta_update_pending_airtime()
2199 "Device %s AC %d pending airtime underflow: %u, %u", in ieee80211_sta_update_pending_airtime()
2200 wiphy_name(local->hw.wiphy), ac, tx_pending, in ieee80211_sta_update_pending_airtime()
2202 atomic_cmpxchg(&local->aql_ac_pending_airtime[ac], in ieee80211_sta_update_pending_airtime()
2238 WARN(1, "invalid state %d", new_state); in sta_info_move_state()
2268 ieee80211_recalc_min_chandef(sta->sdata, -1); in sta_info_move_state()
2277 ieee80211_recalc_min_chandef(sta->sdata, -1); in sta_info_move_state()
2364 shift = 1; in sta_stats_decode_rate()
2367 rinfo->legacy = DIV_ROUND_UP(brate, 1 << shift); in sta_stats_decode_rate()
2480 int i, ac, cpu; in sta_set_sinfo() local
2516 for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) in sta_set_sinfo()
2517 sinfo->tx_bytes += sta->deflink.tx_stats.bytes[ac]; in sta_set_sinfo()
2523 for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) in sta_set_sinfo()
2524 sinfo->tx_packets += sta->deflink.tx_stats.packets[ac]; in sta_set_sinfo()
2570 for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) in sta_set_sinfo()
2571 sinfo->rx_duration += sta->airtime[ac].rx_airtime; in sta_set_sinfo()
2576 for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) in sta_set_sinfo()
2577 sinfo->tx_duration += sta->airtime[ac].tx_airtime; in sta_set_sinfo()
2653 for (i = 0; i < IEEE80211_NUM_TIDS + 1; i++) in sta_set_sinfo()
2915 WLAN_EXT_CAPA9_MAX_MSDU_IN_AMSDU_MSB) << 1; in ieee80211_sta_set_max_amsdu_subframes()