• Home
  • Raw
  • Download

Lines Matching refs:hw

71 	sband = local->hw.wiphy->bands[info->band];  in ieee80211_duration()
214 if (!ieee80211_hw_check(&local->hw, SUPPORTS_PS)) in ieee80211_tx_h_dynamic_ps()
218 if (ieee80211_hw_check(&local->hw, SUPPORTS_DYNAMIC_PS)) in ieee80211_tx_h_dynamic_ps()
222 if (local->hw.conf.dynamic_ps_timeout <= 0) in ieee80211_tx_h_dynamic_ps()
263 if (local->hw.conf.flags & IEEE80211_CONF_PS) { in ieee80211_tx_h_dynamic_ps()
264 ieee80211_stop_queues_by_reason(&local->hw, in ieee80211_tx_h_dynamic_ps()
269 ieee80211_queue_work(&local->hw, in ieee80211_tx_h_dynamic_ps()
278 msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout)); in ieee80211_tx_h_dynamic_ps()
367 ieee80211_free_txskb(&local->hw, skb); in purge_old_ps_buffers()
384 ieee80211_free_txskb(&local->hw, skb); in purge_old_ps_buffers()
391 ps_dbg_hw(&local->hw, "PS buffers full - purged %d frames\n", purged); in purge_old_ps_buffers()
430 if (ieee80211_hw_check(&tx->local->hw, QUEUE_CONTROL)) in ieee80211_tx_h_multicast_ps_buf()
440 if (!ieee80211_hw_check(&tx->local->hw, HOST_BROADCAST_PS_BUFFERING)) in ieee80211_tx_h_multicast_ps_buf()
450 ieee80211_free_txskb(&tx->local->hw, skb_dequeue(&ps->bc_buf)); in ieee80211_tx_h_multicast_ps_buf()
521 ieee80211_free_txskb(&local->hw, old); in ieee80211_tx_h_unicast_ps_buf()
677 sband = tx->local->hw.wiphy->bands[info->band]; in ieee80211_tx_h_rate_ctrl()
680 tx->local->hw.wiphy->frag_threshold); in ieee80211_tx_h_rate_ctrl()
683 txrc.hw = &tx->local->hw; in ieee80211_tx_h_rate_ctrl()
700 if (len > tx->local->hw.wiphy->rts_threshold) { in ieee80211_tx_h_rate_ctrl()
928 int frag_threshold = tx->local->hw.wiphy->frag_threshold; in ieee80211_tx_h_fragment()
939 if (ieee80211_hw_check(&tx->local->hw, SUPPORTS_TX_FRAG)) in ieee80211_tx_h_fragment()
1142 ieee80211_free_txskb(&tx->local->hw, purge_skb); in ieee80211_tx_prep_agg()
1225 ieee80211_hw_check(&local->hw, AMPDU_AGGREGATION) && in ieee80211_tx_prepare()
1226 !ieee80211_hw_check(&local->hw, TX_AMPDU_SETUP_IN_HW)) { in ieee80211_tx_prepare()
1255 skb->len + FCS_LEN <= local->hw.wiphy->frag_threshold || in ieee80211_tx_prepare()
1356 struct ieee80211_hw *hw; in codel_drop_func() local
1361 hw = &local->hw; in codel_drop_func()
1363 ieee80211_free_txskb(hw, skb); in codel_drop_func()
1412 ieee80211_free_txskb(&local->hw, skb); in fq_skb_free_func()
1500 if (!ieee80211_hw_check(&sdata->local->hw, in ieee80211_txq_init()
1503 } else if (!ieee80211_hw_check(&sdata->local->hw, in ieee80211_txq_init()
1526 ieee80211_purge_tx_queue(&local->hw, &txqi->frags); in ieee80211_txq_purge()
1529 ieee80211_unschedule_txq(&local->hw, &txqi->txq, true); in ieee80211_txq_purge()
1534 if (local->hw.wiphy->txq_limit) in ieee80211_txq_set_params()
1535 local->fq.limit = local->hw.wiphy->txq_limit; in ieee80211_txq_set_params()
1537 local->hw.wiphy->txq_limit = local->fq.limit; in ieee80211_txq_set_params()
1539 if (local->hw.wiphy->txq_memory_limit) in ieee80211_txq_set_params()
1540 local->fq.memory_limit = local->hw.wiphy->txq_memory_limit; in ieee80211_txq_set_params()
1542 local->hw.wiphy->txq_memory_limit = local->fq.memory_limit; in ieee80211_txq_set_params()
1544 if (local->hw.wiphy->txq_quantum) in ieee80211_txq_set_params()
1545 local->fq.quantum = local->hw.wiphy->txq_quantum; in ieee80211_txq_set_params()
1547 local->hw.wiphy->txq_quantum = local->fq.quantum; in ieee80211_txq_set_params()
1572 sband = local->hw.wiphy->bands[band]; in ieee80211_txq_setup_flows()
1663 if (WARN_ON_ONCE(q >= local->hw.queues)) { in ieee80211_tx_frags()
1665 ieee80211_free_txskb(&local->hw, skb); in ieee80211_tx_frags()
1686 ieee80211_purge_tx_queue(&local->hw, in ieee80211_tx_frags()
1754 } else if (ieee80211_hw_check(&local->hw, QUEUE_CONTROL)) { in __ieee80211_tx()
1755 ieee80211_purge_tx_queue(&local->hw, skbs); in __ieee80211_tx()
1805 ieee80211_free_txskb(&tx->local->hw, tx->skb); in invoke_tx_handlers_early()
1807 ieee80211_purge_tx_queue(&tx->local->hw, &tx->skbs); in invoke_tx_handlers_early()
1826 if (!ieee80211_hw_check(&tx->local->hw, HAS_RATE_CONTROL)) in invoke_tx_handlers_late()
1841 if (!ieee80211_hw_check(&tx->local->hw, HAS_RATE_CONTROL)) in invoke_tx_handlers_late()
1849 ieee80211_free_txskb(&tx->local->hw, tx->skb); in invoke_tx_handlers_late()
1851 ieee80211_purge_tx_queue(&tx->local->hw, &tx->skbs); in invoke_tx_handlers_late()
1870 bool ieee80211_tx_prepare_skb(struct ieee80211_hw *hw, in ieee80211_tx_prepare_skb() argument
1899 ieee80211_free_txskb(hw, skb2); in ieee80211_tx_prepare_skb()
1900 ieee80211_purge_tx_queue(hw, &tx.skbs); in ieee80211_tx_prepare_skb()
1930 ieee80211_free_txskb(&local->hw, skb); in ieee80211_tx()
1938 !ieee80211_hw_check(&local->hw, QUEUE_CONTROL)) in ieee80211_tx()
1982 (!ieee80211_hw_check(&local->hw, SUPPORTS_CLONED_SKBS) || in ieee80211_skb_resize()
1991 wiphy_debug(local->hw.wiphy, in ieee80211_skb_resize()
2022 ieee80211_free_txskb(&local->hw, skb); in ieee80211_xmit()
2230 local->hw.wiphy->bands[info->band]; in ieee80211_parse_tx_radiotap()
2260 local->hw.max_rate_tries); in ieee80211_parse_tx_radiotap()
2382 if (!cfg80211_reg_can_beacon(local->hw.wiphy, chandef, in ieee80211_monitor_start_xmit()
2875 ieee80211_free_txskb(&local->hw, skb); in ieee80211_build_hdr()
2948 if (!ieee80211_hw_check(&local->hw, SUPPORT_FAST_XMIT)) in ieee80211_check_fast_xmit()
2964 if (ieee80211_hw_check(&local->hw, SUPPORTS_PS) && in ieee80211_check_fast_xmit()
2965 !ieee80211_hw_check(&local->hw, SUPPORTS_DYNAMIC_PS) && in ieee80211_check_fast_xmit()
2982 if (local->hw.wiphy->frag_threshold != (u32)-1 && in ieee80211_check_fast_xmit()
2983 !ieee80211_hw_check(&local->hw, SUPPORTS_TX_FRAG)) in ieee80211_check_fast_xmit()
3215 wiphy_debug(local->hw.wiphy, in ieee80211_amsdu_realloc_pad()
3246 local->hw.extra_tx_headroom)) in ieee80211_amsdu_prepare_head()
3306 int max_frags = local->hw.max_tx_fragments; in ieee80211_amsdu_aggregate()
3317 if (!ieee80211_hw_check(&local->hw, TX_AMSDU)) in ieee80211_amsdu_aggregate()
3447 if (!ieee80211_hw_check(&tx->local->hw, HAS_RATE_CONTROL) && in ieee80211_xmit_fast_finish()
3511 int hw_headroom = sdata->local->hw.extra_tx_headroom; in ieee80211_xmit_fast()
3625 struct sk_buff *ieee80211_tx_dequeue(struct ieee80211_hw *hw, in ieee80211_tx_dequeue() argument
3628 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_tx_dequeue()
3641 if (!ieee80211_txq_airtime_check(hw, txq)) in ieee80211_tx_dequeue()
3699 ieee80211_free_txskb(&local->hw, skb); in ieee80211_tx_dequeue()
3710 ieee80211_free_txskb(&local->hw, skb); in ieee80211_tx_dequeue()
3720 if (!ieee80211_hw_check(&local->hw, HAS_RATE_CONTROL)) { in ieee80211_tx_dequeue()
3723 ieee80211_free_txskb(&local->hw, skb); in ieee80211_tx_dequeue()
3742 ieee80211_free_txskb(&local->hw, skb); in ieee80211_tx_dequeue()
3760 !ieee80211_hw_check(&local->hw, TX_FRAG_LIST)) { in ieee80211_tx_dequeue()
3762 ieee80211_free_txskb(&local->hw, skb); in ieee80211_tx_dequeue()
3778 } else if (ieee80211_hw_check(&local->hw, QUEUE_CONTROL)) { in ieee80211_tx_dequeue()
3779 ieee80211_free_txskb(&local->hw, skb); in ieee80211_tx_dequeue()
3798 wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) { in ieee80211_tx_dequeue()
3802 airtime = ieee80211_calc_expected_tx_airtime(hw, vif, txq->sta, in ieee80211_tx_dequeue()
3822 struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw, u8 ac) in ieee80211_next_txq() argument
3824 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_next_txq()
3856 if (!ieee80211_txq_airtime_check(hw, &txqi->txq)) { in ieee80211_next_txq()
3897 void ieee80211_resort_txq(struct ieee80211_hw *hw, in ieee80211_resort_txq() argument
3901 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_resort_txq()
3972 void ieee80211_schedule_txq(struct ieee80211_hw *hw, in ieee80211_schedule_txq() argument
3976 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_schedule_txq()
4010 static void __ieee80211_unschedule_txq(struct ieee80211_hw *hw, in __ieee80211_unschedule_txq() argument
4014 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_unschedule_txq()
4044 void ieee80211_unschedule_txq(struct ieee80211_hw *hw, in ieee80211_unschedule_txq() argument
4049 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_unschedule_txq()
4052 __ieee80211_unschedule_txq(hw, txq, purge); in ieee80211_unschedule_txq()
4056 void ieee80211_return_txq(struct ieee80211_hw *hw, in ieee80211_return_txq() argument
4059 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_return_txq()
4066 __ieee80211_unschedule_txq(hw, txq, false); in ieee80211_return_txq()
4074 bool ieee80211_txq_airtime_check(struct ieee80211_hw *hw, in ieee80211_txq_airtime_check() argument
4078 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_txq_airtime_check()
4080 if (!wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) in ieee80211_txq_airtime_check()
4104 bool ieee80211_txq_may_transmit(struct ieee80211_hw *hw, in ieee80211_txq_may_transmit() argument
4108 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_txq_may_transmit()
4116 if (!ieee80211_txq_airtime_check(hw, txq)) in ieee80211_txq_may_transmit()
4152 void ieee80211_txq_schedule_start(struct ieee80211_hw *hw, u8 ac) in ieee80211_txq_schedule_start() argument
4154 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_txq_schedule_start()
4199 sk_pacing_shift_update(skb->sk, sdata->local->hw.tx_sk_pacing_shift); in __ieee80211_subif_start_xmit()
4407 sk_pacing_shift_update(skb->sk, local->hw.tx_sk_pacing_shift); in ieee80211_tx_8023()
4598 for (i = 0; i < local->hw.queues; i++) { in ieee80211_clear_tx_pending()
4600 ieee80211_free_txskb(&local->hw, skb); in ieee80211_clear_tx_pending()
4668 for (i = 0; i < local->hw.queues; i++) { in ieee80211_tx_pending()
4682 ieee80211_free_txskb(&local->hw, skb); in ieee80211_tx_pending()
4994 __ieee80211_beacon_get(struct ieee80211_hw *hw, in __ieee80211_beacon_get() argument
4999 struct ieee80211_local *local = hw_to_local(hw); in __ieee80211_beacon_get()
5039 local->hw.extra_beacon_tailroom); in __ieee80211_beacon_get()
5082 local->hw.extra_beacon_tailroom); in __ieee80211_beacon_get()
5117 local->hw.extra_beacon_tailroom); in __ieee80211_beacon_get()
5158 txrc.hw = hw; in __ieee80211_beacon_get()
5159 txrc.sband = local->hw.wiphy->bands[band]; in __ieee80211_beacon_get()
5182 ieee80211_beacon_get_template(struct ieee80211_hw *hw, in ieee80211_beacon_get_template() argument
5186 return __ieee80211_beacon_get(hw, vif, offs, true); in ieee80211_beacon_get_template()
5190 struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *hw, in ieee80211_beacon_get_tim() argument
5195 struct sk_buff *bcn = __ieee80211_beacon_get(hw, vif, &offs, false); in ieee80211_beacon_get_tim()
5209 if (ieee80211_hw_check(hw, BEACON_TX_STATUS) || in ieee80211_beacon_get_tim()
5210 !hw_to_local(hw)->monitors) in ieee80211_beacon_get_tim()
5223 ieee80211_tx_monitor(hw_to_local(hw), copy, sband, 1, shift, false, in ieee80211_beacon_get_tim()
5230 struct sk_buff *ieee80211_proberesp_get(struct ieee80211_hw *hw, in ieee80211_proberesp_get() argument
5264 struct sk_buff *ieee80211_get_fils_discovery_tmpl(struct ieee80211_hw *hw, in ieee80211_get_fils_discovery_tmpl() argument
5281 skb = dev_alloc_skb(sdata->local->hw.extra_tx_headroom + tmpl->len); in ieee80211_get_fils_discovery_tmpl()
5283 skb_reserve(skb, sdata->local->hw.extra_tx_headroom); in ieee80211_get_fils_discovery_tmpl()
5293 ieee80211_get_unsol_bcast_probe_resp_tmpl(struct ieee80211_hw *hw, in ieee80211_get_unsol_bcast_probe_resp_tmpl() argument
5310 skb = dev_alloc_skb(sdata->local->hw.extra_tx_headroom + tmpl->len); in ieee80211_get_unsol_bcast_probe_resp_tmpl()
5312 skb_reserve(skb, sdata->local->hw.extra_tx_headroom); in ieee80211_get_unsol_bcast_probe_resp_tmpl()
5321 struct sk_buff *ieee80211_pspoll_get(struct ieee80211_hw *hw, in ieee80211_pspoll_get() argument
5337 skb = dev_alloc_skb(local->hw.extra_tx_headroom + sizeof(*pspoll)); in ieee80211_pspoll_get()
5341 skb_reserve(skb, local->hw.extra_tx_headroom); in ieee80211_pspoll_get()
5358 struct sk_buff *ieee80211_nullfunc_get(struct ieee80211_hw *hw, in ieee80211_nullfunc_get() argument
5385 skb = dev_alloc_skb(local->hw.extra_tx_headroom + in ieee80211_nullfunc_get()
5390 skb_reserve(skb, local->hw.extra_tx_headroom); in ieee80211_nullfunc_get()
5417 struct sk_buff *ieee80211_probereq_get(struct ieee80211_hw *hw, in ieee80211_probereq_get() argument
5422 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_probereq_get()
5430 skb = dev_alloc_skb(local->hw.extra_tx_headroom + sizeof(*hdr) + in ieee80211_probereq_get()
5435 skb_reserve(skb, local->hw.extra_tx_headroom); in ieee80211_probereq_get()
5455 void ieee80211_rts_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in ieee80211_rts_get() argument
5464 rts->duration = ieee80211_rts_duration(hw, vif, frame_len, in ieee80211_rts_get()
5471 void ieee80211_ctstoself_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in ieee80211_ctstoself_get() argument
5480 cts->duration = ieee80211_ctstoself_duration(hw, vif, in ieee80211_ctstoself_get()
5487 ieee80211_get_buffered_bc(struct ieee80211_hw *hw, in ieee80211_get_buffered_bc() argument
5490 struct ieee80211_local *local = hw_to_local(hw); in ieee80211_get_buffered_bc()
5543 ieee80211_free_txskb(hw, skb); in ieee80211_get_buffered_bc()
5601 if (ieee80211_hw_check(&local->hw, AMPDU_AGGREGATION)) { in ieee80211_reserve_tid()
5615 if (ieee80211_hw_check(&local->hw, AMPDU_AGGREGATION)) in ieee80211_reserve_tid()
5706 skb = dev_alloc_skb(local->hw.extra_tx_headroom + in ieee80211_tx_control_port()
5711 skb_reserve(skb, local->hw.extra_tx_headroom + sizeof(struct ethhdr)); in ieee80211_tx_control_port()
5725 if (local->hw.queues < IEEE80211_NUM_ACS) in ieee80211_tx_control_port()
5763 skb = dev_alloc_skb(local->hw.extra_tx_headroom + len + in ieee80211_probe_mesh_link()
5769 skb_reserve(skb, local->hw.extra_tx_headroom); in ieee80211_probe_mesh_link()