Lines Matching refs:sdata
58 struct ieee80211_sub_if_data *sdata) in drv_add_interface() argument
65 if (WARN_ON(sdata->vif.type == NL80211_IFTYPE_AP_VLAN || in drv_add_interface()
66 (sdata->vif.type == NL80211_IFTYPE_MONITOR && in drv_add_interface()
69 !(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE)))) in drv_add_interface()
72 trace_drv_add_interface(local, sdata); in drv_add_interface()
73 ret = local->ops->add_interface(&local->hw, &sdata->vif); in drv_add_interface()
79 if (!(sdata->flags & IEEE80211_SDATA_IN_DRIVER)) { in drv_add_interface()
80 sdata->flags |= IEEE80211_SDATA_IN_DRIVER; in drv_add_interface()
82 drv_vif_add_debugfs(local, sdata); in drv_add_interface()
84 ieee80211_link_debugfs_drv_add(&sdata->deflink); in drv_add_interface()
91 struct ieee80211_sub_if_data *sdata, in drv_change_interface() argument
99 if (!check_sdata_in_driver(sdata)) in drv_change_interface()
102 trace_drv_change_interface(local, sdata, type, p2p); in drv_change_interface()
103 ret = local->ops->change_interface(&local->hw, &sdata->vif, type, p2p); in drv_change_interface()
109 struct ieee80211_sub_if_data *sdata) in drv_remove_interface() argument
114 if (!check_sdata_in_driver(sdata)) in drv_remove_interface()
117 sdata->flags &= ~IEEE80211_SDATA_IN_DRIVER; in drv_remove_interface()
124 if (sdata != rcu_access_pointer(local->monitor_sdata)) in drv_remove_interface()
125 ieee80211_debugfs_recreate_netdev(sdata, in drv_remove_interface()
126 sdata->vif.valid_links); in drv_remove_interface()
128 trace_drv_remove_interface(local, sdata); in drv_remove_interface()
129 local->ops->remove_interface(&local->hw, &sdata->vif); in drv_remove_interface()
135 struct ieee80211_sub_if_data *sdata, in drv_sta_state() argument
145 sdata = get_bss_sdata(sdata); in drv_sta_state()
146 if (!check_sdata_in_driver(sdata)) in drv_sta_state()
149 trace_drv_sta_state(local, sdata, &sta->sta, old_state, new_state); in drv_sta_state()
151 ret = local->ops->sta_state(&local->hw, &sdata->vif, &sta->sta, in drv_sta_state()
155 ret = drv_sta_add(local, sdata, &sta->sta); in drv_sta_state()
159 drv_sta_rate_tbl_update(local, sdata, &sta->sta); in drv_sta_state()
163 drv_sta_remove(local, sdata, &sta->sta); in drv_sta_state()
171 struct ieee80211_sub_if_data *sdata, in drv_sta_set_txpwr() argument
179 sdata = get_bss_sdata(sdata); in drv_sta_set_txpwr()
180 if (!check_sdata_in_driver(sdata)) in drv_sta_set_txpwr()
183 trace_drv_sta_set_txpwr(local, sdata, &sta->sta); in drv_sta_set_txpwr()
185 ret = local->ops->sta_set_txpwr(&local->hw, &sdata->vif, in drv_sta_set_txpwr()
192 struct ieee80211_sub_if_data *sdata, in drv_link_sta_rc_update() argument
196 sdata = get_bss_sdata(sdata); in drv_link_sta_rc_update()
197 if (!check_sdata_in_driver(sdata)) in drv_link_sta_rc_update()
201 (sdata->vif.type != NL80211_IFTYPE_ADHOC && in drv_link_sta_rc_update()
202 sdata->vif.type != NL80211_IFTYPE_MESH_POINT)); in drv_link_sta_rc_update()
204 trace_drv_link_sta_rc_update(local, sdata, link_sta, changed); in drv_link_sta_rc_update()
206 local->ops->link_sta_rc_update(&local->hw, &sdata->vif, in drv_link_sta_rc_update()
216 struct ieee80211_sub_if_data *sdata = link->sdata; in drv_conf_tx() local
222 if (!check_sdata_in_driver(sdata)) in drv_conf_tx()
225 if (!ieee80211_vif_link_active(&sdata->vif, link->link_id)) in drv_conf_tx()
235 sdata->name, params->cw_min, params->cw_max); in drv_conf_tx()
239 trace_drv_conf_tx(local, sdata, link->link_id, ac, params); in drv_conf_tx()
241 ret = local->ops->conf_tx(&local->hw, &sdata->vif, in drv_conf_tx()
248 struct ieee80211_sub_if_data *sdata) in drv_get_tsf() argument
255 if (!check_sdata_in_driver(sdata)) in drv_get_tsf()
258 trace_drv_get_tsf(local, sdata); in drv_get_tsf()
260 ret = local->ops->get_tsf(&local->hw, &sdata->vif); in drv_get_tsf()
266 struct ieee80211_sub_if_data *sdata, in drv_set_tsf() argument
272 if (!check_sdata_in_driver(sdata)) in drv_set_tsf()
275 trace_drv_set_tsf(local, sdata, tsf); in drv_set_tsf()
277 local->ops->set_tsf(&local->hw, &sdata->vif, tsf); in drv_set_tsf()
282 struct ieee80211_sub_if_data *sdata, in drv_offset_tsf() argument
288 if (!check_sdata_in_driver(sdata)) in drv_offset_tsf()
291 trace_drv_offset_tsf(local, sdata, offset); in drv_offset_tsf()
293 local->ops->offset_tsf(&local->hw, &sdata->vif, offset); in drv_offset_tsf()
298 struct ieee80211_sub_if_data *sdata) in drv_reset_tsf() argument
303 if (!check_sdata_in_driver(sdata)) in drv_reset_tsf()
306 trace_drv_reset_tsf(local, sdata); in drv_reset_tsf()
308 local->ops->reset_tsf(&local->hw, &sdata->vif); in drv_reset_tsf()
313 struct ieee80211_sub_if_data *sdata, in drv_assign_vif_chanctx() argument
329 if (sdata->vif.type == NL80211_IFTYPE_MONITOR && in drv_assign_vif_chanctx()
334 if (!check_sdata_in_driver(sdata)) in drv_assign_vif_chanctx()
337 if (!ieee80211_vif_link_active(&sdata->vif, link_conf->link_id)) in drv_assign_vif_chanctx()
340 trace_drv_assign_vif_chanctx(local, sdata, link_conf, ctx); in drv_assign_vif_chanctx()
344 &sdata->vif, in drv_assign_vif_chanctx()
354 struct ieee80211_sub_if_data *sdata, in drv_unassign_vif_chanctx() argument
361 if (sdata->vif.type == NL80211_IFTYPE_MONITOR && in drv_unassign_vif_chanctx()
366 if (!check_sdata_in_driver(sdata)) in drv_unassign_vif_chanctx()
369 if (!ieee80211_vif_link_active(&sdata->vif, link_conf->link_id)) in drv_unassign_vif_chanctx()
372 trace_drv_unassign_vif_chanctx(local, sdata, link_conf, ctx); in drv_unassign_vif_chanctx()
376 &sdata->vif, in drv_unassign_vif_chanctx()
438 struct ieee80211_sub_if_data *sdata, in drv_ampdu_action() argument
446 sdata = get_bss_sdata(sdata); in drv_ampdu_action()
447 if (!check_sdata_in_driver(sdata)) in drv_ampdu_action()
450 trace_drv_ampdu_action(local, sdata, params); in drv_ampdu_action()
453 ret = local->ops->ampdu_action(&local->hw, &sdata->vif, params); in drv_ampdu_action()
461 struct ieee80211_sub_if_data *sdata, in drv_link_info_changed() argument
470 sdata->vif.type != NL80211_IFTYPE_AP && in drv_link_info_changed()
471 sdata->vif.type != NL80211_IFTYPE_ADHOC && in drv_link_info_changed()
472 sdata->vif.type != NL80211_IFTYPE_MESH_POINT && in drv_link_info_changed()
473 sdata->vif.type != NL80211_IFTYPE_OCB)) in drv_link_info_changed()
476 if (WARN_ON_ONCE(sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE || in drv_link_info_changed()
477 sdata->vif.type == NL80211_IFTYPE_NAN || in drv_link_info_changed()
478 (sdata->vif.type == NL80211_IFTYPE_MONITOR && in drv_link_info_changed()
479 !sdata->vif.bss_conf.mu_mimo_owner && in drv_link_info_changed()
483 if (!check_sdata_in_driver(sdata)) in drv_link_info_changed()
486 if (!ieee80211_vif_link_active(&sdata->vif, link_id)) in drv_link_info_changed()
489 trace_drv_link_info_changed(local, sdata, info, changed); in drv_link_info_changed()
491 local->ops->link_info_changed(&local->hw, &sdata->vif, in drv_link_info_changed()
494 local->ops->bss_info_changed(&local->hw, &sdata->vif, in drv_link_info_changed()
501 struct ieee80211_sub_if_data *sdata, in drv_set_key() argument
510 sdata = get_bss_sdata(sdata); in drv_set_key()
511 if (!check_sdata_in_driver(sdata)) in drv_set_key()
514 if (WARN_ON(key->link_id >= 0 && sdata->vif.active_links && in drv_set_key()
515 !(sdata->vif.active_links & BIT(key->link_id)))) in drv_set_key()
521 trace_drv_set_key(local, cmd, sdata, sta, key); in drv_set_key()
522 ret = local->ops->set_key(&local->hw, cmd, &sdata->vif, sta, key); in drv_set_key()
528 struct ieee80211_sub_if_data *sdata, in drv_change_vif_links() argument
541 if (!check_sdata_in_driver(sdata)) in drv_change_vif_links()
551 link = rcu_access_pointer(sdata->link[link_id]); in drv_change_vif_links()
556 trace_drv_change_vif_links(local, sdata, old_links, new_links); in drv_change_vif_links()
558 ret = local->ops->change_vif_links(&local->hw, &sdata->vif, in drv_change_vif_links()
568 link = rcu_access_pointer(sdata->link[link_id]); in drv_change_vif_links()
578 struct ieee80211_sub_if_data *sdata, in drv_change_sta_links() argument
592 if (!check_sdata_in_driver(sdata)) in drv_change_sta_links()
595 old_links &= sdata->vif.active_links; in drv_change_sta_links()
596 new_links &= sdata->vif.active_links; in drv_change_sta_links()
611 trace_drv_change_sta_links(local, sdata, sta, old_links, new_links); in drv_change_sta_links()
613 ret = local->ops->change_sta_links(&local->hw, &sdata->vif, sta, in drv_change_sta_links()