Lines Matching refs:ifp
435 send_key_to_dongle(struct brcmf_if *ifp, struct brcmf_wsec_key *key) in send_key_to_dongle() argument
442 brcmf_netdev_wait_pend8021x(ifp); in send_key_to_dongle()
444 err = brcmf_fil_bsscfg_data_set(ifp, "wsec_key", &key_le, in send_key_to_dongle()
453 brcmf_configure_arp_offload(struct brcmf_if *ifp, bool enable) in brcmf_configure_arp_offload() argument
465 err = brcmf_fil_iovar_int_set(ifp, "arp_ol", mode); in brcmf_configure_arp_offload()
471 err = brcmf_fil_iovar_int_set(ifp, "arpoe", enable); in brcmf_configure_arp_offload()
488 struct brcmf_if *ifp; in brcmf_cfg80211_update_proto_addr_mode() local
491 ifp = vif->ifp; in brcmf_cfg80211_update_proto_addr_mode()
496 brcmf_proto_configure_addr_mode(ifp->drvr, ifp->ifidx, in brcmf_cfg80211_update_proto_addr_mode()
499 brcmf_proto_configure_addr_mode(ifp->drvr, ifp->ifidx, in brcmf_cfg80211_update_proto_addr_mode()
503 static int brcmf_cfg80211_request_ap_if(struct brcmf_if *ifp) in brcmf_cfg80211_request_ap_if() argument
510 bsscfgidx = brcmf_get_next_free_bsscfgidx(ifp->drvr); in brcmf_cfg80211_request_ap_if()
518 err = brcmf_fil_bsscfg_data_set(ifp, "bsscfg:ssid", &mbss_ssid_le, in brcmf_cfg80211_request_ap_if()
539 struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg)); in brcmf_ap_add_vif() local
554 err = brcmf_cfg80211_request_ap_if(ifp); in brcmf_ap_add_vif()
571 ifp = vif->ifp; in brcmf_ap_add_vif()
572 if (!ifp) { in brcmf_ap_add_vif()
578 strncpy(ifp->ndev->name, name, sizeof(ifp->ndev->name) - 1); in brcmf_ap_add_vif()
579 err = brcmf_net_attach(ifp, true); in brcmf_ap_add_vif()
585 return &ifp->vif->wdev; in brcmf_ap_add_vif()
647 static void brcmf_scan_config_mpc(struct brcmf_if *ifp, int mpc) in brcmf_scan_config_mpc() argument
649 if (brcmf_feat_is_quirk_enabled(ifp, BRCMF_FEAT_QUIRK_NEED_MPC)) in brcmf_scan_config_mpc()
650 brcmf_set_mpc(ifp, mpc); in brcmf_scan_config_mpc()
653 void brcmf_set_mpc(struct brcmf_if *ifp, int mpc) in brcmf_set_mpc() argument
657 if (check_vif_up(ifp->vif)) { in brcmf_set_mpc()
658 err = brcmf_fil_iovar_int_set(ifp, "mpc", mpc); in brcmf_set_mpc()
668 struct brcmf_if *ifp, bool aborted, in brcmf_notify_escan_complete() argument
700 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SCAN, in brcmf_notify_escan_complete()
706 brcmf_scan_config_mpc(ifp, 1); in brcmf_notify_escan_complete()
740 cfg->escan_info.ifp == netdev_priv(ndev)) in brcmf_cfg80211_del_iface()
773 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_change_iface() local
774 struct brcmf_cfg80211_vif *vif = ifp->vif; in brcmf_cfg80211_change_iface()
779 brcmf_dbg(TRACE, "Enter, idx=%d, type=%d\n", ifp->bssidx, type); in brcmf_cfg80211_change_iface()
846 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_INFRA, infra); in brcmf_cfg80211_change_iface()
947 brcmf_run_escan(struct brcmf_cfg80211_info *cfg, struct brcmf_if *ifp, in brcmf_run_escan() argument
976 err = brcmf_fil_iovar_data_set(ifp, "escan", params, params_size); in brcmf_run_escan()
991 struct brcmf_if *ifp, struct cfg80211_scan_request *request) in brcmf_do_escan() argument
999 escan->ifp = ifp; in brcmf_do_escan()
1003 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PASSIVE_SCAN, in brcmf_do_escan()
1009 brcmf_scan_config_mpc(ifp, 0); in brcmf_do_escan()
1015 err = escan->run(cfg, ifp, request, WL_ESCAN_ACTION_START); in brcmf_do_escan()
1017 brcmf_scan_config_mpc(ifp, 1); in brcmf_do_escan()
1026 struct brcmf_if *ifp = vif->ifp; in brcmf_cfg80211_escan() local
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()
1080 err = brcmf_do_escan(cfg, wiphy, vif->ifp, request); in brcmf_cfg80211_escan()
1098 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PASSIVE_SCAN, in brcmf_cfg80211_escan()
1104 brcmf_scan_config_mpc(ifp, 0); in brcmf_cfg80211_escan()
1105 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SCAN, in brcmf_cfg80211_escan()
1114 brcmf_scan_config_mpc(ifp, 1); in brcmf_cfg80211_escan()
1192 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_set_wiphy_params() local
1196 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_wiphy_params()
1265 err = brcmf_fil_cmd_data_set(vif->ifp, in brcmf_link_down()
1286 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_join_ibss() local
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()
1349 err = brcmf_fil_iovar_int_set(ifp, "wsec", wsec); in brcmf_cfg80211_join_ibss()
1361 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_BCNPRD, bcnprd); in brcmf_cfg80211_join_ibss()
1407 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_CHANNEL, in brcmf_cfg80211_join_ibss()
1419 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SSID, in brcmf_cfg80211_join_ibss()
1428 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_join_ibss()
1436 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_leave_ibss() local
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()
1714 enum nl80211_auth_type brcmf_war_auth_type(struct brcmf_if *ifp, in brcmf_war_auth_type() argument
1718 brcmf_feat_is_quirk_enabled(ifp, BRCMF_FEAT_QUIRK_AUTO_AUTH)) { in brcmf_war_auth_type()
1730 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_connect() local
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()
1771 brcmf_fil_iovar_data_set(ifp, "wpaie", ie, ie_len); 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()
1802 sme->auth_type = brcmf_war_auth_type(ifp, sme->auth_type); in brcmf_cfg80211_connect()
1887 err = brcmf_fil_bsscfg_data_set(ifp, "join", ext_join_params, in brcmf_cfg80211_connect()
1911 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SSID, in brcmf_cfg80211_connect()
1918 clear_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state); in brcmf_cfg80211_connect()
1927 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_disconnect() local
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()
1942 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_DISASSOC, in brcmf_cfg80211_disconnect()
1957 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_set_tx_power() local
1963 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_tx_power()
1988 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_RADIO, disable); in brcmf_cfg80211_set_tx_power()
1992 err = brcmf_fil_iovar_int_set(ifp, "qtxpower", qdbm); in brcmf_cfg80211_set_tx_power()
2007 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_get_tx_power() local
2012 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_get_tx_power()
2015 err = brcmf_fil_iovar_int_get(ifp, "qtxpower", &qdbm); in brcmf_cfg80211_get_tx_power()
2031 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_config_default_key() local
2038 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_config_default_key()
2041 err = brcmf_fil_bsscfg_int_get(ifp, "wsec", &wsec); in brcmf_cfg80211_config_default_key()
2050 err = brcmf_fil_cmd_int_set(ifp, in brcmf_cfg80211_config_default_key()
2064 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_add_keyext() local
2079 err = send_key_to_dongle(ifp, &key); in brcmf_add_keyext()
2091 if (!brcmf_is_apmode(ifp->vif) && in brcmf_add_keyext()
2135 err = send_key_to_dongle(ifp, &key); in brcmf_add_keyext()
2147 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_add_key() local
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()
2224 err = send_key_to_dongle(ifp, key); in brcmf_cfg80211_add_key()
2228 err = brcmf_fil_bsscfg_int_get(ifp, "wsec", &wsec); in brcmf_cfg80211_add_key()
2234 err = brcmf_fil_bsscfg_int_set(ifp, "wsec", wsec); in brcmf_cfg80211_add_key()
2249 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_del_key() local
2254 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_del_key()
2271 err = send_key_to_dongle(ifp, &key); in brcmf_cfg80211_del_key()
2283 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_get_key() local
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()
2296 err = brcmf_fil_bsscfg_int_get(ifp, "wsec", &wsec); in brcmf_cfg80211_get_key()
2340 brcmf_cfg80211_reconfigure_wep(struct brcmf_if *ifp) in brcmf_cfg80211_reconfigure_wep() argument
2348 key = &ifp->vif->profile.key[key_idx]; in brcmf_cfg80211_reconfigure_wep()
2356 err = send_key_to_dongle(ifp, key); in brcmf_cfg80211_reconfigure_wep()
2361 err = brcmf_fil_bsscfg_int_get(ifp, "wsec", &wsec); in brcmf_cfg80211_reconfigure_wep()
2367 err = brcmf_fil_bsscfg_int_set(ifp, "wsec", wsec); in brcmf_cfg80211_reconfigure_wep()
2393 static void brcmf_fill_bss_param(struct brcmf_if *ifp, struct station_info *si) in brcmf_fill_bss_param() argument
2407 err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BSS_INFO, buf, in brcmf_fill_bss_param()
2429 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_get_station() local
2439 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_get_station()
2444 err = brcmf_fil_iovar_data_get(ifp, "tdls_sta_info", in brcmf_cfg80211_get_station()
2449 err = brcmf_fil_iovar_data_get(ifp, "sta_info", in brcmf_cfg80211_get_station()
2470 brcmf_fill_bss_param(ifp, sinfo); in brcmf_cfg80211_get_station()
2528 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_dump_station() local
2535 err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_ASSOCLIST, in brcmf_cfg80211_dump_station()
2559 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_set_power_mgmt() local
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()
2585 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, pm); in brcmf_cfg80211_set_power_mgmt()
2776 struct brcmf_if *ifp) in brcmf_update_bss_info() argument
2778 struct brcmf_cfg80211_profile *profile = ndev_to_prof(ifp->ndev); in brcmf_update_bss_info()
2789 if (brcmf_is_ibssmode(ifp->vif)) in brcmf_update_bss_info()
2795 err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BSS_INFO, in brcmf_update_bss_info()
2821 err = brcmf_fil_iovar_int_get(ifp, "dtim_assoc", &var); in brcmf_update_bss_info()
2841 brcmf_notify_escan_complete(cfg, escan->ifp, true, true); in brcmf_abort_scanning()
2854 brcmf_notify_escan_complete(cfg, cfg->escan_info.ifp, true, true); in brcmf_cfg80211_escan_timeout_worker()
2908 brcmf_cfg80211_escan_handler(struct brcmf_if *ifp, in brcmf_cfg80211_escan_handler() argument
2911 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_cfg80211_escan_handler()
2924 brcmf_err("scan not ready, bssidx=%d\n", ifp->bssidx); in brcmf_cfg80211_escan_handler()
2994 brcmf_notify_escan_complete(cfg, ifp, aborted, false); in brcmf_cfg80211_escan_handler()
3026 static s32 brcmf_config_wowl_pattern(struct brcmf_if *ifp, u8 cmd[4], in brcmf_config_wowl_pattern() argument
3058 ret = brcmf_fil_iovar_data_set(ifp, "wowl_pattern", buf, bufsize); in brcmf_config_wowl_pattern()
3068 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_resume() local
3073 brcmf_configure_arp_offload(ifp, true); in brcmf_cfg80211_resume()
3074 brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, in brcmf_cfg80211_resume()
3076 brcmf_fil_iovar_int_set(ifp, "wowl_clear", 0); in brcmf_cfg80211_resume()
3077 brcmf_config_wowl_pattern(ifp, "clr", NULL, 0, NULL, 0); in brcmf_cfg80211_resume()
3084 struct brcmf_if *ifp, in brcmf_configure_wowl() argument
3092 brcmf_configure_arp_offload(ifp, false); in brcmf_configure_wowl()
3093 brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_PM, &cfg->pre_wowl_pmmode); in brcmf_configure_wowl()
3094 brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, PM_MAX); in brcmf_configure_wowl()
3104 brcmf_config_wowl_pattern(ifp, "add", in brcmf_configure_wowl()
3111 brcmf_fil_iovar_int_set(ifp, "wowl", wowl_config); in brcmf_configure_wowl()
3112 brcmf_fil_iovar_int_set(ifp, "wowl_activate", 1); in brcmf_configure_wowl()
3122 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_suspend() local
3130 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_suspend()
3154 brcmf_set_mpc(ifp, 1); in brcmf_cfg80211_suspend()
3158 brcmf_configure_wowl(cfg, ifp, wowl); in brcmf_cfg80211_suspend()
3198 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_set_pmksa() local
3204 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_set_pmksa()
3237 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_del_pmksa() local
3243 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_del_pmksa()
3288 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_flush_pmksa() local
3292 if (!check_vif_up(ifp->vif)) in brcmf_cfg80211_flush_pmksa()
3312 brcmf_notify_sched_scan_results(struct brcmf_if *ifp, in brcmf_notify_sched_scan_results() argument
3315 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_notify_sched_scan_results()
3400 err = brcmf_do_escan(cfg, wiphy, ifp, request); in brcmf_notify_sched_scan_results()
3466 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_sched_scan_start() local
3537 ret = brcmf_fil_iovar_data_set(ifp, "pfn_add", &pfn, in brcmf_cfg80211_sched_scan_start()
3543 if (brcmf_fil_iovar_int_set(ifp, "pfn", 1) < 0) { in brcmf_cfg80211_sched_scan_start()
3566 static s32 brcmf_configure_opensecurity(struct brcmf_if *ifp) in brcmf_configure_opensecurity() argument
3571 err = brcmf_fil_bsscfg_int_set(ifp, "auth", 0); in brcmf_configure_opensecurity()
3577 err = brcmf_fil_bsscfg_int_set(ifp, "wsec", 0); in brcmf_configure_opensecurity()
3583 err = brcmf_fil_bsscfg_int_set(ifp, "wpa_auth", WPA_AUTH_NONE); in brcmf_configure_opensecurity()
3601 brcmf_configure_wpaie(struct brcmf_if *ifp, in brcmf_configure_wpaie() argument
3746 err = brcmf_fil_bsscfg_int_set(ifp, "wme_bss_disable", in brcmf_configure_wpaie()
3757 err = brcmf_fil_bsscfg_int_set(ifp, "auth", auth); in brcmf_configure_wpaie()
3763 err = brcmf_fil_bsscfg_int_set(ifp, "wsec", wsec); in brcmf_configure_wpaie()
3769 err = brcmf_fil_bsscfg_int_set(ifp, "wpa_auth", wpa_auth); in brcmf_configure_wpaie()
3857 struct brcmf_if *ifp; in brcmf_vif_set_mgmt_ie() local
3877 ifp = vif->ifp; in brcmf_vif_set_mgmt_ie()
3880 brcmf_dbg(TRACE, "bssidx %d, pktflag : 0x%02X\n", ifp->bssidx, pktflag); in brcmf_vif_set_mgmt_ie()
4004 err = brcmf_fil_bsscfg_data_set(ifp, "vndr_ie", iovar_ie_buf, in brcmf_vif_set_mgmt_ie()
4064 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_start_ap() local
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()
4114 brcmf_set_mpc(ifp, 0); in brcmf_cfg80211_start_ap()
4115 brcmf_configure_arp_offload(ifp, false); in brcmf_cfg80211_start_ap()
4130 err = brcmf_configure_wpaie(ifp, wpa_ie, false); in brcmf_cfg80211_start_ap()
4139 err = brcmf_configure_wpaie(ifp, tmp_ie, true); in brcmf_cfg80211_start_ap()
4145 brcmf_configure_opensecurity(ifp); in brcmf_cfg80211_start_ap()
4148 brcmf_config_ap_mgmt_ie(ifp->vif, &settings->beacon); in brcmf_cfg80211_start_ap()
4153 err = brcmf_fil_iovar_int_set(ifp, "chanspec", chanspec); in brcmf_cfg80211_start_ap()
4160 if (is_11d != ifp->vif->is_11d) { in brcmf_cfg80211_start_ap()
4161 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_REGULATORY, in brcmf_cfg80211_start_ap()
4169 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_BCNPRD, in brcmf_cfg80211_start_ap()
4178 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_DTIMPRD, in brcmf_cfg80211_start_ap()
4187 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1); in brcmf_cfg80211_start_ap()
4192 brcmf_fil_iovar_int_set(ifp, "apsta", 0); in brcmf_cfg80211_start_ap()
4195 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_INFRA, 1); in brcmf_cfg80211_start_ap()
4200 } else if (WARN_ON(is_11d != ifp->vif->is_11d)) { in brcmf_cfg80211_start_ap()
4206 if ((brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS)) && (!mbss)) in brcmf_cfg80211_start_ap()
4207 brcmf_fil_iovar_int_set(ifp, "mbss", 1); in brcmf_cfg80211_start_ap()
4209 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_AP, 1); in brcmf_cfg80211_start_ap()
4214 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_UP, 1); in brcmf_cfg80211_start_ap()
4222 brcmf_cfg80211_reconfigure_wep(ifp); in brcmf_cfg80211_start_ap()
4228 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SSID, in brcmf_cfg80211_start_ap()
4236 err = brcmf_fil_bsscfg_data_set(ifp, "ssid", &ssid_le, in brcmf_cfg80211_start_ap()
4242 bss_enable.bsscfg_idx = cpu_to_le32(ifp->bssidx); in brcmf_cfg80211_start_ap()
4244 err = brcmf_fil_iovar_data_set(ifp, "bss", &bss_enable, in brcmf_cfg80211_start_ap()
4253 set_bit(BRCMF_VIF_STATUS_AP_CREATED, &ifp->vif->sme_state); in brcmf_cfg80211_start_ap()
4254 brcmf_net_setcarrier(ifp, true); in brcmf_cfg80211_start_ap()
4258 brcmf_set_mpc(ifp, 1); in brcmf_cfg80211_start_ap()
4259 brcmf_configure_arp_offload(ifp, true); in brcmf_cfg80211_start_ap()
4266 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_stop_ap() local
4273 if (ifp->vif->wdev.iftype == NL80211_IFTYPE_AP) { in brcmf_cfg80211_stop_ap()
4278 if (ifp->vif->mbss) { in brcmf_cfg80211_stop_ap()
4279 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1); in brcmf_cfg80211_stop_ap()
4284 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SSID, in brcmf_cfg80211_stop_ap()
4288 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1); in brcmf_cfg80211_stop_ap()
4291 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_AP, 0); in brcmf_cfg80211_stop_ap()
4294 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_INFRA, 0); in brcmf_cfg80211_stop_ap()
4297 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS)) in brcmf_cfg80211_stop_ap()
4298 brcmf_fil_iovar_int_set(ifp, "mbss", 0); in brcmf_cfg80211_stop_ap()
4299 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_REGULATORY, in brcmf_cfg80211_stop_ap()
4300 ifp->vif->is_11d); in brcmf_cfg80211_stop_ap()
4305 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_UP, 1); in brcmf_cfg80211_stop_ap()
4309 bss_enable.bsscfg_idx = cpu_to_le32(ifp->bssidx); in brcmf_cfg80211_stop_ap()
4311 err = brcmf_fil_iovar_data_set(ifp, "bss", &bss_enable, in brcmf_cfg80211_stop_ap()
4316 brcmf_set_mpc(ifp, 1); in brcmf_cfg80211_stop_ap()
4317 brcmf_configure_arp_offload(ifp, true); in brcmf_cfg80211_stop_ap()
4318 clear_bit(BRCMF_VIF_STATUS_AP_CREATED, &ifp->vif->sme_state); in brcmf_cfg80211_stop_ap()
4319 brcmf_net_setcarrier(ifp, false); in brcmf_cfg80211_stop_ap()
4328 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_change_beacon() local
4333 err = brcmf_config_ap_mgmt_ie(ifp->vif, info); in brcmf_cfg80211_change_beacon()
4344 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_del_station() local
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()
4359 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SCB_DEAUTHENTICATE_FOR_REASON, in brcmf_cfg80211_del_station()
4372 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_change_station() local
4386 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SCB_AUTHORIZE, in brcmf_cfg80211_change_station()
4389 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SCB_DEAUTHORIZE, in brcmf_cfg80211_change_station()
4492 brcmf_fil_cmd_int_get(vif->ifp, BRCMF_C_GET_CHANNEL, in brcmf_cfg80211_mgmt_tx()
4536 brcmf_p2p_cancel_remain_on_channel(vif->ifp); in brcmf_cfg80211_cancel_remain_on_channel()
4575 brcmf_notify_tdls_peer_event(struct brcmf_if *ifp, in brcmf_notify_tdls_peer_event() argument
4584 brcmf_proto_add_tdls_peer(ifp->drvr, ifp->ifidx, (u8 *)e->addr); in brcmf_notify_tdls_peer_event()
4588 brcmf_proto_delete_peer(ifp->drvr, ifp->ifidx, (u8 *)e->addr); in brcmf_notify_tdls_peer_event()
4620 struct brcmf_if *ifp; in brcmf_cfg80211_tdls_oper() local
4628 ifp = netdev_priv(ndev); in brcmf_cfg80211_tdls_oper()
4634 ret = brcmf_fil_iovar_data_set(ifp, "tdls_endpoint", in brcmf_cfg80211_tdls_oper()
4731 struct brcmf_if *ifp; in brcmf_cfg80211_free_netdev() local
4733 ifp = netdev_priv(ndev); in brcmf_cfg80211_free_netdev()
4734 vif = ifp->vif; in brcmf_cfg80211_free_netdev()
4801 struct brcmf_if *ifp) in brcmf_get_assoc_ies() argument
4811 err = brcmf_fil_iovar_data_get(ifp, "assoc_info", in brcmf_get_assoc_ies()
4822 err = brcmf_fil_iovar_data_get(ifp, "assoc_req_ies", in brcmf_get_assoc_ies()
4838 err = brcmf_fil_iovar_data_get(ifp, "assoc_resp_ies", in brcmf_get_assoc_ies()
4864 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_bss_roaming_done() local
4865 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_bss_roaming_done()
4878 brcmf_get_assoc_ies(cfg, ifp); in brcmf_bss_roaming_done()
4880 brcmf_update_bss_info(cfg, ifp); in brcmf_bss_roaming_done()
4890 err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BSS_INFO, in brcmf_bss_roaming_done()
4915 set_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state); in brcmf_bss_roaming_done()
4925 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_bss_connect_done() local
4926 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_bss_connect_done()
4932 &ifp->vif->sme_state)) { in brcmf_bss_connect_done()
4934 brcmf_get_assoc_ies(cfg, ifp); in brcmf_bss_connect_done()
4936 brcmf_update_bss_info(cfg, ifp); in brcmf_bss_connect_done()
4938 &ifp->vif->sme_state); in brcmf_bss_connect_done()
4961 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_notify_connect_status_ap() local
4972 if (ifp->vif->mbss) in brcmf_notify_connect_status_ap()
4973 brcmf_remove_interface(ifp); in brcmf_notify_connect_status_ap()
4998 brcmf_notify_connect_status(struct brcmf_if *ifp, in brcmf_notify_connect_status() argument
5001 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_notify_connect_status()
5002 struct net_device *ndev = ifp->ndev; in brcmf_notify_connect_status()
5003 struct brcmf_cfg80211_profile *profile = &ifp->vif->profile; in brcmf_notify_connect_status()
5011 brcmf_proto_delete_peer(ifp->drvr, ifp->ifidx, (u8 *)e->addr); 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()
5029 brcmf_net_setcarrier(ifp, true); 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()
5039 brcmf_net_setcarrier(ifp, false); 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()
5052 brcmf_notify_roaming_status(struct brcmf_if *ifp, in brcmf_notify_roaming_status() argument
5055 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_notify_roaming_status()
5060 if (test_bit(BRCMF_VIF_STATUS_CONNECTED, &ifp->vif->sme_state)) in brcmf_notify_roaming_status()
5061 brcmf_bss_roaming_done(cfg, ifp->ndev, e); in brcmf_notify_roaming_status()
5063 brcmf_bss_connect_done(cfg, ifp->ndev, e, true); in brcmf_notify_roaming_status()
5070 brcmf_notify_mic_status(struct brcmf_if *ifp, in brcmf_notify_mic_status() argument
5081 cfg80211_michael_mic_failure(ifp->ndev, (u8 *)&e->addr, key_type, -1, in brcmf_notify_mic_status()
5087 static s32 brcmf_notify_vif_event(struct brcmf_if *ifp, in brcmf_notify_vif_event() argument
5090 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_notify_vif_event()
5111 ifp->vif = vif; in brcmf_notify_vif_event()
5112 vif->ifp = ifp; in brcmf_notify_vif_event()
5113 if (ifp->ndev) { 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()
5116 SET_NETDEV_DEV(ifp->ndev, wiphy_dev(cfg->wiphy)); in brcmf_notify_vif_event()
5254 brcmf_dongle_roam(struct brcmf_if *ifp, u32 bcn_timeout) in brcmf_dongle_roam() argument
5265 err = brcmf_fil_iovar_int_set(ifp, "bcn_timeout", bcn_timeout); in brcmf_dongle_roam()
5278 err = brcmf_fil_iovar_int_set(ifp, "roam_off", !!(brcmf_roamoff)); in brcmf_dongle_roam()
5286 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER, in brcmf_dongle_roam()
5295 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_DELTA, in brcmf_dongle_roam()
5307 brcmf_dongle_scantime(struct brcmf_if *ifp, s32 scan_assoc_time, in brcmf_dongle_scantime() argument
5312 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_CHANNEL_TIME, in brcmf_dongle_scantime()
5321 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_UNASSOC_TIME, in brcmf_dongle_scantime()
5331 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_PASSIVE_TIME, in brcmf_dongle_scantime()
5369 struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg)); in brcmf_construct_chaninfo() local
5389 err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf, in brcmf_construct_chaninfo()
5457 err = brcmf_fil_bsscfg_int_get(ifp, "per_chan_info", in brcmf_construct_chaninfo()
5478 struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg)); in brcmf_enable_bw40_2g() local
5491 err = brcmf_fil_iovar_int_get(ifp, "bw_cap", &val); in brcmf_enable_bw40_2g()
5497 err = brcmf_fil_iovar_data_set(ifp, "bw_cap", &band_bwcap, in brcmf_enable_bw40_2g()
5502 err = brcmf_fil_iovar_int_set(ifp, "mimo_bw_cap", val); in brcmf_enable_bw40_2g()
5521 err = brcmf_fil_iovar_data_get(ifp, "chanspecs", pbuf, in brcmf_enable_bw40_2g()
5553 static void brcmf_get_bwcap(struct brcmf_if *ifp, u32 bw_cap[]) in brcmf_get_bwcap() argument
5559 err = brcmf_fil_iovar_int_get(ifp, "bw_cap", &band); in brcmf_get_bwcap()
5563 err = brcmf_fil_iovar_int_get(ifp, "bw_cap", &band); in brcmf_get_bwcap()
5573 err = brcmf_fil_iovar_int_get(ifp, "mimo_bw_cap", &mimo_bwcap); in brcmf_get_bwcap()
5646 struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg)); in brcmf_setup_wiphybands() local
5656 (void)brcmf_fil_iovar_int_get(ifp, "vhtmode", &vhtmode); in brcmf_setup_wiphybands()
5657 err = brcmf_fil_iovar_int_get(ifp, "nmode", &nmode); in brcmf_setup_wiphybands()
5661 brcmf_get_bwcap(ifp, bw_cap); in brcmf_setup_wiphybands()
5667 err = brcmf_fil_iovar_int_get(ifp, "rxchain", &rxchain); in brcmf_setup_wiphybands()
5757 static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp) in brcmf_setup_ifmodes() argument
5766 mbss = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS); in brcmf_setup_ifmodes()
5767 p2p = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_P2P); in brcmf_setup_ifmodes()
5800 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MCHAN)) in brcmf_setup_ifmodes()
5884 static int brcmf_setup_wiphy(struct wiphy *wiphy, struct brcmf_if *ifp) in brcmf_setup_wiphy() argument
5886 struct brcmf_pub *drvr = ifp->drvr; in brcmf_setup_wiphy()
5898 err = brcmf_setup_ifmodes(wiphy, ifp); in brcmf_setup_wiphy()
5931 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_PNO)) in brcmf_setup_wiphy()
5938 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL)) in brcmf_setup_wiphy()
5941 err = brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BANDLIST, &bandlist, in brcmf_setup_wiphy()
5993 struct brcmf_if *ifp; in brcmf_config_dongle() local
6002 ifp = netdev_priv(ndev); in brcmf_config_dongle()
6005 brcmf_fil_cmd_int_set(ifp, BRCMF_C_UP, 0); in brcmf_config_dongle()
6007 brcmf_dongle_scantime(ifp, WL_SCAN_CHANNEL_TIME, in brcmf_config_dongle()
6011 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, power_mode); in brcmf_config_dongle()
6017 err = brcmf_dongle_roam(ifp, WL_BEACON_TIMEOUT); in brcmf_config_dongle()
6025 brcmf_configure_arp_offload(ifp, true); in brcmf_config_dongle()
6034 static s32 __brcmf_cfg80211_up(struct brcmf_if *ifp) in __brcmf_cfg80211_up() argument
6036 set_bit(BRCMF_VIF_STATUS_READY, &ifp->vif->sme_state); in __brcmf_cfg80211_up()
6038 return brcmf_config_dongle(ifp->drvr->config); in __brcmf_cfg80211_up()
6041 static s32 __brcmf_cfg80211_down(struct brcmf_if *ifp) in __brcmf_cfg80211_down() argument
6043 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in __brcmf_cfg80211_down()
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()
6067 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_up() local
6068 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_cfg80211_up()
6072 err = __brcmf_cfg80211_up(ifp); in brcmf_cfg80211_up()
6080 struct brcmf_if *ifp = netdev_priv(ndev); in brcmf_cfg80211_down() local
6081 struct brcmf_cfg80211_info *cfg = ifp->drvr->config; in brcmf_cfg80211_down()
6085 err = __brcmf_cfg80211_down(ifp); in brcmf_cfg80211_down()
6091 enum nl80211_iftype brcmf_cfg80211_get_iftype(struct brcmf_if *ifp) in brcmf_cfg80211_get_iftype() argument
6093 struct wireless_dev *wdev = &ifp->vif->wdev; in brcmf_cfg80211_get_iftype()
6156 struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg)); in brcmf_cfg80211_reg_notifier() local
6172 if (brcmf_fil_iovar_data_set(ifp, "country", &ccreq, sizeof(ccreq))) { in brcmf_cfg80211_reg_notifier()
6210 struct brcmf_if *ifp; in brcmf_cfg80211_attach() local
6220 ifp = netdev_priv(ndev); in brcmf_cfg80211_attach()
6239 vif->ifp = ifp; in brcmf_cfg80211_attach()
6250 ifp->vif = vif; in brcmf_cfg80211_attach()
6253 err = brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_VERSION, &io_type); in brcmf_cfg80211_attach()
6261 err = brcmf_setup_wiphy(wiphy, ifp); in brcmf_cfg80211_attach()
6290 err = brcmf_fil_iovar_int_set(ifp, "obss_coex", in brcmf_cfg80211_attach()
6301 err = brcmf_fweh_activate_events(ifp); in brcmf_cfg80211_attach()
6319 err = brcmf_fil_iovar_int_set(ifp, "tdls_enable", 1); in brcmf_cfg80211_attach()
6329 err = brcmf_fweh_activate_events(ifp); in brcmf_cfg80211_attach()
6342 ifp->vif = NULL; in brcmf_cfg80211_attach()