Lines Matching refs:vif

97 static bool check_vif_up(struct brcmf_cfg80211_vif *vif)  in check_vif_up()  argument
99 if (!test_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state)) { in check_vif_up()
101 vif->sme_state); in check_vif_up()
390 struct brcmf_cfg80211_vif *vif, in brcmf_vif_change_validate() argument
398 if (pos == vif) in brcmf_vif_change_validate()
487 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_update_proto_addr_mode() local
490 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_update_proto_addr_mode()
491 ifp = vif->ifp; in brcmf_cfg80211_update_proto_addr_mode()
540 struct brcmf_cfg80211_vif *vif; in brcmf_ap_add_vif() local
548 vif = brcmf_alloc_vif(cfg, NL80211_IFTYPE_AP, false); in brcmf_ap_add_vif()
549 if (IS_ERR(vif)) in brcmf_ap_add_vif()
550 return (struct wireless_dev *)vif; in brcmf_ap_add_vif()
552 brcmf_cfg80211_arm_vif_event(cfg, vif); in brcmf_ap_add_vif()
571 ifp = vif->ifp; in brcmf_ap_add_vif()
585 return &ifp->vif->wdev; in brcmf_ap_add_vif()
588 brcmf_free_vif(vif); in brcmf_ap_add_vif()
592 static bool brcmf_is_apmode(struct brcmf_cfg80211_vif *vif) in brcmf_is_apmode() argument
596 iftype = vif->wdev.iftype; in brcmf_is_apmode()
600 static bool brcmf_is_ibssmode(struct brcmf_cfg80211_vif *vif) in brcmf_is_ibssmode() argument
602 return vif->wdev.iftype == NL80211_IFTYPE_ADHOC; in brcmf_is_ibssmode()
657 if (check_vif_up(ifp->vif)) { in brcmf_set_mpc()
774 struct brcmf_cfg80211_vif *vif = ifp->vif; in brcmf_cfg80211_change_iface() local
790 ((vif->wdev.iftype == NL80211_IFTYPE_P2P_CLIENT) || in brcmf_cfg80211_change_iface()
791 (vif->wdev.iftype == NL80211_IFTYPE_P2P_GO) || in brcmf_cfg80211_change_iface()
792 (vif->wdev.iftype == NL80211_IFTYPE_P2P_DEVICE))) { in brcmf_cfg80211_change_iface()
811 err = brcmf_vif_change_validate(wiphy_to_cfg(wiphy), vif, type); in brcmf_cfg80211_change_iface()
852 brcmf_dbg(INFO, "IF Type = %s\n", brcmf_is_ibssmode(vif) ? in brcmf_cfg80211_change_iface()
857 brcmf_cfg80211_update_proto_addr_mode(&vif->wdev); in brcmf_cfg80211_change_iface()
1022 brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif, in brcmf_cfg80211_escan() argument
1026 struct brcmf_if *ifp = vif->ifp; in brcmf_cfg80211_escan()
1052 if (test_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state)) { in brcmf_cfg80211_escan()
1053 brcmf_err("Connecting: status (%lu)\n", ifp->vif->sme_state); in brcmf_cfg80211_escan()
1058 if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif) in brcmf_cfg80211_escan()
1059 vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif; in brcmf_cfg80211_escan()
1076 err = brcmf_p2p_scan_prep(wiphy, request, vif); in brcmf_cfg80211_escan()
1080 err = brcmf_do_escan(cfg, wiphy, vif->ifp, request); in brcmf_cfg80211_escan()
1134 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_scan() local
1138 vif = container_of(request->wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_scan()
1139 if (!check_vif_up(vif)) in brcmf_cfg80211_scan()
1142 err = brcmf_cfg80211_escan(wiphy, vif, request, NULL); in brcmf_cfg80211_scan()
1196 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_wiphy_params()
1256 static void brcmf_link_down(struct brcmf_cfg80211_vif *vif, u16 reason) in brcmf_link_down() argument
1258 struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(vif->wdev.wiphy); in brcmf_link_down()
1263 if (test_bit(BRCMF_VIF_STATUS_CONNECTED, &vif->sme_state)) { in brcmf_link_down()
1265 err = brcmf_fil_cmd_data_set(vif->ifp, in brcmf_link_down()
1270 clear_bit(BRCMF_VIF_STATUS_CONNECTED, &vif->sme_state); in brcmf_link_down()
1271 cfg80211_disconnected(vif->wdev.netdev, reason, NULL, 0, in brcmf_link_down()
1275 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &vif->sme_state); in brcmf_link_down()
1277 brcmf_btcoex_set_mode(vif, BRCMF_BTCOEX_ENABLED, 0); in brcmf_link_down()
1287 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_cfg80211_join_ibss()
1296 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_join_ibss()
1306 set_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_join_ibss()
1428 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_join_ibss()
1439 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_leave_ibss()
1442 brcmf_link_down(ifp->vif, WLAN_REASON_DEAUTH_LEAVING); in brcmf_cfg80211_leave_ibss()
1731 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_cfg80211_connect()
1744 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_connect()
1752 if (ifp->vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif) { in brcmf_cfg80211_connect()
1774 err = brcmf_vif_set_mgmt_ie(ifp->vif, BRCMF_VNDR_IE_ASSOCREQ_FLAG, in brcmf_cfg80211_connect()
1781 set_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_connect()
1918 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_connect()
1928 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_cfg80211_disconnect()
1933 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_disconnect()
1936 clear_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state); in brcmf_cfg80211_disconnect()
1937 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_disconnect()
1963 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_tx_power()
2012 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_get_tx_power()
2038 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_config_default_key()
2091 if (!brcmf_is_apmode(ifp->vif) && in brcmf_add_keyext()
2156 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_add_key()
2172 key = &ifp->vif->profile.key[key_idx]; in brcmf_cfg80211_add_key()
2198 if (!brcmf_is_apmode(ifp->vif)) { in brcmf_cfg80211_add_key()
2254 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_del_key()
2284 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_cfg80211_get_key()
2291 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_get_key()
2348 key = &ifp->vif->profile.key[key_idx]; in brcmf_cfg80211_reconfigure_wep()
2439 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_get_station()
2571 if (!check_vif_up(ifp->vif)) { in brcmf_cfg80211_set_power_mgmt()
2579 if (ifp->vif->wdev.iftype == NL80211_IFTYPE_P2P_CLIENT) { in brcmf_cfg80211_set_power_mgmt()
2789 if (brcmf_is_ibssmode(ifp->vif)) in brcmf_update_bss_info()
3123 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_suspend() local
3130 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_suspend()
3139 list_for_each_entry(vif, &cfg->vif_list, list) { in brcmf_cfg80211_suspend()
3140 if (!test_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state)) in brcmf_cfg80211_suspend()
3146 brcmf_link_down(vif, WLAN_REASON_UNSPECIFIED); in brcmf_cfg80211_suspend()
3204 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_pmksa()
3243 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_del_pmksa()
3292 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_flush_pmksa()
3854 s32 brcmf_vif_set_mgmt_ie(struct brcmf_cfg80211_vif *vif, s32 pktflag, in brcmf_vif_set_mgmt_ie() argument
3875 if (!vif) in brcmf_vif_set_mgmt_ie()
3877 ifp = vif->ifp; in brcmf_vif_set_mgmt_ie()
3878 saved_ie = &vif->saved_ie; in brcmf_vif_set_mgmt_ie()
4015 s32 brcmf_vif_clear_mgmt_ies(struct brcmf_cfg80211_vif *vif) in brcmf_vif_clear_mgmt_ies() argument
4025 brcmf_vif_set_mgmt_ie(vif, pktflags[i], NULL, 0); in brcmf_vif_clear_mgmt_ies()
4027 memset(&vif->saved_ie, 0, sizeof(vif->saved_ie)); in brcmf_vif_clear_mgmt_ies()
4032 brcmf_config_ap_mgmt_ie(struct brcmf_cfg80211_vif *vif, in brcmf_config_ap_mgmt_ie() argument
4038 err = brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_BEACON_FLAG, in brcmf_config_ap_mgmt_ie()
4047 err = brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_PRBRSP_FLAG, in brcmf_config_ap_mgmt_ie()
4085 dev_role = ifp->vif->wdev.iftype; in brcmf_cfg80211_start_ap()
4086 mbss = ifp->vif->mbss; in brcmf_cfg80211_start_ap()
4089 brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_REGULATORY, &ifp->vif->is_11d); in brcmf_cfg80211_start_ap()
4148 brcmf_config_ap_mgmt_ie(ifp->vif, &settings->beacon); in brcmf_cfg80211_start_ap()
4160 if (is_11d != ifp->vif->is_11d) { in brcmf_cfg80211_start_ap()
4200 } else if (WARN_ON(is_11d != ifp->vif->is_11d)) { in brcmf_cfg80211_start_ap()
4253 set_bit(BRCMF_VIF_STATUS_AP_CREATED, &ifp->vif->sme_state); in brcmf_cfg80211_start_ap()
4273 if (ifp->vif->wdev.iftype == NL80211_IFTYPE_AP) { in brcmf_cfg80211_stop_ap()
4278 if (ifp->vif->mbss) { in brcmf_cfg80211_stop_ap()
4300 ifp->vif->is_11d); in brcmf_cfg80211_stop_ap()
4318 clear_bit(BRCMF_VIF_STATUS_AP_CREATED, &ifp->vif->sme_state); in brcmf_cfg80211_stop_ap()
4333 err = brcmf_config_ap_mgmt_ie(ifp->vif, info); in brcmf_cfg80211_change_beacon()
4352 if (ifp->vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif) in brcmf_cfg80211_del_station()
4353 ifp = cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif->ifp; in brcmf_cfg80211_del_station()
4354 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_del_station()
4402 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_mgmt_frame_register() local
4408 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_mgmt_frame_register()
4410 vif->mgmt_rx_reg |= BIT(mgmt_type); in brcmf_cfg80211_mgmt_frame_register()
4412 vif->mgmt_rx_reg &= ~BIT(mgmt_type); in brcmf_cfg80211_mgmt_frame_register()
4425 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_mgmt_tx() local
4446 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_mgmt_tx()
4463 if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif) in brcmf_cfg80211_mgmt_tx()
4464 vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif; in brcmf_cfg80211_mgmt_tx()
4465 err = brcmf_vif_set_mgmt_ie(vif, in brcmf_cfg80211_mgmt_tx()
4492 brcmf_fil_cmd_int_get(vif->ifp, BRCMF_C_GET_CHANNEL, in brcmf_cfg80211_mgmt_tx()
4525 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_cancel_remain_on_channel() local
4530 vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif; in brcmf_cfg80211_cancel_remain_on_channel()
4531 if (vif == NULL) { in brcmf_cfg80211_cancel_remain_on_channel()
4536 brcmf_p2p_cancel_remain_on_channel(vif->ifp); in brcmf_cfg80211_cancel_remain_on_channel()
4547 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_crit_proto_start() local
4549 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_crit_proto_start()
4559 return brcmf_btcoex_set_mode(vif, BRCMF_BTCOEX_DISABLED, duration); in brcmf_cfg80211_crit_proto_start()
4566 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_crit_proto_stop() local
4568 vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev); in brcmf_cfg80211_crit_proto_stop()
4570 brcmf_btcoex_set_mode(vif, BRCMF_BTCOEX_ENABLED, 0); in brcmf_cfg80211_crit_proto_stop()
4690 struct brcmf_cfg80211_vif *vif; in brcmf_alloc_vif() local
4694 sizeof(*vif)); in brcmf_alloc_vif()
4695 vif = kzalloc(sizeof(*vif), GFP_KERNEL); in brcmf_alloc_vif()
4696 if (!vif) in brcmf_alloc_vif()
4699 vif->wdev.wiphy = cfg->wiphy; in brcmf_alloc_vif()
4700 vif->wdev.iftype = type; in brcmf_alloc_vif()
4702 vif->pm_block = pm_block; in brcmf_alloc_vif()
4703 vif->roam_off = -1; in brcmf_alloc_vif()
4705 brcmf_init_prof(&vif->profile); in brcmf_alloc_vif()
4715 vif->mbss = mbss; in brcmf_alloc_vif()
4718 list_add_tail(&vif->list, &cfg->vif_list); in brcmf_alloc_vif()
4719 return vif; in brcmf_alloc_vif()
4722 void brcmf_free_vif(struct brcmf_cfg80211_vif *vif) in brcmf_free_vif() argument
4724 list_del(&vif->list); in brcmf_free_vif()
4725 kfree(vif); in brcmf_free_vif()
4730 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_free_netdev() local
4734 vif = ifp->vif; in brcmf_cfg80211_free_netdev()
4736 if (vif) in brcmf_cfg80211_free_netdev()
4737 brcmf_free_vif(vif); in brcmf_cfg80211_free_netdev()
4865 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_bss_roaming_done()
4915 set_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state); in brcmf_bss_roaming_done()
4926 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_bss_connect_done()
4932 &ifp->vif->sme_state)) { in brcmf_bss_connect_done()
4938 &ifp->vif->sme_state); in brcmf_bss_connect_done()
4972 if (ifp->vif->mbss) in brcmf_notify_connect_status_ap()
5003 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_notify_connect_status()
5014 if (brcmf_is_apmode(ifp->vif)) { in brcmf_notify_connect_status()
5018 if (brcmf_is_ibssmode(ifp->vif)) { in brcmf_notify_connect_status()
5024 &ifp->vif->sme_state); in brcmf_notify_connect_status()
5026 &ifp->vif->sme_state); in brcmf_notify_connect_status()
5032 if (!brcmf_is_ibssmode(ifp->vif)) { in brcmf_notify_connect_status()
5035 brcmf_link_down(ifp->vif, brcmf_map_fw_linkdown_reason(e)); in brcmf_notify_connect_status()
5041 if (brcmf_is_ibssmode(ifp->vif)) in brcmf_notify_connect_status()
5043 &ifp->vif->sme_state); in brcmf_notify_connect_status()
5060 if (test_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state)) in brcmf_notify_roaming_status()
5093 struct brcmf_cfg80211_vif *vif; in brcmf_notify_vif_event() local
5101 vif = event->vif; in brcmf_notify_vif_event()
5106 if (!cfg->vif_event.vif) { in brcmf_notify_vif_event()
5111 ifp->vif = vif; in brcmf_notify_vif_event()
5112 vif->ifp = ifp; in brcmf_notify_vif_event()
5114 vif->wdev.netdev = ifp->ndev; in brcmf_notify_vif_event()
5115 ifp->ndev->ieee80211_ptr = &vif->wdev; in brcmf_notify_vif_event()
6036 set_bit(BRCMF_VIF_STATUS_READY, &ifp->vif->sme_state); in __brcmf_cfg80211_up()
6049 if (check_vif_up(ifp->vif)) { in __brcmf_cfg80211_down()
6050 brcmf_link_down(ifp->vif, WLAN_REASON_UNSPECIFIED); in __brcmf_cfg80211_down()
6060 clear_bit(BRCMF_VIF_STATUS_READY, &ifp->vif->sme_state); in __brcmf_cfg80211_down()
6093 struct wireless_dev *wdev = &ifp->vif->wdev; in brcmf_cfg80211_get_iftype()
6101 struct brcmf_cfg80211_vif *vif; in brcmf_get_vif_state_any() local
6103 list_for_each_entry(vif, &cfg->vif_list, list) { in brcmf_get_vif_state_any()
6104 if (test_bit(state, &vif->sme_state)) in brcmf_get_vif_state_any()
6122 struct brcmf_cfg80211_vif *vif) in brcmf_cfg80211_arm_vif_event() argument
6127 event->vif = vif; in brcmf_cfg80211_arm_vif_event()
6138 armed = event->vif != NULL; in brcmf_cfg80211_vif_event_armed()
6209 struct brcmf_cfg80211_vif *vif; in brcmf_cfg80211_attach() local
6235 vif = brcmf_alloc_vif(cfg, NL80211_IFTYPE_STATION, false); in brcmf_cfg80211_attach()
6236 if (IS_ERR(vif)) in brcmf_cfg80211_attach()
6239 vif->ifp = ifp; in brcmf_cfg80211_attach()
6240 vif->wdev.netdev = ndev; in brcmf_cfg80211_attach()
6241 ndev->ieee80211_ptr = &vif->wdev; in brcmf_cfg80211_attach()
6247 brcmf_free_vif(vif); in brcmf_cfg80211_attach()
6250 ifp->vif = vif; in brcmf_cfg80211_attach()
6341 brcmf_free_vif(vif); in brcmf_cfg80211_attach()
6342 ifp->vif = NULL; in brcmf_cfg80211_attach()