Lines Matching refs:link_data
3495 struct ieee80211_link_data *link_data; in ieee80211_get_tx_power() local
3504 link_data = wiphy_dereference(wiphy, sdata->link[link_id]); in ieee80211_get_tx_power()
3506 if (link_data) in ieee80211_get_tx_power()
3507 *dbm = link_data->conf->txpower; in ieee80211_get_tx_power()
3870 struct ieee80211_link_data *link_data; in ieee80211_start_radar_detection() local
3878 link_data = sdata_dereference(sdata->link[link_id], sdata); in ieee80211_start_radar_detection()
3879 if (!link_data) in ieee80211_start_radar_detection()
3883 link_data->smps_mode = IEEE80211_SMPS_OFF; in ieee80211_start_radar_detection()
3884 link_data->needed_rx_chains = local->rx_chains; in ieee80211_start_radar_detection()
3886 err = ieee80211_link_use_channel(link_data, &chanreq, in ieee80211_start_radar_detection()
3891 wiphy_hrtimer_work_queue(wiphy, &link_data->dfs_cac_timer_work, in ieee80211_start_radar_detection()
3902 struct ieee80211_link_data *link_data; in ieee80211_end_cac() local
3907 link_data = sdata_dereference(sdata->link[link_id], sdata); in ieee80211_end_cac()
3908 if (!link_data) in ieee80211_end_cac()
3912 &link_data->dfs_cac_timer_work); in ieee80211_end_cac()
3915 ieee80211_link_release_channel(link_data); in ieee80211_end_cac()
4032 struct ieee80211_link_data *link_data; in ieee80211_csa_finish() local
4039 link_data = rcu_dereference(sdata->link[link_id]); in ieee80211_csa_finish()
4040 if (WARN_ON(!link_data)) { in ieee80211_csa_finish()
4045 tx_bss_conf = rcu_dereference(link_data->conf->tx_bss_conf); in ieee80211_csa_finish()
4046 if (tx_bss_conf == link_data->conf) { in ieee80211_csa_finish()
4063 wiphy_work_queue(local->hw.wiphy, &link_data->csa.finalize_work); in ieee80211_csa_finish()
4080 static int ieee80211_set_after_csa_beacon(struct ieee80211_link_data *link_data, in ieee80211_set_after_csa_beacon() argument
4083 struct ieee80211_sub_if_data *sdata = link_data->sdata; in ieee80211_set_after_csa_beacon()
4088 if (!link_data->u.ap.next_beacon) in ieee80211_set_after_csa_beacon()
4091 err = ieee80211_assign_beacon(sdata, link_data, in ieee80211_set_after_csa_beacon()
4092 link_data->u.ap.next_beacon, in ieee80211_set_after_csa_beacon()
4094 ieee80211_free_next_beacon(link_data); in ieee80211_set_after_csa_beacon()
4119 static int __ieee80211_csa_finalize(struct ieee80211_link_data *link_data) in __ieee80211_csa_finalize() argument
4121 struct ieee80211_sub_if_data *sdata = link_data->sdata; in __ieee80211_csa_finalize()
4123 struct ieee80211_bss_conf *link_conf = link_data->conf; in __ieee80211_csa_finalize()
4136 if (link_data->reserved_chanctx) { in __ieee80211_csa_finalize()
4142 if (link_data->reserved_ready) in __ieee80211_csa_finalize()
4145 return ieee80211_link_use_reserved_context(link_data); in __ieee80211_csa_finalize()
4149 &link_data->csa.chanreq.oper)) in __ieee80211_csa_finalize()
4154 err = ieee80211_set_after_csa_beacon(link_data, &changed); in __ieee80211_csa_finalize()
4158 ieee80211_link_info_change_notify(sdata, link_data, changed); in __ieee80211_csa_finalize()
4162 err = drv_post_channel_switch(link_data); in __ieee80211_csa_finalize()
4166 cfg80211_ch_switch_notify(sdata->dev, &link_data->csa.chanreq.oper, in __ieee80211_csa_finalize()
4167 link_data->link_id); in __ieee80211_csa_finalize()
4172 static void ieee80211_csa_finalize(struct ieee80211_link_data *link_data) in ieee80211_csa_finalize() argument
4174 struct ieee80211_sub_if_data *sdata = link_data->sdata; in ieee80211_csa_finalize()
4177 if (__ieee80211_csa_finalize(link_data)) { in ieee80211_csa_finalize()
4179 link_data->link_id); in ieee80211_csa_finalize()
4186 link_id = link_data->link_id; in ieee80211_csa_finalize()
4212 static int ieee80211_set_csa_beacon(struct ieee80211_link_data *link_data, in ieee80211_set_csa_beacon() argument
4216 struct ieee80211_sub_if_data *sdata = link_data->sdata; in ieee80211_set_csa_beacon()
4222 link_data->u.ap.next_beacon = in ieee80211_set_csa_beacon()
4224 if (!link_data->u.ap.next_beacon) in ieee80211_set_csa_beacon()
4250 ieee80211_free_next_beacon(link_data); in ieee80211_set_csa_beacon()
4260 err = ieee80211_assign_beacon(sdata, link_data, in ieee80211_set_csa_beacon()
4264 ieee80211_free_next_beacon(link_data); in ieee80211_set_csa_beacon()
4367 struct ieee80211_link_data *link_data; in __ieee80211_channel_switch() local
4383 link_data = wiphy_dereference(wiphy, sdata->link[link_id]); in __ieee80211_channel_switch()
4384 if (!link_data) in __ieee80211_channel_switch()
4387 link_conf = link_data->conf; in __ieee80211_channel_switch()
4410 link_data, link_conf, &changed); in __ieee80211_channel_switch()
4426 err = ieee80211_link_reserve_chanctx(link_data, &chanreq, in __ieee80211_channel_switch()
4435 ieee80211_link_unreserve_chanctx(link_data); in __ieee80211_channel_switch()
4441 ieee80211_color_change_abort(link_data); in __ieee80211_channel_switch()
4443 err = ieee80211_set_csa_beacon(link_data, params, &changed); in __ieee80211_channel_switch()
4445 ieee80211_link_unreserve_chanctx(link_data); in __ieee80211_channel_switch()
4449 link_data->csa.chanreq = chanreq; in __ieee80211_channel_switch()
4456 &link_data->csa.chanreq.oper, link_id, in __ieee80211_channel_switch()
4460 ieee80211_link_info_change_notify(sdata, link_data, changed); in __ieee80211_channel_switch()
4461 drv_channel_switch_beacon(sdata, &link_data->csa.chanreq.oper); in __ieee80211_channel_switch()
4464 ieee80211_csa_finalize(link_data); in __ieee80211_channel_switch()