Lines Matching refs:sdata

15 static inline bool check_sdata_in_driver(struct ieee80211_sub_if_data *sdata)  in check_sdata_in_driver()  argument
17 return !WARN(!(sdata->flags & IEEE80211_SDATA_IN_DRIVER), in check_sdata_in_driver()
19 sdata->dev ? sdata->dev->name : sdata->name, sdata->flags); in check_sdata_in_driver()
23 get_bss_sdata(struct ieee80211_sub_if_data *sdata) in get_bss_sdata() argument
25 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) in get_bss_sdata()
26 sdata = container_of(sdata->bss, struct ieee80211_sub_if_data, in get_bss_sdata()
29 return sdata; in get_bss_sdata()
43 trace_drv_sync_rx_queues(local, sta->sdata, &sta->sta); in drv_sync_rx_queues()
49 static inline void drv_get_et_strings(struct ieee80211_sub_if_data *sdata, in drv_get_et_strings() argument
52 struct ieee80211_local *local = sdata->local; in drv_get_et_strings()
55 local->ops->get_et_strings(&local->hw, &sdata->vif, sset, data); in drv_get_et_strings()
60 static inline void drv_get_et_stats(struct ieee80211_sub_if_data *sdata, in drv_get_et_stats() argument
64 struct ieee80211_local *local = sdata->local; in drv_get_et_stats()
67 local->ops->get_et_stats(&local->hw, &sdata->vif, stats, data); in drv_get_et_stats()
72 static inline int drv_get_et_sset_count(struct ieee80211_sub_if_data *sdata, in drv_get_et_sset_count() argument
75 struct ieee80211_local *local = sdata->local; in drv_get_et_sset_count()
79 rv = local->ops->get_et_sset_count(&local->hw, &sdata->vif, in drv_get_et_sset_count()
130 struct ieee80211_sub_if_data *sdata);
133 struct ieee80211_sub_if_data *sdata,
137 struct ieee80211_sub_if_data *sdata);
152 struct ieee80211_sub_if_data *sdata, in drv_bss_info_changed() argument
160 sdata->vif.type != NL80211_IFTYPE_AP && in drv_bss_info_changed()
161 sdata->vif.type != NL80211_IFTYPE_ADHOC && in drv_bss_info_changed()
162 sdata->vif.type != NL80211_IFTYPE_MESH_POINT && in drv_bss_info_changed()
163 sdata->vif.type != NL80211_IFTYPE_OCB)) in drv_bss_info_changed()
166 if (WARN_ON_ONCE(sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE || in drv_bss_info_changed()
167 sdata->vif.type == NL80211_IFTYPE_NAN || in drv_bss_info_changed()
168 (sdata->vif.type == NL80211_IFTYPE_MONITOR && in drv_bss_info_changed()
169 !sdata->vif.mu_mimo_owner && in drv_bss_info_changed()
173 if (!check_sdata_in_driver(sdata)) in drv_bss_info_changed()
176 trace_drv_bss_info_changed(local, sdata, info, changed); in drv_bss_info_changed()
178 local->ops->bss_info_changed(&local->hw, &sdata->vif, info, changed); in drv_bss_info_changed()
212 struct ieee80211_sub_if_data *sdata, in drv_config_iface_filter() argument
218 trace_drv_config_iface_filter(local, sdata, filter_flags, in drv_config_iface_filter()
221 local->ops->config_iface_filter(&local->hw, &sdata->vif, in drv_config_iface_filter()
240 struct ieee80211_sub_if_data *sdata, in drv_set_key() argument
248 sdata = get_bss_sdata(sdata); in drv_set_key()
249 if (!check_sdata_in_driver(sdata)) in drv_set_key()
252 trace_drv_set_key(local, cmd, sdata, sta, key); in drv_set_key()
253 ret = local->ops->set_key(&local->hw, cmd, &sdata->vif, sta, key); in drv_set_key()
259 struct ieee80211_sub_if_data *sdata, in drv_update_tkip_key() argument
269 sdata = get_bss_sdata(sdata); in drv_update_tkip_key()
270 if (!check_sdata_in_driver(sdata)) in drv_update_tkip_key()
273 trace_drv_update_tkip_key(local, sdata, conf, ista, iv32); in drv_update_tkip_key()
275 local->ops->update_tkip_key(&local->hw, &sdata->vif, conf, in drv_update_tkip_key()
281 struct ieee80211_sub_if_data *sdata, in drv_hw_scan() argument
288 if (!check_sdata_in_driver(sdata)) in drv_hw_scan()
291 trace_drv_hw_scan(local, sdata); in drv_hw_scan()
292 ret = local->ops->hw_scan(&local->hw, &sdata->vif, req); in drv_hw_scan()
298 struct ieee80211_sub_if_data *sdata) in drv_cancel_hw_scan() argument
302 if (!check_sdata_in_driver(sdata)) in drv_cancel_hw_scan()
305 trace_drv_cancel_hw_scan(local, sdata); in drv_cancel_hw_scan()
306 local->ops->cancel_hw_scan(&local->hw, &sdata->vif); in drv_cancel_hw_scan()
312 struct ieee80211_sub_if_data *sdata, in drv_sched_scan_start() argument
320 if (!check_sdata_in_driver(sdata)) in drv_sched_scan_start()
323 trace_drv_sched_scan_start(local, sdata); in drv_sched_scan_start()
324 ret = local->ops->sched_scan_start(&local->hw, &sdata->vif, in drv_sched_scan_start()
331 struct ieee80211_sub_if_data *sdata) in drv_sched_scan_stop() argument
337 if (!check_sdata_in_driver(sdata)) in drv_sched_scan_stop()
340 trace_drv_sched_scan_stop(local, sdata); in drv_sched_scan_stop()
341 ret = local->ops->sched_scan_stop(&local->hw, &sdata->vif); in drv_sched_scan_stop()
348 struct ieee80211_sub_if_data *sdata, in drv_sw_scan_start() argument
353 trace_drv_sw_scan_start(local, sdata, mac_addr); in drv_sw_scan_start()
355 local->ops->sw_scan_start(&local->hw, &sdata->vif, mac_addr); in drv_sw_scan_start()
360 struct ieee80211_sub_if_data *sdata) in drv_sw_scan_complete() argument
364 trace_drv_sw_scan_complete(local, sdata); in drv_sw_scan_complete()
366 local->ops->sw_scan_complete(&local->hw, &sdata->vif); in drv_sw_scan_complete()
438 struct ieee80211_sub_if_data *sdata, in drv_sta_notify() argument
442 sdata = get_bss_sdata(sdata); in drv_sta_notify()
443 if (!check_sdata_in_driver(sdata)) in drv_sta_notify()
446 trace_drv_sta_notify(local, sdata, cmd, sta); in drv_sta_notify()
448 local->ops->sta_notify(&local->hw, &sdata->vif, cmd, sta); in drv_sta_notify()
453 struct ieee80211_sub_if_data *sdata, in drv_sta_add() argument
460 sdata = get_bss_sdata(sdata); in drv_sta_add()
461 if (!check_sdata_in_driver(sdata)) in drv_sta_add()
464 trace_drv_sta_add(local, sdata, sta); in drv_sta_add()
466 ret = local->ops->sta_add(&local->hw, &sdata->vif, sta); in drv_sta_add()
474 struct ieee80211_sub_if_data *sdata, in drv_sta_remove() argument
479 sdata = get_bss_sdata(sdata); in drv_sta_remove()
480 if (!check_sdata_in_driver(sdata)) in drv_sta_remove()
483 trace_drv_sta_remove(local, sdata, sta); in drv_sta_remove()
485 local->ops->sta_remove(&local->hw, &sdata->vif, sta); in drv_sta_remove()
492 struct ieee80211_sub_if_data *sdata, in drv_sta_add_debugfs() argument
498 sdata = get_bss_sdata(sdata); in drv_sta_add_debugfs()
499 if (!check_sdata_in_driver(sdata)) in drv_sta_add_debugfs()
503 local->ops->sta_add_debugfs(&local->hw, &sdata->vif, in drv_sta_add_debugfs()
509 struct ieee80211_sub_if_data *sdata, in drv_sta_pre_rcu_remove() argument
514 sdata = get_bss_sdata(sdata); in drv_sta_pre_rcu_remove()
515 if (!check_sdata_in_driver(sdata)) in drv_sta_pre_rcu_remove()
518 trace_drv_sta_pre_rcu_remove(local, sdata, &sta->sta); in drv_sta_pre_rcu_remove()
520 local->ops->sta_pre_rcu_remove(&local->hw, &sdata->vif, in drv_sta_pre_rcu_remove()
527 struct ieee80211_sub_if_data *sdata,
534 struct ieee80211_sub_if_data *sdata,
538 struct ieee80211_sub_if_data *sdata,
542 struct ieee80211_sub_if_data *sdata, in drv_sta_rate_tbl_update() argument
545 sdata = get_bss_sdata(sdata); in drv_sta_rate_tbl_update()
546 if (!check_sdata_in_driver(sdata)) in drv_sta_rate_tbl_update()
549 trace_drv_sta_rate_tbl_update(local, sdata, sta); in drv_sta_rate_tbl_update()
551 local->ops->sta_rate_tbl_update(&local->hw, &sdata->vif, sta); in drv_sta_rate_tbl_update()
557 struct ieee80211_sub_if_data *sdata, in drv_sta_statistics() argument
561 sdata = get_bss_sdata(sdata); in drv_sta_statistics()
562 if (!check_sdata_in_driver(sdata)) in drv_sta_statistics()
565 trace_drv_sta_statistics(local, sdata, sta); in drv_sta_statistics()
567 local->ops->sta_statistics(&local->hw, &sdata->vif, sta, sinfo); in drv_sta_statistics()
572 struct ieee80211_sub_if_data *sdata, u16 ac,
576 struct ieee80211_sub_if_data *sdata);
578 struct ieee80211_sub_if_data *sdata,
581 struct ieee80211_sub_if_data *sdata,
584 struct ieee80211_sub_if_data *sdata);
600 struct ieee80211_sub_if_data *sdata,
627 struct ieee80211_sub_if_data *sdata, in drv_flush() argument
630 struct ieee80211_vif *vif = sdata ? &sdata->vif : NULL; in drv_flush()
634 if (sdata && !check_sdata_in_driver(sdata)) in drv_flush()
644 struct ieee80211_sub_if_data *sdata, in drv_channel_switch() argument
649 trace_drv_channel_switch(local, sdata, ch_switch); in drv_channel_switch()
650 local->ops->channel_switch(&local->hw, &sdata->vif, ch_switch); in drv_channel_switch()
678 struct ieee80211_sub_if_data *sdata, in drv_remain_on_channel() argument
687 trace_drv_remain_on_channel(local, sdata, chan, duration, type); in drv_remain_on_channel()
688 ret = local->ops->remain_on_channel(&local->hw, &sdata->vif, in drv_remain_on_channel()
697 struct ieee80211_sub_if_data *sdata) in drv_cancel_remain_on_channel() argument
703 trace_drv_cancel_remain_on_channel(local, sdata); in drv_cancel_remain_on_channel()
704 ret = local->ops->cancel_remain_on_channel(&local->hw, &sdata->vif); in drv_cancel_remain_on_channel()
751 struct ieee80211_sub_if_data *sdata, in drv_set_bitrate_mask() argument
758 if (!check_sdata_in_driver(sdata)) in drv_set_bitrate_mask()
761 trace_drv_set_bitrate_mask(local, sdata, mask); in drv_set_bitrate_mask()
764 &sdata->vif, mask); in drv_set_bitrate_mask()
771 struct ieee80211_sub_if_data *sdata, in drv_set_rekey_data() argument
774 if (!check_sdata_in_driver(sdata)) in drv_set_rekey_data()
777 trace_drv_set_rekey_data(local, sdata, data); in drv_set_rekey_data()
779 local->ops->set_rekey_data(&local->hw, &sdata->vif, data); in drv_set_rekey_data()
784 struct ieee80211_sub_if_data *sdata, in drv_event_callback() argument
787 trace_drv_event_callback(local, sdata, event); in drv_event_callback()
789 local->ops->event_callback(&local->hw, &sdata->vif, event); in drv_event_callback()
824 struct ieee80211_sub_if_data *sdata, in drv_mgd_prepare_tx() argument
829 if (!check_sdata_in_driver(sdata)) in drv_mgd_prepare_tx()
831 WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION); in drv_mgd_prepare_tx()
833 trace_drv_mgd_prepare_tx(local, sdata, duration); in drv_mgd_prepare_tx()
835 local->ops->mgd_prepare_tx(&local->hw, &sdata->vif, duration); in drv_mgd_prepare_tx()
841 struct ieee80211_sub_if_data *sdata) in drv_mgd_protect_tdls_discover() argument
845 if (!check_sdata_in_driver(sdata)) in drv_mgd_protect_tdls_discover()
847 WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION); in drv_mgd_protect_tdls_discover()
849 trace_drv_mgd_protect_tdls_discover(local, sdata); in drv_mgd_protect_tdls_discover()
851 local->ops->mgd_protect_tdls_discover(&local->hw, &sdata->vif); in drv_mgd_protect_tdls_discover()
902 struct ieee80211_sub_if_data *sdata, in drv_assign_vif_chanctx() argument
907 if (!check_sdata_in_driver(sdata)) in drv_assign_vif_chanctx()
910 trace_drv_assign_vif_chanctx(local, sdata, ctx); in drv_assign_vif_chanctx()
914 &sdata->vif, in drv_assign_vif_chanctx()
923 struct ieee80211_sub_if_data *sdata, in drv_unassign_vif_chanctx() argument
928 if (!check_sdata_in_driver(sdata)) in drv_unassign_vif_chanctx()
931 trace_drv_unassign_vif_chanctx(local, sdata, ctx); in drv_unassign_vif_chanctx()
935 &sdata->vif, in drv_unassign_vif_chanctx()
946 struct ieee80211_sub_if_data *sdata) in drv_start_ap() argument
952 if (!check_sdata_in_driver(sdata)) in drv_start_ap()
955 trace_drv_start_ap(local, sdata, &sdata->vif.bss_conf); in drv_start_ap()
957 ret = local->ops->start_ap(&local->hw, &sdata->vif); in drv_start_ap()
963 struct ieee80211_sub_if_data *sdata) in drv_stop_ap() argument
965 if (!check_sdata_in_driver(sdata)) in drv_stop_ap()
968 trace_drv_stop_ap(local, sdata); in drv_stop_ap()
970 local->ops->stop_ap(&local->hw, &sdata->vif); in drv_stop_ap()
988 struct ieee80211_sub_if_data *sdata, in drv_set_default_unicast_key() argument
991 if (!check_sdata_in_driver(sdata)) in drv_set_default_unicast_key()
996 trace_drv_set_default_unicast_key(local, sdata, key_idx); in drv_set_default_unicast_key()
998 local->ops->set_default_unicast_key(&local->hw, &sdata->vif, in drv_set_default_unicast_key()
1005 struct ieee80211_sub_if_data *sdata, in drv_ipv6_addr_change() argument
1008 trace_drv_ipv6_addr_change(local, sdata); in drv_ipv6_addr_change()
1010 local->ops->ipv6_addr_change(&local->hw, &sdata->vif, idev); in drv_ipv6_addr_change()
1016 drv_channel_switch_beacon(struct ieee80211_sub_if_data *sdata, in drv_channel_switch_beacon() argument
1019 struct ieee80211_local *local = sdata->local; in drv_channel_switch_beacon()
1022 trace_drv_channel_switch_beacon(local, sdata, chandef); in drv_channel_switch_beacon()
1023 local->ops->channel_switch_beacon(&local->hw, &sdata->vif, in drv_channel_switch_beacon()
1029 drv_pre_channel_switch(struct ieee80211_sub_if_data *sdata, in drv_pre_channel_switch() argument
1032 struct ieee80211_local *local = sdata->local; in drv_pre_channel_switch()
1035 if (!check_sdata_in_driver(sdata)) in drv_pre_channel_switch()
1038 trace_drv_pre_channel_switch(local, sdata, ch_switch); in drv_pre_channel_switch()
1040 ret = local->ops->pre_channel_switch(&local->hw, &sdata->vif, in drv_pre_channel_switch()
1047 drv_post_channel_switch(struct ieee80211_sub_if_data *sdata) in drv_post_channel_switch() argument
1049 struct ieee80211_local *local = sdata->local; in drv_post_channel_switch()
1052 if (!check_sdata_in_driver(sdata)) in drv_post_channel_switch()
1055 trace_drv_post_channel_switch(local, sdata); in drv_post_channel_switch()
1057 ret = local->ops->post_channel_switch(&local->hw, &sdata->vif); in drv_post_channel_switch()
1063 drv_abort_channel_switch(struct ieee80211_sub_if_data *sdata) in drv_abort_channel_switch() argument
1065 struct ieee80211_local *local = sdata->local; in drv_abort_channel_switch()
1067 if (!check_sdata_in_driver(sdata)) in drv_abort_channel_switch()
1070 trace_drv_abort_channel_switch(local, sdata); in drv_abort_channel_switch()
1073 local->ops->abort_channel_switch(&local->hw, &sdata->vif); in drv_abort_channel_switch()
1077 drv_channel_switch_rx_beacon(struct ieee80211_sub_if_data *sdata, in drv_channel_switch_rx_beacon() argument
1080 struct ieee80211_local *local = sdata->local; in drv_channel_switch_rx_beacon()
1082 if (!check_sdata_in_driver(sdata)) in drv_channel_switch_rx_beacon()
1085 trace_drv_channel_switch_rx_beacon(local, sdata, ch_switch); in drv_channel_switch_rx_beacon()
1087 local->ops->channel_switch_rx_beacon(&local->hw, &sdata->vif, in drv_channel_switch_rx_beacon()
1092 struct ieee80211_sub_if_data *sdata) in drv_join_ibss() argument
1097 if (!check_sdata_in_driver(sdata)) in drv_join_ibss()
1100 trace_drv_join_ibss(local, sdata, &sdata->vif.bss_conf); in drv_join_ibss()
1102 ret = local->ops->join_ibss(&local->hw, &sdata->vif); in drv_join_ibss()
1108 struct ieee80211_sub_if_data *sdata) in drv_leave_ibss() argument
1111 if (!check_sdata_in_driver(sdata)) in drv_leave_ibss()
1114 trace_drv_leave_ibss(local, sdata); in drv_leave_ibss()
1116 local->ops->leave_ibss(&local->hw, &sdata->vif); in drv_leave_ibss()
1134 struct ieee80211_sub_if_data *sdata, int *dbm) in drv_get_txpower() argument
1141 ret = local->ops->get_txpower(&local->hw, &sdata->vif, dbm); in drv_get_txpower()
1142 trace_drv_get_txpower(local, sdata, *dbm, ret); in drv_get_txpower()
1149 struct ieee80211_sub_if_data *sdata, in drv_tdls_channel_switch() argument
1157 if (!check_sdata_in_driver(sdata)) in drv_tdls_channel_switch()
1163 trace_drv_tdls_channel_switch(local, sdata, sta, oper_class, chandef); in drv_tdls_channel_switch()
1164 ret = local->ops->tdls_channel_switch(&local->hw, &sdata->vif, sta, in drv_tdls_channel_switch()
1173 struct ieee80211_sub_if_data *sdata, in drv_tdls_cancel_channel_switch() argument
1177 if (!check_sdata_in_driver(sdata)) in drv_tdls_cancel_channel_switch()
1183 trace_drv_tdls_cancel_channel_switch(local, sdata, sta); in drv_tdls_cancel_channel_switch()
1184 local->ops->tdls_cancel_channel_switch(&local->hw, &sdata->vif, sta); in drv_tdls_cancel_channel_switch()
1190 struct ieee80211_sub_if_data *sdata, in drv_tdls_recv_channel_switch() argument
1193 trace_drv_tdls_recv_channel_switch(local, sdata, params); in drv_tdls_recv_channel_switch()
1195 local->ops->tdls_recv_channel_switch(&local->hw, &sdata->vif, in drv_tdls_recv_channel_switch()
1203 struct ieee80211_sub_if_data *sdata = vif_to_sdata(txq->txq.vif); in drv_wake_tx_queue() local
1208 if (!check_sdata_in_driver(sdata)) in drv_wake_tx_queue()
1211 trace_drv_wake_tx_queue(local, sdata, txq); in drv_wake_tx_queue()
1234 struct ieee80211_sub_if_data *sdata, in drv_get_ftm_responder_stats() argument
1241 &sdata->vif, in drv_get_ftm_responder_stats()
1243 trace_drv_get_ftm_responder_stats(local, sdata, ftm_stats); in drv_get_ftm_responder_stats()
1249 struct ieee80211_sub_if_data *sdata, in drv_start_pmsr() argument
1255 if (!check_sdata_in_driver(sdata)) in drv_start_pmsr()
1258 trace_drv_start_pmsr(local, sdata); in drv_start_pmsr()
1261 ret = local->ops->start_pmsr(&local->hw, &sdata->vif, request); in drv_start_pmsr()
1268 struct ieee80211_sub_if_data *sdata, in drv_abort_pmsr() argument
1271 trace_drv_abort_pmsr(local, sdata); in drv_abort_pmsr()
1274 if (!check_sdata_in_driver(sdata)) in drv_abort_pmsr()
1278 local->ops->abort_pmsr(&local->hw, &sdata->vif, request); in drv_abort_pmsr()
1283 struct ieee80211_sub_if_data *sdata, in drv_start_nan() argument
1289 check_sdata_in_driver(sdata); in drv_start_nan()
1291 trace_drv_start_nan(local, sdata, conf); in drv_start_nan()
1292 ret = local->ops->start_nan(&local->hw, &sdata->vif, conf); in drv_start_nan()
1298 struct ieee80211_sub_if_data *sdata) in drv_stop_nan() argument
1301 check_sdata_in_driver(sdata); in drv_stop_nan()
1303 trace_drv_stop_nan(local, sdata); in drv_stop_nan()
1304 local->ops->stop_nan(&local->hw, &sdata->vif); in drv_stop_nan()
1309 struct ieee80211_sub_if_data *sdata, in drv_nan_change_conf() argument
1316 check_sdata_in_driver(sdata); in drv_nan_change_conf()
1321 trace_drv_nan_change_conf(local, sdata, conf, changes); in drv_nan_change_conf()
1322 ret = local->ops->nan_change_conf(&local->hw, &sdata->vif, conf, in drv_nan_change_conf()
1330 struct ieee80211_sub_if_data *sdata, in drv_add_nan_func() argument
1336 check_sdata_in_driver(sdata); in drv_add_nan_func()
1341 trace_drv_add_nan_func(local, sdata, nan_func); in drv_add_nan_func()
1342 ret = local->ops->add_nan_func(&local->hw, &sdata->vif, nan_func); in drv_add_nan_func()
1349 struct ieee80211_sub_if_data *sdata, in drv_del_nan_func() argument
1353 check_sdata_in_driver(sdata); in drv_del_nan_func()
1355 trace_drv_del_nan_func(local, sdata, instance_id); in drv_del_nan_func()
1357 local->ops->del_nan_func(&local->hw, &sdata->vif, instance_id); in drv_del_nan_func()