Lines Matching refs:ifp
456 send_key_to_dongle(struct brcmf_if *ifp, struct brcmf_wsec_key *key) in send_key_to_dongle() argument
463 brcmf_netdev_wait_pend8021x(ifp); in send_key_to_dongle()
465 err = brcmf_fil_bsscfg_data_set(ifp, "wsec_key", &key_le, in send_key_to_dongle()
474 brcmf_configure_arp_offload(struct brcmf_if *ifp, bool enable) in brcmf_configure_arp_offload() argument
486 err = brcmf_fil_iovar_int_set(ifp, "arp_ol", mode); in brcmf_configure_arp_offload()
492 err = brcmf_fil_iovar_int_set(ifp, "arpoe", enable); in brcmf_configure_arp_offload()
509 struct brcmf_if *ifp; in brcmf_cfg80211_update_proto_addr_mode() local
512 ifp = vif->ifp; in brcmf_cfg80211_update_proto_addr_mode()
517 brcmf_proto_configure_addr_mode(ifp->drvr, ifp->ifidx, in brcmf_cfg80211_update_proto_addr_mode()
520 brcmf_proto_configure_addr_mode(ifp->drvr, ifp->ifidx, in brcmf_cfg80211_update_proto_addr_mode()
524 static int brcmf_cfg80211_request_ap_if(struct brcmf_if *ifp) in brcmf_cfg80211_request_ap_if() argument
531 bsscfgidx = brcmf_get_next_free_bsscfgidx(ifp->drvr); in brcmf_cfg80211_request_ap_if()
539 err = brcmf_fil_bsscfg_data_set(ifp, "bsscfg:ssid", &mbss_ssid_le, in brcmf_cfg80211_request_ap_if()
560 struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg)); in brcmf_ap_add_vif() local
575 err = brcmf_cfg80211_request_ap_if(ifp); in brcmf_ap_add_vif()
592 ifp = vif->ifp; in brcmf_ap_add_vif()
593 if (!ifp) { in brcmf_ap_add_vif()
599 strncpy(ifp->ndev->name, name, sizeof(ifp->ndev->name) - 1); in brcmf_ap_add_vif()
600 err = brcmf_net_attach(ifp, true); in brcmf_ap_add_vif()
606 return &ifp->vif->wdev; in brcmf_ap_add_vif()
662 static void brcmf_scan_config_mpc(struct brcmf_if *ifp, int mpc) in brcmf_scan_config_mpc() argument
664 if (brcmf_feat_is_quirk_enabled(ifp, BRCMF_FEAT_QUIRK_NEED_MPC)) in brcmf_scan_config_mpc()
665 brcmf_set_mpc(ifp, mpc); in brcmf_scan_config_mpc()
668 void brcmf_set_mpc(struct brcmf_if *ifp, int mpc) in brcmf_set_mpc() argument
672 if (check_vif_up(ifp->vif)) { in brcmf_set_mpc()
673 err = brcmf_fil_iovar_int_set(ifp, "mpc", mpc); in brcmf_set_mpc()
683 struct brcmf_if *ifp, bool aborted, in brcmf_notify_escan_complete() argument
715 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SCAN, in brcmf_notify_escan_complete()
721 brcmf_scan_config_mpc(ifp, 1); in brcmf_notify_escan_complete()
755 cfg->escan_info.ifp == netdev_priv(ndev)) in brcmf_cfg80211_del_iface()
788 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_change_iface() local
789 struct brcmf_cfg80211_vif *vif = ifp->vif; in brcmf_cfg80211_change_iface()
839 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_INFRA, infra); in brcmf_cfg80211_change_iface()
940 brcmf_run_escan(struct brcmf_cfg80211_info *cfg, struct brcmf_if *ifp, in brcmf_run_escan() argument
969 err = brcmf_fil_iovar_data_set(ifp, "escan", params, params_size); in brcmf_run_escan()
984 struct brcmf_if *ifp, struct cfg80211_scan_request *request) in brcmf_do_escan() argument
992 escan->ifp = ifp; in brcmf_do_escan()
996 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PASSIVE_SCAN, in brcmf_do_escan()
1002 brcmf_scan_config_mpc(ifp, 0); in brcmf_do_escan()
1008 err = escan->run(cfg, ifp, request, WL_ESCAN_ACTION_START); in brcmf_do_escan()
1010 brcmf_scan_config_mpc(ifp, 1); in brcmf_do_escan()
1019 struct brcmf_if *ifp = vif->ifp; in brcmf_cfg80211_escan() local
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()
1073 err = brcmf_do_escan(cfg, wiphy, vif->ifp, request); in brcmf_cfg80211_escan()
1091 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PASSIVE_SCAN, in brcmf_cfg80211_escan()
1097 brcmf_scan_config_mpc(ifp, 0); in brcmf_cfg80211_escan()
1098 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SCAN, in brcmf_cfg80211_escan()
1107 brcmf_scan_config_mpc(ifp, 1); in brcmf_cfg80211_escan()
1185 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_set_wiphy_params() local
1189 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_wiphy_params()
1258 err = brcmf_fil_cmd_data_set(vif->ifp, in brcmf_link_down()
1279 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_join_ibss() local
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()
1342 err = brcmf_fil_iovar_int_set(ifp, "wsec", wsec); in brcmf_cfg80211_join_ibss()
1354 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_BCNPRD, bcnprd); in brcmf_cfg80211_join_ibss()
1400 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_CHANNEL, in brcmf_cfg80211_join_ibss()
1412 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SSID, in brcmf_cfg80211_join_ibss()
1421 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_join_ibss()
1429 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_leave_ibss() local
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()
1707 enum nl80211_auth_type brcmf_war_auth_type(struct brcmf_if *ifp, in brcmf_war_auth_type() argument
1711 brcmf_feat_is_quirk_enabled(ifp, BRCMF_FEAT_QUIRK_AUTO_AUTH)) { in brcmf_war_auth_type()
1723 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_connect() local
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()
1764 brcmf_fil_iovar_data_set(ifp, "wpaie", ie, ie_len); 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()
1795 sme->auth_type = brcmf_war_auth_type(ifp, sme->auth_type); in brcmf_cfg80211_connect()
1880 err = brcmf_fil_bsscfg_data_set(ifp, "join", ext_join_params, in brcmf_cfg80211_connect()
1904 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SSID, in brcmf_cfg80211_connect()
1911 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_connect()
1920 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_disconnect() local
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()
1935 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_DISASSOC, in brcmf_cfg80211_disconnect()
1951 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_set_tx_power() local
1958 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_tx_power()
1975 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_RADIO, disable); in brcmf_cfg80211_set_tx_power()
1983 err = brcmf_fil_iovar_int_set(ifp, "qtxpower", in brcmf_cfg80211_set_tx_power()
1999 struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg)); in brcmf_cfg80211_get_tx_power() local
2005 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_get_tx_power()
2008 err = brcmf_fil_iovar_int_get(ifp, "qtxpower", &txpwrdbm); in brcmf_cfg80211_get_tx_power()
2026 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_config_default_key() local
2033 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_config_default_key()
2036 err = brcmf_fil_bsscfg_int_get(ifp, "wsec", &wsec); in brcmf_cfg80211_config_default_key()
2045 err = brcmf_fil_cmd_int_set(ifp, in brcmf_cfg80211_config_default_key()
2059 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_add_keyext() local
2074 err = send_key_to_dongle(ifp, &key); in brcmf_add_keyext()
2086 if (!brcmf_is_apmode(ifp->vif) && in brcmf_add_keyext()
2130 err = send_key_to_dongle(ifp, &key); in brcmf_add_keyext()
2142 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_add_key() local
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()
2219 err = send_key_to_dongle(ifp, key); in brcmf_cfg80211_add_key()
2223 err = brcmf_fil_bsscfg_int_get(ifp, "wsec", &wsec); in brcmf_cfg80211_add_key()
2229 err = brcmf_fil_bsscfg_int_set(ifp, "wsec", wsec); in brcmf_cfg80211_add_key()
2244 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_del_key() local
2249 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_del_key()
2266 err = send_key_to_dongle(ifp, &key); in brcmf_cfg80211_del_key()
2278 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_get_key() local
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()
2291 err = brcmf_fil_bsscfg_int_get(ifp, "wsec", &wsec); in brcmf_cfg80211_get_key()
2335 brcmf_cfg80211_reconfigure_wep(struct brcmf_if *ifp) in brcmf_cfg80211_reconfigure_wep() argument
2343 key = &ifp->vif->profile.key[key_idx]; in brcmf_cfg80211_reconfigure_wep()
2351 err = send_key_to_dongle(ifp, key); in brcmf_cfg80211_reconfigure_wep()
2356 err = brcmf_fil_bsscfg_int_get(ifp, "wsec", &wsec); in brcmf_cfg80211_reconfigure_wep()
2362 err = brcmf_fil_bsscfg_int_set(ifp, "wsec", wsec); in brcmf_cfg80211_reconfigure_wep()
2371 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_get_station() local
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()
2388 err = brcmf_fil_iovar_data_get(ifp, "sta_info", in brcmf_cfg80211_get_station()
2403 } else if (ifp->vif->wdev.iftype == NL80211_IFTYPE_STATION) { in brcmf_cfg80211_get_station()
2411 err = brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_RATE, &rate); in brcmf_cfg80211_get_station()
2422 &ifp->vif->sme_state)) { in brcmf_cfg80211_get_station()
2424 err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_RSSI, in brcmf_cfg80211_get_station()
2435 err = brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_BCNPRD, in brcmf_cfg80211_get_station()
2447 err = brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_DTIMPRD, in brcmf_cfg80211_get_station()
2474 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_set_power_mgmt() local
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()
2500 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, pm); in brcmf_cfg80211_set_power_mgmt()
2691 struct brcmf_if *ifp) in brcmf_update_bss_info() argument
2693 struct brcmf_cfg80211_profile *profile = ndev_to_prof(ifp->ndev); in brcmf_update_bss_info()
2704 if (brcmf_is_ibssmode(ifp->vif)) in brcmf_update_bss_info()
2710 err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BSS_INFO, in brcmf_update_bss_info()
2736 err = brcmf_fil_iovar_int_get(ifp, "dtim_assoc", &var); in brcmf_update_bss_info()
2756 brcmf_notify_escan_complete(cfg, escan->ifp, true, true); in brcmf_abort_scanning()
2769 brcmf_notify_escan_complete(cfg, cfg->escan_info.ifp, true, true); in brcmf_cfg80211_escan_timeout_worker()
2823 brcmf_cfg80211_escan_handler(struct brcmf_if *ifp, in brcmf_cfg80211_escan_handler() argument
2826 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_cfg80211_escan_handler()
2839 brcmf_err("scan not ready, bssidx=%d\n", ifp->bssidx); in brcmf_cfg80211_escan_handler()
2909 brcmf_notify_escan_complete(cfg, ifp, aborted, false); in brcmf_cfg80211_escan_handler()
2941 static s32 brcmf_config_wowl_pattern(struct brcmf_if *ifp, u8 cmd[4], in brcmf_config_wowl_pattern() argument
2973 ret = brcmf_fil_iovar_data_set(ifp, "wowl_pattern", buf, bufsize); in brcmf_config_wowl_pattern()
2983 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_resume() local
2988 brcmf_configure_arp_offload(ifp, true); in brcmf_cfg80211_resume()
2989 brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, in brcmf_cfg80211_resume()
2991 brcmf_fil_iovar_int_set(ifp, "wowl_clear", 0); in brcmf_cfg80211_resume()
2992 brcmf_config_wowl_pattern(ifp, "clr", NULL, 0, NULL, 0); in brcmf_cfg80211_resume()
2999 struct brcmf_if *ifp, in brcmf_configure_wowl() argument
3007 brcmf_configure_arp_offload(ifp, false); in brcmf_configure_wowl()
3008 brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_PM, &cfg->pre_wowl_pmmode); in brcmf_configure_wowl()
3009 brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, PM_MAX); in brcmf_configure_wowl()
3019 brcmf_config_wowl_pattern(ifp, "add", in brcmf_configure_wowl()
3026 brcmf_fil_iovar_int_set(ifp, "wowl", wowl_config); in brcmf_configure_wowl()
3027 brcmf_fil_iovar_int_set(ifp, "wowl_activate", 1); in brcmf_configure_wowl()
3037 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_suspend() local
3045 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_suspend()
3069 brcmf_set_mpc(ifp, 1); in brcmf_cfg80211_suspend()
3073 brcmf_configure_wowl(cfg, ifp, wowl); in brcmf_cfg80211_suspend()
3113 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_set_pmksa() local
3119 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_pmksa()
3152 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_del_pmksa() local
3158 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_del_pmksa()
3203 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_flush_pmksa() local
3207 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_flush_pmksa()
3227 brcmf_notify_sched_scan_results(struct brcmf_if *ifp, in brcmf_notify_sched_scan_results() argument
3230 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_notify_sched_scan_results()
3315 err = brcmf_do_escan(cfg, wiphy, ifp, request); in brcmf_notify_sched_scan_results()
3381 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_sched_scan_start() local
3452 ret = brcmf_fil_iovar_data_set(ifp, "pfn_add", &pfn, in brcmf_cfg80211_sched_scan_start()
3458 if (brcmf_fil_iovar_int_set(ifp, "pfn", 1) < 0) { in brcmf_cfg80211_sched_scan_start()
3481 static s32 brcmf_configure_opensecurity(struct brcmf_if *ifp) in brcmf_configure_opensecurity() argument
3486 err = brcmf_fil_bsscfg_int_set(ifp, "auth", 0); in brcmf_configure_opensecurity()
3492 err = brcmf_fil_bsscfg_int_set(ifp, "wsec", 0); in brcmf_configure_opensecurity()
3498 err = brcmf_fil_bsscfg_int_set(ifp, "wpa_auth", WPA_AUTH_NONE); in brcmf_configure_opensecurity()
3516 brcmf_configure_wpaie(struct brcmf_if *ifp, in brcmf_configure_wpaie() argument
3661 err = brcmf_fil_bsscfg_int_set(ifp, "wme_bss_disable", in brcmf_configure_wpaie()
3672 err = brcmf_fil_bsscfg_int_set(ifp, "auth", auth); in brcmf_configure_wpaie()
3678 err = brcmf_fil_bsscfg_int_set(ifp, "wsec", wsec); in brcmf_configure_wpaie()
3684 err = brcmf_fil_bsscfg_int_set(ifp, "wpa_auth", wpa_auth); in brcmf_configure_wpaie()
3772 struct brcmf_if *ifp; in brcmf_vif_set_mgmt_ie() local
3792 ifp = vif->ifp; in brcmf_vif_set_mgmt_ie()
3795 brcmf_dbg(TRACE, "bssidx %d, pktflag : 0x%02X\n", ifp->bssidx, pktflag); in brcmf_vif_set_mgmt_ie()
3919 err = brcmf_fil_bsscfg_data_set(ifp, "vndr_ie", iovar_ie_buf, in brcmf_vif_set_mgmt_ie()
3979 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_start_ap() local
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()
4029 brcmf_set_mpc(ifp, 0); in brcmf_cfg80211_start_ap()
4030 brcmf_configure_arp_offload(ifp, false); in brcmf_cfg80211_start_ap()
4045 err = brcmf_configure_wpaie(ifp, wpa_ie, false); in brcmf_cfg80211_start_ap()
4054 err = brcmf_configure_wpaie(ifp, tmp_ie, true); in brcmf_cfg80211_start_ap()
4060 brcmf_configure_opensecurity(ifp); in brcmf_cfg80211_start_ap()
4063 brcmf_config_ap_mgmt_ie(ifp->vif, &settings->beacon); in brcmf_cfg80211_start_ap()
4068 err = brcmf_fil_iovar_int_set(ifp, "chanspec", chanspec); in brcmf_cfg80211_start_ap()
4075 if (is_11d != ifp->vif->is_11d) { in brcmf_cfg80211_start_ap()
4076 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_REGULATORY, in brcmf_cfg80211_start_ap()
4084 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_BCNPRD, in brcmf_cfg80211_start_ap()
4093 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_DTIMPRD, in brcmf_cfg80211_start_ap()
4102 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1); in brcmf_cfg80211_start_ap()
4107 brcmf_fil_iovar_int_set(ifp, "apsta", 0); in brcmf_cfg80211_start_ap()
4110 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_INFRA, 1); in brcmf_cfg80211_start_ap()
4115 } else if (WARN_ON(is_11d != ifp->vif->is_11d)) { in brcmf_cfg80211_start_ap()
4121 if ((brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS)) && (!mbss)) in brcmf_cfg80211_start_ap()
4122 brcmf_fil_iovar_int_set(ifp, "mbss", 1); in brcmf_cfg80211_start_ap()
4124 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_AP, 1); in brcmf_cfg80211_start_ap()
4129 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_UP, 1); in brcmf_cfg80211_start_ap()
4137 brcmf_cfg80211_reconfigure_wep(ifp); in brcmf_cfg80211_start_ap()
4143 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SSID, in brcmf_cfg80211_start_ap()
4151 err = brcmf_fil_bsscfg_data_set(ifp, "ssid", &ssid_le, in brcmf_cfg80211_start_ap()
4157 bss_enable.bsscfg_idx = cpu_to_le32(ifp->bssidx); in brcmf_cfg80211_start_ap()
4159 err = brcmf_fil_iovar_data_set(ifp, "bss", &bss_enable, 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()
4173 brcmf_set_mpc(ifp, 1); in brcmf_cfg80211_start_ap()
4174 brcmf_configure_arp_offload(ifp, true); in brcmf_cfg80211_start_ap()
4181 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_stop_ap() local
4188 if (ifp->vif->wdev.iftype == NL80211_IFTYPE_AP) { in brcmf_cfg80211_stop_ap()
4193 if (ifp->vif->mbss) { in brcmf_cfg80211_stop_ap()
4194 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1); in brcmf_cfg80211_stop_ap()
4199 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SSID, in brcmf_cfg80211_stop_ap()
4203 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1); in brcmf_cfg80211_stop_ap()
4206 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_AP, 0); in brcmf_cfg80211_stop_ap()
4209 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_INFRA, 0); in brcmf_cfg80211_stop_ap()
4212 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS)) in brcmf_cfg80211_stop_ap()
4213 brcmf_fil_iovar_int_set(ifp, "mbss", 0); in brcmf_cfg80211_stop_ap()
4214 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_REGULATORY, in brcmf_cfg80211_stop_ap()
4215 ifp->vif->is_11d); in brcmf_cfg80211_stop_ap()
4220 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_UP, 1); in brcmf_cfg80211_stop_ap()
4224 bss_enable.bsscfg_idx = cpu_to_le32(ifp->bssidx); in brcmf_cfg80211_stop_ap()
4226 err = brcmf_fil_iovar_data_set(ifp, "bss", &bss_enable, in brcmf_cfg80211_stop_ap()
4231 brcmf_set_mpc(ifp, 1); in brcmf_cfg80211_stop_ap()
4232 brcmf_configure_arp_offload(ifp, true); 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()
4243 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_change_beacon() local
4248 err = brcmf_config_ap_mgmt_ie(ifp->vif, info); in brcmf_cfg80211_change_beacon()
4259 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_del_station() local
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()
4274 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SCB_DEAUTHENTICATE_FOR_REASON, in brcmf_cfg80211_del_station()
4287 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_change_station() local
4301 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SCB_AUTHORIZE, in brcmf_cfg80211_change_station()
4304 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SCB_DEAUTHORIZE, in brcmf_cfg80211_change_station()
4407 brcmf_fil_cmd_int_get(vif->ifp, BRCMF_C_GET_CHANNEL, in brcmf_cfg80211_mgmt_tx()
4451 brcmf_p2p_cancel_remain_on_channel(vif->ifp); in brcmf_cfg80211_cancel_remain_on_channel()
4490 brcmf_notify_tdls_peer_event(struct brcmf_if *ifp, in brcmf_notify_tdls_peer_event() argument
4499 brcmf_proto_add_tdls_peer(ifp->drvr, ifp->ifidx, (u8 *)e->addr); in brcmf_notify_tdls_peer_event()
4503 brcmf_proto_delete_peer(ifp->drvr, ifp->ifidx, (u8 *)e->addr); in brcmf_notify_tdls_peer_event()
4535 struct brcmf_if *ifp; in brcmf_cfg80211_tdls_oper() local
4543 ifp = netdev_priv(ndev); in brcmf_cfg80211_tdls_oper()
4549 ret = brcmf_fil_iovar_data_set(ifp, "tdls_endpoint", in brcmf_cfg80211_tdls_oper()
4645 struct brcmf_if *ifp; in brcmf_cfg80211_free_netdev() local
4647 ifp = netdev_priv(ndev); in brcmf_cfg80211_free_netdev()
4648 vif = ifp->vif; in brcmf_cfg80211_free_netdev()
4714 struct brcmf_if *ifp) in brcmf_get_assoc_ies() argument
4724 err = brcmf_fil_iovar_data_get(ifp, "assoc_info", in brcmf_get_assoc_ies()
4735 err = brcmf_fil_iovar_data_get(ifp, "assoc_req_ies", in brcmf_get_assoc_ies()
4751 err = brcmf_fil_iovar_data_get(ifp, "assoc_resp_ies", in brcmf_get_assoc_ies()
4777 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_bss_roaming_done() local
4778 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_bss_roaming_done()
4791 brcmf_get_assoc_ies(cfg, ifp); in brcmf_bss_roaming_done()
4793 brcmf_update_bss_info(cfg, ifp); in brcmf_bss_roaming_done()
4803 err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BSS_INFO, in brcmf_bss_roaming_done()
4828 set_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state); in brcmf_bss_roaming_done()
4838 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_bss_connect_done() local
4839 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_bss_connect_done()
4845 &ifp->vif->sme_state)) { in brcmf_bss_connect_done()
4847 brcmf_get_assoc_ies(cfg, ifp); in brcmf_bss_connect_done()
4849 brcmf_update_bss_info(cfg, ifp); in brcmf_bss_connect_done()
4851 &ifp->vif->sme_state); in brcmf_bss_connect_done()
4874 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_notify_connect_status_ap() local
4885 if (ifp->vif->mbss) in brcmf_notify_connect_status_ap()
4886 brcmf_remove_interface(ifp->drvr, ifp->bssidx); in brcmf_notify_connect_status_ap()
4911 brcmf_notify_connect_status(struct brcmf_if *ifp, in brcmf_notify_connect_status() argument
4914 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_notify_connect_status()
4915 struct net_device *ndev = ifp->ndev; in brcmf_notify_connect_status()
4916 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_notify_connect_status()
4924 brcmf_proto_delete_peer(ifp->drvr, ifp->ifidx, (u8 *)e->addr); 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()
4963 brcmf_notify_roaming_status(struct brcmf_if *ifp, in brcmf_notify_roaming_status() argument
4966 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_notify_roaming_status()
4971 if (test_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state)) in brcmf_notify_roaming_status()
4972 brcmf_bss_roaming_done(cfg, ifp->ndev, e); in brcmf_notify_roaming_status()
4974 brcmf_bss_connect_done(cfg, ifp->ndev, e, true); in brcmf_notify_roaming_status()
4981 brcmf_notify_mic_status(struct brcmf_if *ifp, in brcmf_notify_mic_status() argument
4992 cfg80211_michael_mic_failure(ifp->ndev, (u8 *)&e->addr, key_type, -1, in brcmf_notify_mic_status()
4998 static s32 brcmf_notify_vif_event(struct brcmf_if *ifp, in brcmf_notify_vif_event() argument
5001 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_notify_vif_event()
5022 ifp->vif = vif; in brcmf_notify_vif_event()
5023 vif->ifp = ifp; in brcmf_notify_vif_event()
5024 if (ifp->ndev) { 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()
5027 SET_NETDEV_DEV(ifp->ndev, wiphy_dev(cfg->wiphy)); in brcmf_notify_vif_event()
5165 brcmf_dongle_roam(struct brcmf_if *ifp, u32 bcn_timeout) in brcmf_dongle_roam() argument
5176 err = brcmf_fil_iovar_int_set(ifp, "bcn_timeout", bcn_timeout); in brcmf_dongle_roam()
5189 err = brcmf_fil_iovar_int_set(ifp, "roam_off", !!(brcmf_roamoff)); in brcmf_dongle_roam()
5197 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER, in brcmf_dongle_roam()
5206 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_DELTA, in brcmf_dongle_roam()
5218 brcmf_dongle_scantime(struct brcmf_if *ifp, s32 scan_assoc_time, in brcmf_dongle_scantime() argument
5223 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_CHANNEL_TIME, in brcmf_dongle_scantime()
5232 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_UNASSOC_TIME, in brcmf_dongle_scantime()
5242 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_PASSIVE_TIME, in brcmf_dongle_scantime()
5314 struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg)); in brcmf_construct_chaninfo() local
5335 err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf, in brcmf_construct_chaninfo()
5428 err = brcmf_fil_bsscfg_int_get(ifp, "per_chan_info", in brcmf_construct_chaninfo()
5457 struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg)); in brcmf_enable_bw40_2g() local
5470 err = brcmf_fil_iovar_int_get(ifp, "bw_cap", &val); in brcmf_enable_bw40_2g()
5476 err = brcmf_fil_iovar_data_set(ifp, "bw_cap", &band_bwcap, in brcmf_enable_bw40_2g()
5481 err = brcmf_fil_iovar_int_set(ifp, "mimo_bw_cap", val); in brcmf_enable_bw40_2g()
5500 err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf, in brcmf_enable_bw40_2g()
5532 static void brcmf_get_bwcap(struct brcmf_if *ifp, u32 bw_cap[]) in brcmf_get_bwcap() argument
5538 err = brcmf_fil_iovar_int_get(ifp, "bw_cap", &band); in brcmf_get_bwcap()
5542 err = brcmf_fil_iovar_int_get(ifp, "bw_cap", &band); in brcmf_get_bwcap()
5552 err = brcmf_fil_iovar_int_get(ifp, "mimo_bw_cap", &mimo_bwcap); in brcmf_get_bwcap()
5625 struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg)); in brcmf_setup_wiphybands() local
5635 (void)brcmf_fil_iovar_int_get(ifp, "vhtmode", &vhtmode); in brcmf_setup_wiphybands()
5636 err = brcmf_fil_iovar_int_get(ifp, "nmode", &nmode); in brcmf_setup_wiphybands()
5640 brcmf_get_bwcap(ifp, bw_cap); in brcmf_setup_wiphybands()
5646 err = brcmf_fil_iovar_int_get(ifp, "rxchain", &rxchain); in brcmf_setup_wiphybands()
5780 static int brcmf_setup_wiphy(struct wiphy *wiphy, struct brcmf_if *ifp) in brcmf_setup_wiphy() argument
5794 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MCHAN)) in brcmf_setup_wiphy()
5796 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS)) { in brcmf_setup_wiphy()
5821 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL)) in brcmf_setup_wiphy()
5831 struct brcmf_if *ifp; in brcmf_config_dongle() local
5840 ifp = netdev_priv(ndev); in brcmf_config_dongle()
5843 brcmf_fil_cmd_int_set(ifp, BRCMF_C_UP, 0); in brcmf_config_dongle()
5845 brcmf_dongle_scantime(ifp, WL_SCAN_CHANNEL_TIME, in brcmf_config_dongle()
5849 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, power_mode); in brcmf_config_dongle()
5855 err = brcmf_dongle_roam(ifp, WL_BEACON_TIMEOUT); in brcmf_config_dongle()
5863 brcmf_configure_arp_offload(ifp, true); in brcmf_config_dongle()
5872 static s32 __brcmf_cfg80211_up(struct brcmf_if *ifp) in __brcmf_cfg80211_up() argument
5874 set_bit(BRCMF_VIF_STATUS_READY, &ifp->vif->sme_state); in __brcmf_cfg80211_up()
5876 return brcmf_config_dongle(ifp->drvr->config); in __brcmf_cfg80211_up()
5879 static s32 __brcmf_cfg80211_down(struct brcmf_if *ifp) in __brcmf_cfg80211_down() argument
5881 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in __brcmf_cfg80211_down()
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()
5905 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_up() local
5906 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_cfg80211_up()
5910 err = __brcmf_cfg80211_up(ifp); in brcmf_cfg80211_up()
5918 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_down() local
5919 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_cfg80211_down()
5923 err = __brcmf_cfg80211_down(ifp); in brcmf_cfg80211_down()
5929 enum nl80211_iftype brcmf_cfg80211_get_iftype(struct brcmf_if *ifp) in brcmf_cfg80211_get_iftype() argument
5931 struct wireless_dev *wdev = &ifp->vif->wdev; in brcmf_cfg80211_get_iftype()
5994 struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg)); in brcmf_cfg80211_reg_notifier() local
6010 brcmf_fil_iovar_data_set(ifp, "country", &ccreq, sizeof(ccreq)); in brcmf_cfg80211_reg_notifier()
6034 struct brcmf_if *ifp; in brcmf_cfg80211_attach() local
6044 ifp = netdev_priv(ndev); in brcmf_cfg80211_attach()
6062 vif->ifp = ifp; in brcmf_cfg80211_attach()
6073 ifp->vif = vif; in brcmf_cfg80211_attach()
6076 err = brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_VERSION, &io_type); in brcmf_cfg80211_attach()
6084 err = brcmf_setup_wiphy(wiphy, ifp); in brcmf_cfg80211_attach()
6113 err = brcmf_fil_iovar_int_set(ifp, "obss_coex", in brcmf_cfg80211_attach()
6131 err = brcmf_fil_iovar_int_set(ifp, "tdls_enable", 1); in brcmf_cfg80211_attach()