Lines Matching full:local
13 int drv_start(struct ieee80211_local *local) in drv_start() argument
18 lockdep_assert_wiphy(local->hw.wiphy); in drv_start()
20 if (WARN_ON(local->started)) in drv_start()
23 trace_drv_start(local); in drv_start()
24 local->started = true; in drv_start()
27 ret = local->ops->start(&local->hw); in drv_start()
28 trace_drv_return_int(local, ret); in drv_start()
31 local->started = false; in drv_start()
36 void drv_stop(struct ieee80211_local *local) in drv_stop() argument
39 lockdep_assert_wiphy(local->hw.wiphy); in drv_stop()
41 if (WARN_ON(!local->started)) in drv_stop()
44 trace_drv_stop(local); in drv_stop()
45 local->ops->stop(&local->hw); in drv_stop()
46 trace_drv_return_void(local); in drv_stop()
49 tasklet_disable(&local->tasklet); in drv_stop()
50 tasklet_enable(&local->tasklet); in drv_stop()
54 local->started = false; in drv_stop()
57 int drv_add_interface(struct ieee80211_local *local, in drv_add_interface() argument
63 lockdep_assert_wiphy(local->hw.wiphy); in drv_add_interface()
67 !ieee80211_hw_check(&local->hw, WANT_MONITOR_VIF) && in drv_add_interface()
71 trace_drv_add_interface(local, sdata); in drv_add_interface()
72 ret = local->ops->add_interface(&local->hw, &sdata->vif); in drv_add_interface()
73 trace_drv_return_int(local, ret); in drv_add_interface()
81 drv_vif_add_debugfs(local, sdata); in drv_add_interface()
89 int drv_change_interface(struct ieee80211_local *local, in drv_change_interface() argument
96 lockdep_assert_wiphy(local->hw.wiphy); in drv_change_interface()
101 trace_drv_change_interface(local, sdata, type, p2p); in drv_change_interface()
102 ret = local->ops->change_interface(&local->hw, &sdata->vif, type, p2p); in drv_change_interface()
103 trace_drv_return_int(local, ret); in drv_change_interface()
107 void drv_remove_interface(struct ieee80211_local *local, in drv_remove_interface() argument
111 lockdep_assert_wiphy(local->hw.wiphy); in drv_remove_interface()
121 trace_drv_remove_interface(local, sdata); in drv_remove_interface()
122 local->ops->remove_interface(&local->hw, &sdata->vif); in drv_remove_interface()
123 trace_drv_return_void(local); in drv_remove_interface()
127 int drv_sta_state(struct ieee80211_local *local, in drv_sta_state() argument
136 lockdep_assert_wiphy(local->hw.wiphy); in drv_sta_state()
142 trace_drv_sta_state(local, sdata, &sta->sta, old_state, new_state); in drv_sta_state()
143 if (local->ops->sta_state) { in drv_sta_state()
144 ret = local->ops->sta_state(&local->hw, &sdata->vif, &sta->sta, in drv_sta_state()
148 ret = drv_sta_add(local, sdata, &sta->sta); in drv_sta_state()
152 drv_sta_rate_tbl_update(local, sdata, &sta->sta); in drv_sta_state()
156 drv_sta_remove(local, sdata, &sta->sta); in drv_sta_state()
158 trace_drv_return_int(local, ret); in drv_sta_state()
163 int drv_sta_set_txpwr(struct ieee80211_local *local, in drv_sta_set_txpwr() argument
170 lockdep_assert_wiphy(local->hw.wiphy); in drv_sta_set_txpwr()
176 trace_drv_sta_set_txpwr(local, sdata, &sta->sta); in drv_sta_set_txpwr()
177 if (local->ops->sta_set_txpwr) in drv_sta_set_txpwr()
178 ret = local->ops->sta_set_txpwr(&local->hw, &sdata->vif, in drv_sta_set_txpwr()
180 trace_drv_return_int(local, ret); in drv_sta_set_txpwr()
184 void drv_sta_rc_update(struct ieee80211_local *local, in drv_sta_rc_update() argument
196 trace_drv_sta_rc_update(local, sdata, sta, changed); in drv_sta_rc_update()
197 if (local->ops->sta_rc_update) in drv_sta_rc_update()
198 local->ops->sta_rc_update(&local->hw, &sdata->vif, in drv_sta_rc_update()
201 trace_drv_return_void(local); in drv_sta_rc_update()
204 int drv_conf_tx(struct ieee80211_local *local, in drv_conf_tx() argument
212 lockdep_assert_wiphy(local->hw.wiphy); in drv_conf_tx()
226 WARN_ONCE(local->ops->conf_tx, in drv_conf_tx()
232 trace_drv_conf_tx(local, sdata, link->link_id, ac, params); in drv_conf_tx()
233 if (local->ops->conf_tx) in drv_conf_tx()
234 ret = local->ops->conf_tx(&local->hw, &sdata->vif, in drv_conf_tx()
236 trace_drv_return_int(local, ret); in drv_conf_tx()
240 u64 drv_get_tsf(struct ieee80211_local *local, in drv_get_tsf() argument
246 lockdep_assert_wiphy(local->hw.wiphy); in drv_get_tsf()
251 trace_drv_get_tsf(local, sdata); in drv_get_tsf()
252 if (local->ops->get_tsf) in drv_get_tsf()
253 ret = local->ops->get_tsf(&local->hw, &sdata->vif); in drv_get_tsf()
254 trace_drv_return_u64(local, ret); in drv_get_tsf()
258 void drv_set_tsf(struct ieee80211_local *local, in drv_set_tsf() argument
263 lockdep_assert_wiphy(local->hw.wiphy); in drv_set_tsf()
268 trace_drv_set_tsf(local, sdata, tsf); in drv_set_tsf()
269 if (local->ops->set_tsf) in drv_set_tsf()
270 local->ops->set_tsf(&local->hw, &sdata->vif, tsf); in drv_set_tsf()
271 trace_drv_return_void(local); in drv_set_tsf()
274 void drv_offset_tsf(struct ieee80211_local *local, in drv_offset_tsf() argument
279 lockdep_assert_wiphy(local->hw.wiphy); in drv_offset_tsf()
284 trace_drv_offset_tsf(local, sdata, offset); in drv_offset_tsf()
285 if (local->ops->offset_tsf) in drv_offset_tsf()
286 local->ops->offset_tsf(&local->hw, &sdata->vif, offset); in drv_offset_tsf()
287 trace_drv_return_void(local); in drv_offset_tsf()
290 void drv_reset_tsf(struct ieee80211_local *local, in drv_reset_tsf() argument
294 lockdep_assert_wiphy(local->hw.wiphy); in drv_reset_tsf()
299 trace_drv_reset_tsf(local, sdata); in drv_reset_tsf()
300 if (local->ops->reset_tsf) in drv_reset_tsf()
301 local->ops->reset_tsf(&local->hw, &sdata->vif); in drv_reset_tsf()
302 trace_drv_return_void(local); in drv_reset_tsf()
305 int drv_assign_vif_chanctx(struct ieee80211_local *local, in drv_assign_vif_chanctx() argument
313 lockdep_assert_wiphy(local->hw.wiphy); in drv_assign_vif_chanctx()
322 trace_drv_assign_vif_chanctx(local, sdata, link_conf, ctx); in drv_assign_vif_chanctx()
323 if (local->ops->assign_vif_chanctx) { in drv_assign_vif_chanctx()
325 ret = local->ops->assign_vif_chanctx(&local->hw, in drv_assign_vif_chanctx()
330 trace_drv_return_int(local, ret); in drv_assign_vif_chanctx()
335 void drv_unassign_vif_chanctx(struct ieee80211_local *local, in drv_unassign_vif_chanctx() argument
341 lockdep_assert_wiphy(local->hw.wiphy); in drv_unassign_vif_chanctx()
350 trace_drv_unassign_vif_chanctx(local, sdata, link_conf, ctx); in drv_unassign_vif_chanctx()
351 if (local->ops->unassign_vif_chanctx) { in drv_unassign_vif_chanctx()
353 local->ops->unassign_vif_chanctx(&local->hw, in drv_unassign_vif_chanctx()
358 trace_drv_return_void(local); in drv_unassign_vif_chanctx()
361 int drv_switch_vif_chanctx(struct ieee80211_local *local, in drv_switch_vif_chanctx() argument
369 lockdep_assert_wiphy(local->hw.wiphy); in drv_switch_vif_chanctx()
371 if (!local->ops->switch_vif_chanctx) in drv_switch_vif_chanctx()
391 trace_drv_switch_vif_chanctx(local, vifs, n_vifs, mode); in drv_switch_vif_chanctx()
392 ret = local->ops->switch_vif_chanctx(&local->hw, in drv_switch_vif_chanctx()
394 trace_drv_return_int(local, ret); in drv_switch_vif_chanctx()
415 int drv_ampdu_action(struct ieee80211_local *local, in drv_ampdu_action() argument
422 lockdep_assert_wiphy(local->hw.wiphy); in drv_ampdu_action()
428 trace_drv_ampdu_action(local, sdata, params); in drv_ampdu_action()
430 if (local->ops->ampdu_action) in drv_ampdu_action()
431 ret = local->ops->ampdu_action(&local->hw, &sdata->vif, params); in drv_ampdu_action()
433 trace_drv_return_int(local, ret); in drv_ampdu_action()
438 void drv_link_info_changed(struct ieee80211_local *local, in drv_link_info_changed() argument
444 lockdep_assert_wiphy(local->hw.wiphy); in drv_link_info_changed()
468 trace_drv_link_info_changed(local, sdata, info, changed); in drv_link_info_changed()
469 if (local->ops->link_info_changed) in drv_link_info_changed()
470 local->ops->link_info_changed(&local->hw, &sdata->vif, in drv_link_info_changed()
472 else if (local->ops->bss_info_changed) in drv_link_info_changed()
473 local->ops->bss_info_changed(&local->hw, &sdata->vif, in drv_link_info_changed()
475 trace_drv_return_void(local); in drv_link_info_changed()
478 int drv_set_key(struct ieee80211_local *local, in drv_set_key() argument
487 lockdep_assert_wiphy(local->hw.wiphy); in drv_set_key()
497 trace_drv_set_key(local, cmd, sdata, sta, key); in drv_set_key()
498 ret = local->ops->set_key(&local->hw, cmd, &sdata->vif, sta, key); in drv_set_key()
499 trace_drv_return_int(local, ret); in drv_set_key()
503 int drv_change_vif_links(struct ieee80211_local *local, in drv_change_vif_links() argument
515 lockdep_assert_wiphy(local->hw.wiphy); in drv_change_vif_links()
532 trace_drv_change_vif_links(local, sdata, old_links, new_links); in drv_change_vif_links()
533 if (local->ops->change_vif_links) in drv_change_vif_links()
534 ret = local->ops->change_vif_links(&local->hw, &sdata->vif, in drv_change_vif_links()
536 trace_drv_return_int(local, ret); in drv_change_vif_links()
541 if (!local->in_reconfig && !local->resuming) { in drv_change_vif_links()
553 int drv_change_sta_links(struct ieee80211_local *local, in drv_change_sta_links() argument
566 lockdep_assert_wiphy(local->hw.wiphy); in drv_change_sta_links()
582 lockdep_is_held(&local->hw.wiphy->mtx)); in drv_change_sta_links()
587 trace_drv_change_sta_links(local, sdata, sta, old_links, new_links); in drv_change_sta_links()
588 if (local->ops->change_sta_links) in drv_change_sta_links()
589 ret = local->ops->change_sta_links(&local->hw, &sdata->vif, sta, in drv_change_sta_links()
591 trace_drv_return_int(local, ret); in drv_change_sta_links()
597 if (local->in_reconfig || local->resuming) in drv_change_sta_links()
602 lockdep_is_held(&local->hw.wiphy->mtx)); in drv_change_sta_links()