Lines Matching refs:vif
99 static bool check_vif_up(struct brcmf_cfg80211_vif *vif) in check_vif_up() argument
101 if (!test_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state)) { in check_vif_up()
103 vif->sme_state); in check_vif_up()
508 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_update_proto_addr_mode() local
511 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_update_proto_addr_mode()
512 ifp = vif->ifp; in brcmf_cfg80211_update_proto_addr_mode()
561 struct brcmf_cfg80211_vif *vif; in brcmf_ap_add_vif() local
569 vif = brcmf_alloc_vif(cfg, NL80211_IFTYPE_AP, false); in brcmf_ap_add_vif()
570 if (IS_ERR(vif)) in brcmf_ap_add_vif()
571 return (struct wireless_dev *)vif; in brcmf_ap_add_vif()
573 brcmf_cfg80211_arm_vif_event(cfg, vif); in brcmf_ap_add_vif()
592 ifp = vif->ifp; in brcmf_ap_add_vif()
606 return &ifp->vif->wdev; in brcmf_ap_add_vif()
609 brcmf_free_vif(vif); in brcmf_ap_add_vif()
613 static bool brcmf_is_apmode(struct brcmf_cfg80211_vif *vif) in brcmf_is_apmode() argument
617 iftype = vif->wdev.iftype; in brcmf_is_apmode()
621 static bool brcmf_is_ibssmode(struct brcmf_cfg80211_vif *vif) in brcmf_is_ibssmode() argument
623 return vif->wdev.iftype == NL80211_IFTYPE_ADHOC; in brcmf_is_ibssmode()
672 if (check_vif_up(ifp->vif)) { in brcmf_set_mpc()
789 struct brcmf_cfg80211_vif *vif = ifp->vif; in brcmf_cfg80211_change_iface() local
807 if ((vif->wdev.iftype == NL80211_IFTYPE_P2P_CLIENT) || in brcmf_cfg80211_change_iface()
808 (vif->wdev.iftype == NL80211_IFTYPE_P2P_GO)) { in brcmf_cfg80211_change_iface()
835 set_bit(BRCMF_VIF_STATUS_AP_CREATING, &vif->sme_state); in brcmf_cfg80211_change_iface()
845 brcmf_dbg(INFO, "IF Type = %s\n", brcmf_is_ibssmode(vif) ? in brcmf_cfg80211_change_iface()
850 brcmf_cfg80211_update_proto_addr_mode(&vif->wdev); in brcmf_cfg80211_change_iface()
1015 brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif, in brcmf_cfg80211_escan() argument
1019 struct brcmf_if *ifp = vif->ifp; in brcmf_cfg80211_escan()
1045 if (test_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state)) { in brcmf_cfg80211_escan()
1046 brcmf_err("Connecting: status (%lu)\n", ifp->vif->sme_state); in brcmf_cfg80211_escan()
1051 if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif) in brcmf_cfg80211_escan()
1052 vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif; in brcmf_cfg80211_escan()
1069 err = brcmf_p2p_scan_prep(wiphy, request, vif); in brcmf_cfg80211_escan()
1073 err = brcmf_do_escan(cfg, wiphy, vif->ifp, request); in brcmf_cfg80211_escan()
1127 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_scan() local
1131 vif = container_of(request->wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_scan()
1132 if (!check_vif_up(vif)) in brcmf_cfg80211_scan()
1135 err = brcmf_cfg80211_escan(wiphy, vif, request, NULL); in brcmf_cfg80211_scan()
1189 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_wiphy_params()
1249 static void brcmf_link_down(struct brcmf_cfg80211_vif *vif, u16 reason) in brcmf_link_down() argument
1251 struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(vif->wdev.wiphy); in brcmf_link_down()
1256 if (test_bit(BRCMF_VIF_STATUS_CONNECTED, &vif->sme_state)) { in brcmf_link_down()
1258 err = brcmf_fil_cmd_data_set(vif->ifp, in brcmf_link_down()
1263 clear_bit(BRCMF_VIF_STATUS_CONNECTED, &vif->sme_state); in brcmf_link_down()
1264 cfg80211_disconnected(vif->wdev.netdev, reason, NULL, 0, in brcmf_link_down()
1268 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &vif->sme_state); in brcmf_link_down()
1270 brcmf_btcoex_set_mode(vif, BRCMF_BTCOEX_ENABLED, 0); in brcmf_link_down()
1280 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_cfg80211_join_ibss()
1289 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_join_ibss()
1299 set_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_join_ibss()
1421 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_join_ibss()
1432 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_leave_ibss()
1435 brcmf_link_down(ifp->vif, WLAN_REASON_DEAUTH_LEAVING); in brcmf_cfg80211_leave_ibss()
1724 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_cfg80211_connect()
1737 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_connect()
1745 if (ifp->vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif) { in brcmf_cfg80211_connect()
1767 err = brcmf_vif_set_mgmt_ie(ifp->vif, BRCMF_VNDR_IE_ASSOCREQ_FLAG, in brcmf_cfg80211_connect()
1774 set_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_connect()
1911 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_connect()
1921 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_cfg80211_disconnect()
1926 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_disconnect()
1929 clear_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state); in brcmf_cfg80211_disconnect()
1930 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_disconnect()
1958 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_tx_power()
2005 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_get_tx_power()
2033 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_config_default_key()
2086 if (!brcmf_is_apmode(ifp->vif) && in brcmf_add_keyext()
2151 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_add_key()
2167 key = &ifp->vif->profile.key[key_idx]; in brcmf_cfg80211_add_key()
2193 if (!brcmf_is_apmode(ifp->vif)) { in brcmf_cfg80211_add_key()
2249 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_del_key()
2279 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_cfg80211_get_key()
2286 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_get_key()
2343 key = &ifp->vif->profile.key[key_idx]; in brcmf_cfg80211_reconfigure_wep()
2372 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_cfg80211_get_station()
2383 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_get_station()
2386 if (brcmf_is_apmode(ifp->vif)) { in brcmf_cfg80211_get_station()
2403 } else if (ifp->vif->wdev.iftype == NL80211_IFTYPE_STATION) { in brcmf_cfg80211_get_station()
2422 &ifp->vif->sme_state)) { in brcmf_cfg80211_get_station()
2486 if (!check_vif_up(ifp->vif)) { in brcmf_cfg80211_set_power_mgmt()
2494 if (ifp->vif->wdev.iftype == NL80211_IFTYPE_P2P_CLIENT) { in brcmf_cfg80211_set_power_mgmt()
2704 if (brcmf_is_ibssmode(ifp->vif)) in brcmf_update_bss_info()
3038 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_suspend() local
3045 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_suspend()
3054 list_for_each_entry(vif, &cfg->vif_list, list) { in brcmf_cfg80211_suspend()
3055 if (!test_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state)) in brcmf_cfg80211_suspend()
3061 brcmf_link_down(vif, WLAN_REASON_UNSPECIFIED); in brcmf_cfg80211_suspend()
3119 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_pmksa()
3158 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_del_pmksa()
3207 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_flush_pmksa()
3769 s32 brcmf_vif_set_mgmt_ie(struct brcmf_cfg80211_vif *vif, s32 pktflag, in brcmf_vif_set_mgmt_ie() argument
3790 if (!vif) in brcmf_vif_set_mgmt_ie()
3792 ifp = vif->ifp; in brcmf_vif_set_mgmt_ie()
3793 saved_ie = &vif->saved_ie; in brcmf_vif_set_mgmt_ie()
3930 s32 brcmf_vif_clear_mgmt_ies(struct brcmf_cfg80211_vif *vif) in brcmf_vif_clear_mgmt_ies() argument
3940 brcmf_vif_set_mgmt_ie(vif, pktflags[i], NULL, 0); in brcmf_vif_clear_mgmt_ies()
3942 memset(&vif->saved_ie, 0, sizeof(vif->saved_ie)); in brcmf_vif_clear_mgmt_ies()
3947 brcmf_config_ap_mgmt_ie(struct brcmf_cfg80211_vif *vif, in brcmf_config_ap_mgmt_ie() argument
3953 err = brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_BEACON_FLAG, in brcmf_config_ap_mgmt_ie()
3962 err = brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_PRBRSP_FLAG, in brcmf_config_ap_mgmt_ie()
4000 dev_role = ifp->vif->wdev.iftype; in brcmf_cfg80211_start_ap()
4001 mbss = ifp->vif->mbss; in brcmf_cfg80211_start_ap()
4004 brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_REGULATORY, &ifp->vif->is_11d); in brcmf_cfg80211_start_ap()
4063 brcmf_config_ap_mgmt_ie(ifp->vif, &settings->beacon); in brcmf_cfg80211_start_ap()
4075 if (is_11d != ifp->vif->is_11d) { in brcmf_cfg80211_start_ap()
4115 } else if (WARN_ON(is_11d != ifp->vif->is_11d)) { in brcmf_cfg80211_start_ap()
4168 clear_bit(BRCMF_VIF_STATUS_AP_CREATING, &ifp->vif->sme_state); in brcmf_cfg80211_start_ap()
4169 set_bit(BRCMF_VIF_STATUS_AP_CREATED, &ifp->vif->sme_state); in brcmf_cfg80211_start_ap()
4188 if (ifp->vif->wdev.iftype == NL80211_IFTYPE_AP) { in brcmf_cfg80211_stop_ap()
4193 if (ifp->vif->mbss) { in brcmf_cfg80211_stop_ap()
4215 ifp->vif->is_11d); in brcmf_cfg80211_stop_ap()
4233 set_bit(BRCMF_VIF_STATUS_AP_CREATING, &ifp->vif->sme_state); in brcmf_cfg80211_stop_ap()
4234 clear_bit(BRCMF_VIF_STATUS_AP_CREATED, &ifp->vif->sme_state); in brcmf_cfg80211_stop_ap()
4248 err = brcmf_config_ap_mgmt_ie(ifp->vif, info); in brcmf_cfg80211_change_beacon()
4267 if (ifp->vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif) in brcmf_cfg80211_del_station()
4268 ifp = cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif->ifp; in brcmf_cfg80211_del_station()
4269 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_del_station()
4317 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_mgmt_frame_register() local
4323 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_mgmt_frame_register()
4325 vif->mgmt_rx_reg |= BIT(mgmt_type); in brcmf_cfg80211_mgmt_frame_register()
4327 vif->mgmt_rx_reg &= ~BIT(mgmt_type); in brcmf_cfg80211_mgmt_frame_register()
4340 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_mgmt_tx() local
4361 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_mgmt_tx()
4378 if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif) in brcmf_cfg80211_mgmt_tx()
4379 vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif; in brcmf_cfg80211_mgmt_tx()
4380 err = brcmf_vif_set_mgmt_ie(vif, in brcmf_cfg80211_mgmt_tx()
4407 brcmf_fil_cmd_int_get(vif->ifp, BRCMF_C_GET_CHANNEL, in brcmf_cfg80211_mgmt_tx()
4440 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_cancel_remain_on_channel() local
4445 vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif; in brcmf_cfg80211_cancel_remain_on_channel()
4446 if (vif == NULL) { in brcmf_cfg80211_cancel_remain_on_channel()
4451 brcmf_p2p_cancel_remain_on_channel(vif->ifp); in brcmf_cfg80211_cancel_remain_on_channel()
4462 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_crit_proto_start() local
4464 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_crit_proto_start()
4474 return brcmf_btcoex_set_mode(vif, BRCMF_BTCOEX_DISABLED, duration); in brcmf_cfg80211_crit_proto_start()
4481 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_crit_proto_stop() local
4483 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_crit_proto_stop()
4485 brcmf_btcoex_set_mode(vif, BRCMF_BTCOEX_ENABLED, 0); in brcmf_cfg80211_crit_proto_stop()
4604 struct brcmf_cfg80211_vif *vif; in brcmf_alloc_vif() local
4608 sizeof(*vif)); in brcmf_alloc_vif()
4609 vif = kzalloc(sizeof(*vif), GFP_KERNEL); in brcmf_alloc_vif()
4610 if (!vif) in brcmf_alloc_vif()
4613 vif->wdev.wiphy = cfg->wiphy; in brcmf_alloc_vif()
4614 vif->wdev.iftype = type; in brcmf_alloc_vif()
4616 vif->pm_block = pm_block; in brcmf_alloc_vif()
4617 vif->roam_off = -1; in brcmf_alloc_vif()
4619 brcmf_init_prof(&vif->profile); in brcmf_alloc_vif()
4629 vif->mbss = mbss; in brcmf_alloc_vif()
4632 list_add_tail(&vif->list, &cfg->vif_list); in brcmf_alloc_vif()
4633 return vif; in brcmf_alloc_vif()
4636 void brcmf_free_vif(struct brcmf_cfg80211_vif *vif) in brcmf_free_vif() argument
4638 list_del(&vif->list); in brcmf_free_vif()
4639 kfree(vif); in brcmf_free_vif()
4644 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_free_netdev() local
4648 vif = ifp->vif; in brcmf_cfg80211_free_netdev()
4650 brcmf_free_vif(vif); in brcmf_cfg80211_free_netdev()
4778 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_bss_roaming_done()
4828 set_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state); in brcmf_bss_roaming_done()
4839 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_bss_connect_done()
4845 &ifp->vif->sme_state)) { in brcmf_bss_connect_done()
4851 &ifp->vif->sme_state); in brcmf_bss_connect_done()
4885 if (ifp->vif->mbss) in brcmf_notify_connect_status_ap()
4916 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_notify_connect_status()
4927 if (brcmf_is_apmode(ifp->vif)) { in brcmf_notify_connect_status()
4931 if (brcmf_is_ibssmode(ifp->vif)) { in brcmf_notify_connect_status()
4937 &ifp->vif->sme_state); in brcmf_notify_connect_status()
4939 &ifp->vif->sme_state); in brcmf_notify_connect_status()
4944 if (!brcmf_is_ibssmode(ifp->vif)) { in brcmf_notify_connect_status()
4947 brcmf_link_down(ifp->vif, brcmf_map_fw_linkdown_reason(e)); in brcmf_notify_connect_status()
4952 if (brcmf_is_ibssmode(ifp->vif)) in brcmf_notify_connect_status()
4954 &ifp->vif->sme_state); in brcmf_notify_connect_status()
4971 if (test_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state)) in brcmf_notify_roaming_status()
5004 struct brcmf_cfg80211_vif *vif; in brcmf_notify_vif_event() local
5012 vif = event->vif; in brcmf_notify_vif_event()
5017 if (!cfg->vif_event.vif) { in brcmf_notify_vif_event()
5022 ifp->vif = vif; in brcmf_notify_vif_event()
5023 vif->ifp = ifp; in brcmf_notify_vif_event()
5025 vif->wdev.netdev = ifp->ndev; in brcmf_notify_vif_event()
5026 ifp->ndev->ieee80211_ptr = &vif->wdev; in brcmf_notify_vif_event()
5874 set_bit(BRCMF_VIF_STATUS_READY, &ifp->vif->sme_state); in __brcmf_cfg80211_up()
5887 if (check_vif_up(ifp->vif)) { in __brcmf_cfg80211_down()
5888 brcmf_link_down(ifp->vif, WLAN_REASON_UNSPECIFIED); in __brcmf_cfg80211_down()
5898 clear_bit(BRCMF_VIF_STATUS_READY, &ifp->vif->sme_state); in __brcmf_cfg80211_down()
5931 struct wireless_dev *wdev = &ifp->vif->wdev; in brcmf_cfg80211_get_iftype()
5939 struct brcmf_cfg80211_vif *vif; in brcmf_get_vif_state_any() local
5941 list_for_each_entry(vif, &cfg->vif_list, list) { in brcmf_get_vif_state_any()
5942 if (test_bit(state, &vif->sme_state)) in brcmf_get_vif_state_any()
5960 struct brcmf_cfg80211_vif *vif) in brcmf_cfg80211_arm_vif_event() argument
5965 event->vif = vif; in brcmf_cfg80211_arm_vif_event()
5976 armed = event->vif != NULL; in brcmf_cfg80211_vif_event_armed()
6033 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_attach() local
6058 vif = brcmf_alloc_vif(cfg, NL80211_IFTYPE_STATION, false); in brcmf_cfg80211_attach()
6059 if (IS_ERR(vif)) in brcmf_cfg80211_attach()
6062 vif->ifp = ifp; in brcmf_cfg80211_attach()
6063 vif->wdev.netdev = ndev; in brcmf_cfg80211_attach()
6064 ndev->ieee80211_ptr = &vif->wdev; in brcmf_cfg80211_attach()
6070 brcmf_free_vif(vif); in brcmf_cfg80211_attach()
6073 ifp->vif = vif; in brcmf_cfg80211_attach()
6146 brcmf_free_vif(vif); in brcmf_cfg80211_attach()