Lines Matching refs:link_data

3476 	struct ieee80211_link_data *link_data;  in ieee80211_start_radar_detection()  local
3484 link_data = sdata_dereference(sdata->link[link_id], sdata); in ieee80211_start_radar_detection()
3485 if (!link_data) in ieee80211_start_radar_detection()
3489 link_data->smps_mode = IEEE80211_SMPS_OFF; in ieee80211_start_radar_detection()
3490 link_data->needed_rx_chains = local->rx_chains; in ieee80211_start_radar_detection()
3492 err = ieee80211_link_use_channel(link_data, &chanreq, in ieee80211_start_radar_detection()
3497 wiphy_delayed_work_queue(wiphy, &link_data->dfs_cac_timer_work, in ieee80211_start_radar_detection()
3508 struct ieee80211_link_data *link_data; in ieee80211_end_cac() local
3513 link_data = sdata_dereference(sdata->link[link_id], sdata); in ieee80211_end_cac()
3514 if (!link_data) in ieee80211_end_cac()
3518 &link_data->dfs_cac_timer_work); in ieee80211_end_cac()
3521 ieee80211_link_release_channel(link_data); in ieee80211_end_cac()
3639 struct ieee80211_link_data *link_data; in ieee80211_csa_finish() local
3646 link_data = rcu_dereference(sdata->link[link_id]); in ieee80211_csa_finish()
3647 if (WARN_ON(!link_data)) { in ieee80211_csa_finish()
3671 wiphy_work_queue(local->hw.wiphy, &link_data->csa.finalize_work); in ieee80211_csa_finish()
3689 static int ieee80211_set_after_csa_beacon(struct ieee80211_link_data *link_data, in ieee80211_set_after_csa_beacon() argument
3692 struct ieee80211_sub_if_data *sdata = link_data->sdata; in ieee80211_set_after_csa_beacon()
3697 if (!link_data->u.ap.next_beacon) in ieee80211_set_after_csa_beacon()
3700 err = ieee80211_assign_beacon(sdata, link_data, in ieee80211_set_after_csa_beacon()
3701 link_data->u.ap.next_beacon, in ieee80211_set_after_csa_beacon()
3703 ieee80211_free_next_beacon(link_data); in ieee80211_set_after_csa_beacon()
3728 static int __ieee80211_csa_finalize(struct ieee80211_link_data *link_data) in __ieee80211_csa_finalize() argument
3730 struct ieee80211_sub_if_data *sdata = link_data->sdata; in __ieee80211_csa_finalize()
3732 struct ieee80211_bss_conf *link_conf = link_data->conf; in __ieee80211_csa_finalize()
3745 if (link_data->reserved_chanctx) { in __ieee80211_csa_finalize()
3751 if (link_data->reserved_ready) in __ieee80211_csa_finalize()
3754 return ieee80211_link_use_reserved_context(link_data); in __ieee80211_csa_finalize()
3758 &link_data->csa.chanreq.oper)) in __ieee80211_csa_finalize()
3763 err = ieee80211_set_after_csa_beacon(link_data, &changed); in __ieee80211_csa_finalize()
3767 ieee80211_link_info_change_notify(sdata, link_data, changed); in __ieee80211_csa_finalize()
3771 err = drv_post_channel_switch(link_data); in __ieee80211_csa_finalize()
3775 cfg80211_ch_switch_notify(sdata->dev, &link_data->csa.chanreq.oper, in __ieee80211_csa_finalize()
3776 link_data->link_id); in __ieee80211_csa_finalize()
3781 static void ieee80211_csa_finalize(struct ieee80211_link_data *link_data) in ieee80211_csa_finalize() argument
3783 struct ieee80211_sub_if_data *sdata = link_data->sdata; in ieee80211_csa_finalize()
3785 if (__ieee80211_csa_finalize(link_data)) { in ieee80211_csa_finalize()
3787 link_data->link_id); in ieee80211_csa_finalize()
3812 static int ieee80211_set_csa_beacon(struct ieee80211_link_data *link_data, in ieee80211_set_csa_beacon() argument
3816 struct ieee80211_sub_if_data *sdata = link_data->sdata; in ieee80211_set_csa_beacon()
3822 link_data->u.ap.next_beacon = in ieee80211_set_csa_beacon()
3824 if (!link_data->u.ap.next_beacon) in ieee80211_set_csa_beacon()
3850 ieee80211_free_next_beacon(link_data); in ieee80211_set_csa_beacon()
3860 err = ieee80211_assign_beacon(sdata, link_data, in ieee80211_set_csa_beacon()
3864 ieee80211_free_next_beacon(link_data); in ieee80211_set_csa_beacon()
3967 struct ieee80211_link_data *link_data; in __ieee80211_channel_switch() local
3983 link_data = wiphy_dereference(wiphy, sdata->link[link_id]); in __ieee80211_channel_switch()
3984 if (!link_data) in __ieee80211_channel_switch()
3987 link_conf = link_data->conf; in __ieee80211_channel_switch()
4020 err = ieee80211_link_reserve_chanctx(link_data, &chanreq, in __ieee80211_channel_switch()
4029 ieee80211_link_unreserve_chanctx(link_data); in __ieee80211_channel_switch()
4035 ieee80211_color_change_abort(link_data); in __ieee80211_channel_switch()
4037 err = ieee80211_set_csa_beacon(link_data, params, &changed); in __ieee80211_channel_switch()
4039 ieee80211_link_unreserve_chanctx(link_data); in __ieee80211_channel_switch()
4043 link_data->csa.chanreq = chanreq; in __ieee80211_channel_switch()
4050 &link_data->csa.chanreq.oper, link_id, in __ieee80211_channel_switch()
4054 ieee80211_link_info_change_notify(sdata, link_data, changed); in __ieee80211_channel_switch()
4055 drv_channel_switch_beacon(sdata, &link_data->csa.chanreq.oper); in __ieee80211_channel_switch()
4058 ieee80211_csa_finalize(link_data); in __ieee80211_channel_switch()