Lines Matching refs:local

121 	if (sdata->local->hw.flags & IEEE80211_HW_CONNECTION_MONITOR)  in ieee80211_sta_reset_beacon_monitor()
137 if (sdata->local->hw.flags & IEEE80211_HW_CONNECTION_MONITOR) in ieee80211_sta_reset_conn_monitor()
322 while (!cfg80211_chandef_usable(sdata->local->hw.wiphy, chandef, in ieee80211_determine_chantype()
349 struct ieee80211_local *local = sdata->local; in ieee80211_config_bw() local
381 sband = local->hw.wiphy->bands[chan->band]; in ieee80211_config_bw()
449 rate_control_rate_update(local, sband, sta, in ieee80211_config_bw()
463 rate_control_rate_update(local, sband, sta, in ieee80211_config_bw()
598 struct ieee80211_local *local = sdata->local; in ieee80211_send_assoc() local
623 sband = local->hw.wiphy->bands[chan->band]; in ieee80211_send_assoc()
653 skb = alloc_skb(local->hw.extra_tx_headroom + in ieee80211_send_assoc()
667 skb_reserve(skb, local->hw.extra_tx_headroom); in ieee80211_send_assoc()
672 if (!(local->hw.flags & IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE)) in ieee80211_send_assoc()
674 if (!(local->hw.flags & IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE)) in ieee80211_send_assoc()
682 (local->hw.flags & IEEE80211_HW_SPECTRUM_MGMT)) in ieee80211_send_assoc()
700 cpu_to_le16(local->hw.conf.listen_interval); in ieee80211_send_assoc()
709 cpu_to_le16(local->hw.conf.listen_interval); in ieee80211_send_assoc()
887 drv_mgd_prepare_tx(local, sdata); in ieee80211_send_assoc()
890 if (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) in ieee80211_send_assoc()
896 void ieee80211_send_pspoll(struct ieee80211_local *local, in ieee80211_send_pspoll() argument
902 skb = ieee80211_pspoll_get(&local->hw, &sdata->vif); in ieee80211_send_pspoll()
913 void ieee80211_send_nullfunc(struct ieee80211_local *local, in ieee80211_send_nullfunc() argument
921 skb = ieee80211_nullfunc_get(&local->hw, &sdata->vif); in ieee80211_send_nullfunc()
932 if (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) in ieee80211_send_nullfunc()
941 static void ieee80211_send_4addr_nullfunc(struct ieee80211_local *local, in ieee80211_send_4addr_nullfunc() argument
951 skb = dev_alloc_skb(local->hw.extra_tx_headroom + 30); in ieee80211_send_4addr_nullfunc()
955 skb_reserve(skb, local->hw.extra_tx_headroom); in ieee80211_send_4addr_nullfunc()
976 struct ieee80211_local *local = sdata->local; in ieee80211_chswitch_work() local
984 mutex_lock(&local->mtx); in ieee80211_chswitch_work()
985 mutex_lock(&local->chanctx_mtx); in ieee80211_chswitch_work()
1014 ieee80211_queue_work(&sdata->local->hw, in ieee80211_chswitch_work()
1026 ieee80211_queue_work(&sdata->local->hw, in ieee80211_chswitch_work()
1040 mutex_unlock(&local->chanctx_mtx); in ieee80211_chswitch_work()
1041 mutex_unlock(&local->mtx); in ieee80211_chswitch_work()
1047 struct ieee80211_local *local = sdata->local; in ieee80211_chswitch_post_beacon() local
1056 ieee80211_wake_vif_queues(local, sdata, in ieee80211_chswitch_post_beacon()
1068 ieee80211_queue_work(&local->hw, in ieee80211_chswitch_post_beacon()
1085 ieee80211_queue_work(&sdata->local->hw, in ieee80211_chswitch_done()
1088 ieee80211_queue_work(&sdata->local->hw, &ifmgd->chswitch_work); in ieee80211_chswitch_done()
1098 ieee80211_queue_work(&sdata->local->hw, &sdata->u.mgd.chswitch_work); in ieee80211_chswitch_timer()
1107 struct ieee80211_local *local = sdata->local; in ieee80211_sta_process_chanswitch() local
1122 if (local->scanning) in ieee80211_sta_process_chanswitch()
1135 ieee80211_queue_work(&local->hw, in ieee80211_sta_process_chanswitch()
1140 if (!cfg80211_chandef_usable(local->hw.wiphy, &csa_ie.chandef, in ieee80211_sta_process_chanswitch()
1148 ieee80211_queue_work(&local->hw, in ieee80211_sta_process_chanswitch()
1164 mutex_lock(&local->mtx); in ieee80211_sta_process_chanswitch()
1165 mutex_lock(&local->chanctx_mtx); in ieee80211_sta_process_chanswitch()
1167 lockdep_is_held(&local->chanctx_mtx)); in ieee80211_sta_process_chanswitch()
1176 if (local->use_chanctx && in ieee80211_sta_process_chanswitch()
1177 !(local->hw.flags & IEEE80211_HW_CHANCTX_STA_CSA)) { in ieee80211_sta_process_chanswitch()
1203 mutex_unlock(&local->chanctx_mtx); in ieee80211_sta_process_chanswitch()
1211 ieee80211_stop_vif_queues(local, sdata, in ieee80211_sta_process_chanswitch()
1213 mutex_unlock(&local->mtx); in ieee80211_sta_process_chanswitch()
1218 if (local->ops->channel_switch) { in ieee80211_sta_process_chanswitch()
1220 drv_channel_switch(local, sdata, &ch_switch); in ieee80211_sta_process_chanswitch()
1226 ieee80211_queue_work(&local->hw, &ifmgd->chswitch_work); in ieee80211_sta_process_chanswitch()
1233 ieee80211_queue_work(&local->hw, &ifmgd->csa_connection_drop_work); in ieee80211_sta_process_chanswitch()
1234 mutex_unlock(&local->chanctx_mtx); in ieee80211_sta_process_chanswitch()
1235 mutex_unlock(&local->mtx); in ieee80211_sta_process_chanswitch()
1373 static void ieee80211_enable_ps(struct ieee80211_local *local, in ieee80211_enable_ps() argument
1376 struct ieee80211_conf *conf = &local->hw.conf; in ieee80211_enable_ps()
1382 if (local->scanning) in ieee80211_enable_ps()
1386 !(local->hw.flags & IEEE80211_HW_SUPPORTS_DYNAMIC_PS)) { in ieee80211_enable_ps()
1387 mod_timer(&local->dynamic_ps_timer, jiffies + in ieee80211_enable_ps()
1390 if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) in ieee80211_enable_ps()
1391 ieee80211_send_nullfunc(local, sdata, 1); in ieee80211_enable_ps()
1393 if ((local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) && in ieee80211_enable_ps()
1394 (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS)) in ieee80211_enable_ps()
1398 ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS); in ieee80211_enable_ps()
1402 static void ieee80211_change_ps(struct ieee80211_local *local) in ieee80211_change_ps() argument
1404 struct ieee80211_conf *conf = &local->hw.conf; in ieee80211_change_ps()
1406 if (local->ps_sdata) { in ieee80211_change_ps()
1407 ieee80211_enable_ps(local, local->ps_sdata); in ieee80211_change_ps()
1410 ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS); in ieee80211_change_ps()
1411 del_timer_sync(&local->dynamic_ps_timer); in ieee80211_change_ps()
1412 cancel_work_sync(&local->dynamic_ps_enable_work); in ieee80211_change_ps()
1447 void ieee80211_recalc_ps(struct ieee80211_local *local, s32 latency) in ieee80211_recalc_ps() argument
1453 if (!(local->hw.flags & IEEE80211_HW_SUPPORTS_PS)) { in ieee80211_recalc_ps()
1454 local->ps_sdata = NULL; in ieee80211_recalc_ps()
1458 list_for_each_entry(sdata, &local->interfaces, list) { in ieee80211_recalc_ps()
1484 timeout = local->dynamic_ps_forced_timeout; in ieee80211_recalc_ps()
1499 local->hw.conf.dynamic_ps_timeout = timeout; in ieee80211_recalc_ps()
1502 local->ps_sdata = NULL; in ieee80211_recalc_ps()
1514 local->hw.conf.max_sleep_period = maxslp; in ieee80211_recalc_ps()
1515 local->hw.conf.ps_dtim_period = dtimper; in ieee80211_recalc_ps()
1516 local->ps_sdata = found; in ieee80211_recalc_ps()
1519 local->ps_sdata = NULL; in ieee80211_recalc_ps()
1522 ieee80211_change_ps(local); in ieee80211_recalc_ps()
1537 struct ieee80211_local *local = in ieee80211_dynamic_ps_disable_work() local
1541 if (local->hw.conf.flags & IEEE80211_CONF_PS) { in ieee80211_dynamic_ps_disable_work()
1542 local->hw.conf.flags &= ~IEEE80211_CONF_PS; in ieee80211_dynamic_ps_disable_work()
1543 ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS); in ieee80211_dynamic_ps_disable_work()
1546 ieee80211_wake_queues_by_reason(&local->hw, in ieee80211_dynamic_ps_disable_work()
1554 struct ieee80211_local *local = in ieee80211_dynamic_ps_enable_work() local
1557 struct ieee80211_sub_if_data *sdata = local->ps_sdata; in ieee80211_dynamic_ps_enable_work()
1568 if (local->hw.conf.flags & IEEE80211_CONF_PS) in ieee80211_dynamic_ps_enable_work()
1571 if (local->hw.conf.dynamic_ps_timeout > 0) { in ieee80211_dynamic_ps_enable_work()
1573 if (drv_tx_frames_pending(local)) { in ieee80211_dynamic_ps_enable_work()
1574 mod_timer(&local->dynamic_ps_timer, jiffies + in ieee80211_dynamic_ps_enable_work()
1576 local->hw.conf.dynamic_ps_timeout)); in ieee80211_dynamic_ps_enable_work()
1585 spin_lock_irqsave(&local->queue_stop_reason_lock, flags); in ieee80211_dynamic_ps_enable_work()
1586 for (q = 0; q < local->hw.queues; q++) { in ieee80211_dynamic_ps_enable_work()
1587 if (local->queue_stop_reasons[q]) { in ieee80211_dynamic_ps_enable_work()
1588 spin_unlock_irqrestore(&local->queue_stop_reason_lock, in ieee80211_dynamic_ps_enable_work()
1590 mod_timer(&local->dynamic_ps_timer, jiffies + in ieee80211_dynamic_ps_enable_work()
1592 local->hw.conf.dynamic_ps_timeout)); in ieee80211_dynamic_ps_enable_work()
1596 spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags); in ieee80211_dynamic_ps_enable_work()
1599 if ((local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) && in ieee80211_dynamic_ps_enable_work()
1601 if (drv_tx_frames_pending(local)) { in ieee80211_dynamic_ps_enable_work()
1602 mod_timer(&local->dynamic_ps_timer, jiffies + in ieee80211_dynamic_ps_enable_work()
1604 local->hw.conf.dynamic_ps_timeout)); in ieee80211_dynamic_ps_enable_work()
1606 ieee80211_send_nullfunc(local, sdata, 1); in ieee80211_dynamic_ps_enable_work()
1608 ieee80211_flush_queues(local, sdata, false); in ieee80211_dynamic_ps_enable_work()
1612 if (!((local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) && in ieee80211_dynamic_ps_enable_work()
1613 (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK)) || in ieee80211_dynamic_ps_enable_work()
1616 local->hw.conf.flags |= IEEE80211_CONF_PS; in ieee80211_dynamic_ps_enable_work()
1617 ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS); in ieee80211_dynamic_ps_enable_work()
1623 struct ieee80211_local *local = (void *) data; in ieee80211_dynamic_ps_timer() local
1625 ieee80211_queue_work(&local->hw, &local->dynamic_ps_enable_work); in ieee80211_dynamic_ps_timer()
1637 mutex_lock(&sdata->local->mtx); in ieee80211_dfs_cac_timer_work()
1644 mutex_unlock(&sdata->local->mtx); in ieee80211_dfs_cac_timer_work()
1650 struct ieee80211_local *local = sdata->local; in __ieee80211_sta_handle_tspec_ac_params() local
1655 if (local->hw.queues < IEEE80211_NUM_ACS) in __ieee80211_sta_handle_tspec_ac_params()
1677 if (drv_conf_tx(local, sdata, ac, &sdata->tx_conf[ac])) in __ieee80211_sta_handle_tspec_ac_params()
1702 if (drv_conf_tx(local, sdata, ac, in __ieee80211_sta_handle_tspec_ac_params()
1737 static bool ieee80211_sta_wmm_params(struct ieee80211_local *local, in ieee80211_sta_wmm_params() argument
1748 if (!local->ops->conf_tx) in ieee80211_sta_wmm_params()
1751 if (local->hw.queues < IEEE80211_NUM_ACS) in ieee80211_sta_wmm_params()
1827 drv_conf_tx(local, sdata, queue, &params)) in ieee80211_sta_wmm_params()
1840 lockdep_assert_held(&sdata->local->mtx); in __ieee80211_stop_poll()
1843 ieee80211_run_deferred_scan(sdata->local); in __ieee80211_stop_poll()
1848 mutex_lock(&sdata->local->mtx); in ieee80211_stop_poll()
1850 mutex_unlock(&sdata->local->mtx); in ieee80211_stop_poll()
1897 struct ieee80211_local *local = sdata->local; in ieee80211_set_associated() local
1937 ieee80211_led_assoc(local, 1); in ieee80211_set_associated()
1967 mutex_lock(&local->iflist_mtx); in ieee80211_set_associated()
1968 ieee80211_recalc_ps(local, -1); in ieee80211_set_associated()
1969 mutex_unlock(&local->iflist_mtx); in ieee80211_set_associated()
1982 struct ieee80211_local *local = sdata->local; in ieee80211_set_disassoc() local
2003 if (local->hw.conf.flags & IEEE80211_CONF_PS) { in ieee80211_set_disassoc()
2004 local->hw.conf.flags &= ~IEEE80211_CONF_PS; in ieee80211_set_disassoc()
2005 ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS); in ieee80211_set_disassoc()
2007 local->ps_sdata = NULL; in ieee80211_set_disassoc()
2022 ieee80211_flush_queues(local, sdata, true); in ieee80211_set_disassoc()
2031 ieee80211_flush_queues(local, sdata, false); in ieee80211_set_disassoc()
2042 ieee80211_led_assoc(local, 0); in ieee80211_set_disassoc()
2058 del_timer_sync(&local->dynamic_ps_timer); in ieee80211_set_disassoc()
2059 cancel_work_sync(&local->dynamic_ps_enable_work); in ieee80211_set_disassoc()
2086 mutex_lock(&local->mtx); in ieee80211_set_disassoc()
2093 ieee80211_wake_vif_queues(local, sdata, in ieee80211_set_disassoc()
2097 mutex_unlock(&local->mtx); in ieee80211_set_disassoc()
2126 struct ieee80211_local *local = sdata->local; in ieee80211_reset_ap_probe() local
2128 mutex_lock(&local->mtx); in ieee80211_reset_ap_probe()
2134 mutex_lock(&local->iflist_mtx); in ieee80211_reset_ap_probe()
2135 ieee80211_recalc_ps(local, -1); in ieee80211_reset_ap_probe()
2136 mutex_unlock(&local->iflist_mtx); in ieee80211_reset_ap_probe()
2138 if (sdata->local->hw.flags & IEEE80211_HW_CONNECTION_MONITOR) in ieee80211_reset_ap_probe()
2152 mutex_unlock(&local->mtx); in ieee80211_reset_ap_probe()
2204 ieee80211_queue_work(&sdata->local->hw, &sdata->work); in ieee80211_sta_tx_notify()
2236 if (sdata->local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) { in ieee80211_mgd_probe_ap_send()
2238 ieee80211_send_nullfunc(sdata->local, sdata, 0); in ieee80211_mgd_probe_ap_send()
2274 mutex_lock(&sdata->local->mtx); in ieee80211_mgd_probe_ap()
2276 if (sdata->local->tmp_channel || sdata->local->scanning) { in ieee80211_mgd_probe_ap()
2277 mutex_unlock(&sdata->local->mtx); in ieee80211_mgd_probe_ap()
2305 mutex_unlock(&sdata->local->mtx); in ieee80211_mgd_probe_ap()
2310 mutex_lock(&sdata->local->iflist_mtx); in ieee80211_mgd_probe_ap()
2311 ieee80211_recalc_ps(sdata->local, -1); in ieee80211_mgd_probe_ap()
2312 mutex_unlock(&sdata->local->iflist_mtx); in ieee80211_mgd_probe_ap()
2376 drv_event_callback(sdata->local, sdata, &event); in ieee80211_report_disconnect()
2381 struct ieee80211_local *local = sdata->local; in __ieee80211_disconnect() local
2394 mutex_lock(&local->mtx); in __ieee80211_disconnect()
2398 ieee80211_wake_vif_queues(local, sdata, in __ieee80211_disconnect()
2402 mutex_unlock(&local->mtx); in __ieee80211_disconnect()
2447 struct ieee80211_hw *hw = &sdata->local->hw; in ieee80211_beacon_loss()
2459 struct ieee80211_hw *hw = &sdata->local->hw; in ieee80211_connection_loss()
2488 mutex_lock(&sdata->local->mtx); in ieee80211_destroy_auth_data()
2490 mutex_unlock(&sdata->local->mtx); in ieee80211_destroy_auth_data()
2493 cfg80211_put_bss(sdata->local->hw.wiphy, auth_data->bss); in ieee80211_destroy_auth_data()
2501 struct ieee80211_local *local = sdata->local; in ieee80211_auth_challenge() local
2512 drv_mgd_prepare_tx(sdata->local, sdata); in ieee80211_auth_challenge()
2513 if (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) in ieee80211_auth_challenge()
2568 drv_event_callback(sdata->local, sdata, &event); in ieee80211_rx_mgmt_auth()
2592 drv_event_callback(sdata->local, sdata, &event); in ieee80211_rx_mgmt_auth()
2610 mutex_lock(&sdata->local->sta_mtx); in ieee80211_rx_mgmt_auth()
2620 mutex_unlock(&sdata->local->sta_mtx); in ieee80211_rx_mgmt_auth()
2625 mutex_unlock(&sdata->local->sta_mtx); in ieee80211_rx_mgmt_auth()
2810 mutex_lock(&sdata->local->mtx); in ieee80211_destroy_assoc_data()
2812 mutex_unlock(&sdata->local->mtx); in ieee80211_destroy_assoc_data()
2824 struct ieee80211_local *local = sdata->local; in ieee80211_assoc_success() local
2952 mutex_lock(&sdata->local->sta_mtx); in ieee80211_assoc_success()
2959 mutex_unlock(&sdata->local->sta_mtx); in ieee80211_assoc_success()
2964 sband = local->hw.wiphy->bands[ieee80211_get_sdata_band(sdata)]; in ieee80211_assoc_success()
3006 sta->sta.wme = elems.wmm_param && local->hw.queues >= IEEE80211_NUM_ACS; in ieee80211_assoc_success()
3016 mutex_unlock(&sdata->local->sta_mtx); in ieee80211_assoc_success()
3021 mutex_unlock(&sdata->local->sta_mtx); in ieee80211_assoc_success()
3032 ieee80211_sta_wmm_params(local, sdata, elems.wmm_param, in ieee80211_assoc_success()
3049 ieee80211_send_4addr_nullfunc(local, sdata); in ieee80211_assoc_success()
3133 drv_event_callback(sdata->local, sdata, &event); in ieee80211_rx_mgmt_assoc_resp()
3142 drv_event_callback(sdata->local, sdata, &event); in ieee80211_rx_mgmt_assoc_resp()
3167 struct ieee80211_local *local = sdata->local; in ieee80211_rx_bss_info() local
3173 channel = ieee80211_get_channel(local->hw.wiphy, rx_status->freq); in ieee80211_rx_bss_info()
3177 bss = ieee80211_bss_info_update(local, rx_status, mgmt, len, elems, in ieee80211_rx_bss_info()
3181 ieee80211_rx_bss_put(local, bss); in ieee80211_rx_bss_info()
3258 struct ieee80211_local *local = sdata->local; in ieee80211_rx_mgmt_beacon() local
3302 if (local->hw.flags & IEEE80211_HW_TIMING_BEACON_ONLY) { in ieee80211_rx_mgmt_beacon()
3357 drv_event_callback(local, sdata, &event); in ieee80211_rx_mgmt_beacon()
3363 drv_event_callback(local, sdata, &event); in ieee80211_rx_mgmt_beacon()
3408 if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) { in ieee80211_rx_mgmt_beacon()
3413 if (local->hw.conf.dynamic_ps_timeout > 0) { in ieee80211_rx_mgmt_beacon()
3414 if (local->hw.conf.flags & IEEE80211_CONF_PS) { in ieee80211_rx_mgmt_beacon()
3415 local->hw.conf.flags &= ~IEEE80211_CONF_PS; in ieee80211_rx_mgmt_beacon()
3416 ieee80211_hw_config(local, in ieee80211_rx_mgmt_beacon()
3419 ieee80211_send_nullfunc(local, sdata, 0); in ieee80211_rx_mgmt_beacon()
3420 } else if (!local->pspolling && sdata->u.mgd.powersave) { in ieee80211_rx_mgmt_beacon()
3421 local->pspolling = true; in ieee80211_rx_mgmt_beacon()
3431 ieee80211_send_pspoll(local, sdata); in ieee80211_rx_mgmt_beacon()
3476 if (local->hw.flags & IEEE80211_HW_TIMING_BEACON_ONLY) { in ieee80211_rx_mgmt_beacon()
3500 ieee80211_sta_wmm_params(local, sdata, elems.wmm_param, in ieee80211_rx_mgmt_beacon()
3518 mutex_lock(&local->iflist_mtx); in ieee80211_rx_mgmt_beacon()
3519 ieee80211_recalc_ps(local, -1); in ieee80211_rx_mgmt_beacon()
3520 mutex_unlock(&local->iflist_mtx); in ieee80211_rx_mgmt_beacon()
3535 mutex_lock(&local->sta_mtx); in ieee80211_rx_mgmt_beacon()
3541 mutex_unlock(&local->sta_mtx); in ieee80211_rx_mgmt_beacon()
3554 mutex_unlock(&local->sta_mtx); in ieee80211_rx_mgmt_beacon()
3654 ieee80211_queue_work(&sdata->local->hw, &sdata->work); in ieee80211_sta_timer()
3671 struct ieee80211_local *local = sdata->local; in ieee80211_probe_auth() local
3691 cfg80211_unlink_bss(local->hw.wiphy, auth_data->bss); in ieee80211_probe_auth()
3696 drv_mgd_prepare_tx(local, sdata); in ieee80211_probe_auth()
3714 if (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) in ieee80211_probe_auth()
3764 struct ieee80211_local *local = sdata->local; in ieee80211_do_assoc() local
3777 cfg80211_unlink_bss(local->hw.wiphy, assoc_data->bss); in ieee80211_do_assoc()
3787 if (!(local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS)) { in ieee80211_do_assoc()
3805 struct ieee80211_local *local = sdata->local; in ieee80211_mgd_conn_tx_status() local
3811 ieee80211_queue_work(&local->hw, &sdata->work); in ieee80211_mgd_conn_tx_status()
3816 struct ieee80211_local *local = sdata->local; in ieee80211_sta_work() local
3871 drv_event_callback(sdata->local, sdata, &event); in ieee80211_sta_work()
3889 drv_event_callback(sdata->local, sdata, &event); in ieee80211_sta_work()
3901 if (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) in ieee80211_sta_work()
3926 else if (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) { in ieee80211_sta_work()
3943 wiphy_debug(local->hw.wiphy, in ieee80211_sta_work()
3967 ieee80211_queue_work(&sdata->local->hw, in ieee80211_sta_bcn_mon_timer()
3976 struct ieee80211_local *local = sdata->local; in ieee80211_sta_conn_mon_timer() local
3981 ieee80211_queue_work(&local->hw, &ifmgd->monitor_work); in ieee80211_sta_conn_mon_timer()
4001 flags = sdata->local->hw.flags; in ieee80211_restart_sta_timer()
4003 ieee80211_queue_work(&sdata->local->hw, in ieee80211_restart_sta_timer()
4055 if (ifmgd->associated && !sdata->local->wowlan) { in ieee80211_mgd_quiesce()
4121 ifmgd->uapsd_queues = sdata->local->hw.uapsd_queues; in ieee80211_sta_setup_sdata()
4122 ifmgd->uapsd_max_sp_len = sdata->local->hw.uapsd_max_sp_len; in ieee80211_sta_setup_sdata()
4125 if (sdata->local->hw.wiphy->features & NL80211_FEATURE_DYNAMIC_SMPS) in ieee80211_sta_setup_sdata()
4137 void ieee80211_mlme_notify_scan_completed(struct ieee80211_local *local) in ieee80211_mlme_notify_scan_completed() argument
4143 list_for_each_entry_rcu(sdata, &local->interfaces, list) { in ieee80211_mlme_notify_scan_completed()
4154 struct ieee80211_local *local = in ieee80211_max_network_latency() local
4158 mutex_lock(&local->iflist_mtx); in ieee80211_max_network_latency()
4159 ieee80211_recalc_ps(local, latency_usec); in ieee80211_max_network_latency()
4160 mutex_unlock(&local->iflist_mtx); in ieee80211_max_network_latency()
4212 struct ieee80211_local *local = sdata->local; in ieee80211_prep_channel() local
4221 sband = local->hw.wiphy->bands[cbss->channel->band]; in ieee80211_prep_channel()
4276 local->rx_chains); in ieee80211_prep_channel()
4283 mutex_lock(&local->mtx); in ieee80211_prep_channel()
4303 mutex_unlock(&local->mtx); in ieee80211_prep_channel()
4310 struct ieee80211_local *local = sdata->local; in ieee80211_prep_connection() local
4319 sband = local->hw.wiphy->bands[cbss->channel->band]; in ieee80211_prep_connection()
4347 sta_info_free(local, new_sta); in ieee80211_prep_connection()
4365 sta_info_free(local, new_sta); in ieee80211_prep_connection()
4420 } else if (!(local->hw.flags & in ieee80211_prep_connection()
4455 if (local->scanning) in ieee80211_prep_connection()
4456 ieee80211_scan_cancel(local); in ieee80211_prep_connection()
4465 struct ieee80211_local *local = sdata->local; in ieee80211_mgd_auth() local
4478 if (IS_ERR(local->wep_tx_tfm)) in ieee80211_mgd_auth()
4564 cfg80211_ref_bss(local->hw.wiphy, auth_data->bss); in ieee80211_mgd_auth()
4617 struct ieee80211_local *local = sdata->local; in ieee80211_mgd_assoc() local
4676 (local->hw.queues >= IEEE80211_NUM_ACS); in ieee80211_mgd_assoc()
4738 sband = local->hw.wiphy->bands[req->bss->channel->band]; in ieee80211_mgd_assoc()
4740 local->hw.queues < IEEE80211_NUM_ACS || !bss->wmm_used || in ieee80211_mgd_assoc()
4751 local->hw.queues < IEEE80211_NUM_ACS || !bss->wmm_used || in ieee80211_mgd_assoc()
4803 (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK), in ieee80211_mgd_assoc()
4839 sdata->encrypt_headroom = ieee80211_cs_headroom(local, &req->crypto, in ieee80211_mgd_assoc()
4855 if (sdata->local->hw.flags & IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC && in ieee80211_mgd_assoc()
4882 if (local->hw.flags & IEEE80211_HW_TIMING_BEACON_ONLY) { in ieee80211_mgd_assoc()
4934 drv_mgd_prepare_tx(sdata->local, sdata); in ieee80211_mgd_deauth()
4954 drv_mgd_prepare_tx(sdata->local, sdata); in ieee80211_mgd_deauth()
5066 trace_api_cqm_beacon_loss_notify(sdata->local, sdata); in ieee80211_cqm_beacon_loss_notify()