Lines Matching refs:link_data

3339 	struct ieee80211_link_data *link_data;  in ieee80211_get_tx_power()  local
3348 link_data = wiphy_dereference(wiphy, sdata->link[link_id]); in ieee80211_get_tx_power()
3350 if (link_data) in ieee80211_get_tx_power()
3351 *dbm = link_data->conf->txpower; in ieee80211_get_tx_power()
3727 struct ieee80211_link_data *link_data; in ieee80211_start_radar_detection() local
3735 link_data = sdata_dereference(sdata->link[link_id], sdata); in ieee80211_start_radar_detection()
3736 if (!link_data) in ieee80211_start_radar_detection()
3740 link_data->smps_mode = IEEE80211_SMPS_OFF; in ieee80211_start_radar_detection()
3741 link_data->needed_rx_chains = local->rx_chains; in ieee80211_start_radar_detection()
3743 err = ieee80211_link_use_channel(link_data, &chanreq, in ieee80211_start_radar_detection()
3748 wiphy_delayed_work_queue(wiphy, &link_data->dfs_cac_timer_work, in ieee80211_start_radar_detection()
3759 struct ieee80211_link_data *link_data; in ieee80211_end_cac() local
3764 link_data = sdata_dereference(sdata->link[link_id], sdata); in ieee80211_end_cac()
3765 if (!link_data) in ieee80211_end_cac()
3769 &link_data->dfs_cac_timer_work); in ieee80211_end_cac()
3772 ieee80211_link_release_channel(link_data); in ieee80211_end_cac()
3891 struct ieee80211_link_data *link_data; in ieee80211_csa_finish() local
3898 link_data = rcu_dereference(sdata->link[link_id]); in ieee80211_csa_finish()
3899 if (WARN_ON(!link_data)) { in ieee80211_csa_finish()
3904 tx_bss_conf = rcu_dereference(link_data->conf->tx_bss_conf); in ieee80211_csa_finish()
3905 if (tx_bss_conf == link_data->conf) { in ieee80211_csa_finish()
3922 wiphy_work_queue(local->hw.wiphy, &link_data->csa.finalize_work); in ieee80211_csa_finish()
3939 static int ieee80211_set_after_csa_beacon(struct ieee80211_link_data *link_data, in ieee80211_set_after_csa_beacon() argument
3942 struct ieee80211_sub_if_data *sdata = link_data->sdata; in ieee80211_set_after_csa_beacon()
3947 if (!link_data->u.ap.next_beacon) in ieee80211_set_after_csa_beacon()
3950 err = ieee80211_assign_beacon(sdata, link_data, in ieee80211_set_after_csa_beacon()
3951 link_data->u.ap.next_beacon, in ieee80211_set_after_csa_beacon()
3953 ieee80211_free_next_beacon(link_data); in ieee80211_set_after_csa_beacon()
3978 static int __ieee80211_csa_finalize(struct ieee80211_link_data *link_data) in __ieee80211_csa_finalize() argument
3980 struct ieee80211_sub_if_data *sdata = link_data->sdata; in __ieee80211_csa_finalize()
3982 struct ieee80211_bss_conf *link_conf = link_data->conf; in __ieee80211_csa_finalize()
3995 if (link_data->reserved_chanctx) { in __ieee80211_csa_finalize()
4001 if (link_data->reserved_ready) in __ieee80211_csa_finalize()
4004 return ieee80211_link_use_reserved_context(link_data); in __ieee80211_csa_finalize()
4008 &link_data->csa.chanreq.oper)) in __ieee80211_csa_finalize()
4013 err = ieee80211_set_after_csa_beacon(link_data, &changed); in __ieee80211_csa_finalize()
4017 ieee80211_link_info_change_notify(sdata, link_data, changed); in __ieee80211_csa_finalize()
4021 err = drv_post_channel_switch(link_data); in __ieee80211_csa_finalize()
4025 cfg80211_ch_switch_notify(sdata->dev, &link_data->csa.chanreq.oper, in __ieee80211_csa_finalize()
4026 link_data->link_id); in __ieee80211_csa_finalize()
4031 static void ieee80211_csa_finalize(struct ieee80211_link_data *link_data) in ieee80211_csa_finalize() argument
4033 struct ieee80211_sub_if_data *sdata = link_data->sdata; in ieee80211_csa_finalize()
4035 if (__ieee80211_csa_finalize(link_data)) { in ieee80211_csa_finalize()
4037 link_data->link_id); in ieee80211_csa_finalize()
4062 static int ieee80211_set_csa_beacon(struct ieee80211_link_data *link_data, in ieee80211_set_csa_beacon() argument
4066 struct ieee80211_sub_if_data *sdata = link_data->sdata; in ieee80211_set_csa_beacon()
4072 link_data->u.ap.next_beacon = in ieee80211_set_csa_beacon()
4074 if (!link_data->u.ap.next_beacon) in ieee80211_set_csa_beacon()
4100 ieee80211_free_next_beacon(link_data); in ieee80211_set_csa_beacon()
4110 err = ieee80211_assign_beacon(sdata, link_data, in ieee80211_set_csa_beacon()
4114 ieee80211_free_next_beacon(link_data); in ieee80211_set_csa_beacon()
4217 struct ieee80211_link_data *link_data; in __ieee80211_channel_switch() local
4233 link_data = wiphy_dereference(wiphy, sdata->link[link_id]); in __ieee80211_channel_switch()
4234 if (!link_data) in __ieee80211_channel_switch()
4237 link_conf = link_data->conf; in __ieee80211_channel_switch()
4260 link_data, link_conf, &changed); in __ieee80211_channel_switch()
4276 err = ieee80211_link_reserve_chanctx(link_data, &chanreq, in __ieee80211_channel_switch()
4285 ieee80211_link_unreserve_chanctx(link_data); in __ieee80211_channel_switch()
4291 ieee80211_color_change_abort(link_data); in __ieee80211_channel_switch()
4293 err = ieee80211_set_csa_beacon(link_data, params, &changed); in __ieee80211_channel_switch()
4295 ieee80211_link_unreserve_chanctx(link_data); in __ieee80211_channel_switch()
4299 link_data->csa.chanreq = chanreq; in __ieee80211_channel_switch()
4306 &link_data->csa.chanreq.oper, link_id, in __ieee80211_channel_switch()
4310 ieee80211_link_info_change_notify(sdata, link_data, changed); in __ieee80211_channel_switch()
4311 drv_channel_switch_beacon(sdata, &link_data->csa.chanreq.oper); in __ieee80211_channel_switch()
4314 ieee80211_csa_finalize(link_data); in __ieee80211_channel_switch()