Lines Matching refs:priv
102 struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev); in mwifiex_cfg80211_del_key() local
106 if (mwifiex_set_encode(priv, NULL, NULL, 0, key_index, peer_mac, 1)) { in mwifiex_cfg80211_del_key()
163 struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev); in mwifiex_cfg80211_mgmt_tx() local
171 if (GET_BSS_ROLE(priv) != MWIFIEX_BSS_ROLE_STA && in mwifiex_cfg80211_mgmt_tx()
192 tx_info->bss_num = priv->bss_num; in mwifiex_cfg80211_mgmt_tx()
193 tx_info->bss_type = priv->bss_type; in mwifiex_cfg80211_mgmt_tx()
200 skb = mwifiex_clone_skb_for_tx_status(priv, in mwifiex_cfg80211_mgmt_tx()
207 mwifiex_queue_tx_pkt(priv, skb); in mwifiex_cfg80211_mgmt_tx()
221 struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev); in mwifiex_cfg80211_mgmt_frame_register() local
225 mask = priv->mgmt_frame_mask | BIT(frame_type >> 4); in mwifiex_cfg80211_mgmt_frame_register()
227 mask = priv->mgmt_frame_mask & ~BIT(frame_type >> 4); in mwifiex_cfg80211_mgmt_frame_register()
229 if (mask != priv->mgmt_frame_mask) { in mwifiex_cfg80211_mgmt_frame_register()
230 priv->mgmt_frame_mask = mask; in mwifiex_cfg80211_mgmt_frame_register()
231 mwifiex_send_cmd(priv, HostCmd_CMD_MGMT_FRAME_REG, in mwifiex_cfg80211_mgmt_frame_register()
233 &priv->mgmt_frame_mask, false); in mwifiex_cfg80211_mgmt_frame_register()
247 struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev); in mwifiex_cfg80211_remain_on_channel() local
255 if (priv->roc_cfg.cookie) { in mwifiex_cfg80211_remain_on_channel()
257 priv->roc_cfg.cookie); in mwifiex_cfg80211_remain_on_channel()
261 ret = mwifiex_remain_on_chan_cfg(priv, HostCmd_ACT_GEN_SET, chan, in mwifiex_cfg80211_remain_on_channel()
266 priv->roc_cfg.cookie = *cookie; in mwifiex_cfg80211_remain_on_channel()
267 priv->roc_cfg.chan = *chan; in mwifiex_cfg80211_remain_on_channel()
285 struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev); in mwifiex_cfg80211_cancel_remain_on_channel() local
288 if (cookie != priv->roc_cfg.cookie) in mwifiex_cfg80211_cancel_remain_on_channel()
291 ret = mwifiex_remain_on_chan_cfg(priv, HostCmd_ACT_GEN_REMOVE, in mwifiex_cfg80211_cancel_remain_on_channel()
292 &priv->roc_cfg.chan, 0); in mwifiex_cfg80211_cancel_remain_on_channel()
296 &priv->roc_cfg.chan, in mwifiex_cfg80211_cancel_remain_on_channel()
299 memset(&priv->roc_cfg, 0, sizeof(struct mwifiex_roc_cfg)); in mwifiex_cfg80211_cancel_remain_on_channel()
317 struct mwifiex_private *priv; in mwifiex_cfg80211_set_tx_power() local
328 priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY); in mwifiex_cfg80211_set_tx_power()
330 return mwifiex_set_tx_power(priv, &power_cfg); in mwifiex_cfg80211_set_tx_power()
343 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_set_power_mgmt() local
352 return mwifiex_drv_set_power(priv, &ps_mode); in mwifiex_cfg80211_set_power_mgmt()
363 struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev); in mwifiex_cfg80211_set_default_key() local
366 if (!priv->sec_info.wep_enabled) in mwifiex_cfg80211_set_default_key()
369 if (priv->bss_type == MWIFIEX_BSS_TYPE_UAP) { in mwifiex_cfg80211_set_default_key()
370 priv->wep_key_curr_index = key_index; in mwifiex_cfg80211_set_default_key()
371 } else if (mwifiex_set_encode(priv, NULL, NULL, 0, key_index, in mwifiex_cfg80211_set_default_key()
388 struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev); in mwifiex_cfg80211_add_key() local
393 if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_UAP && in mwifiex_cfg80211_add_key()
397 wep_key = &priv->wep_key[key_index]; in mwifiex_cfg80211_add_key()
403 priv->sec_info.wep_enabled = 1; in mwifiex_cfg80211_add_key()
408 if (mwifiex_set_encode(priv, params, params->key, params->key_len, in mwifiex_cfg80211_add_key()
435 struct mwifiex_private *priv; in mwifiex_send_domain_info_cmd_fw() local
492 priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY); in mwifiex_send_domain_info_cmd_fw()
494 if (mwifiex_send_cmd(priv, HostCmd_CMD_802_11D_DOMAIN_INFO, in mwifiex_send_domain_info_cmd_fw()
517 struct mwifiex_private *priv = mwifiex_get_priv(adapter, in mwifiex_reg_notifier() local
542 mwifiex_dnld_txpwr_table(priv); in mwifiex_reg_notifier()
553 mwifiex_set_frag(struct mwifiex_private *priv, u32 frag_thr) in mwifiex_set_frag() argument
559 return mwifiex_send_cmd(priv, HostCmd_CMD_802_11_SNMP_MIB, in mwifiex_set_frag()
571 mwifiex_set_rts(struct mwifiex_private *priv, u32 rts_thr) in mwifiex_set_rts() argument
576 return mwifiex_send_cmd(priv, HostCmd_CMD_802_11_SNMP_MIB, in mwifiex_set_rts()
591 struct mwifiex_private *priv; in mwifiex_cfg80211_set_wiphy_params() local
595 priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY); in mwifiex_cfg80211_set_wiphy_params()
597 switch (priv->bss_role) { in mwifiex_cfg80211_set_wiphy_params()
599 if (priv->bss_started) { in mwifiex_cfg80211_set_wiphy_params()
618 ret = mwifiex_send_cmd(priv, HostCmd_CMD_UAP_SYS_CONFIG, in mwifiex_cfg80211_set_wiphy_params()
631 if (priv->media_connected) { in mwifiex_cfg80211_set_wiphy_params()
637 ret = mwifiex_set_rts(priv, in mwifiex_cfg80211_set_wiphy_params()
643 ret = mwifiex_set_frag(priv, in mwifiex_cfg80211_set_wiphy_params()
655 mwifiex_cfg80211_deinit_p2p(struct mwifiex_private *priv) in mwifiex_cfg80211_deinit_p2p() argument
659 if (mwifiex_send_cmd(priv, HostCmd_CMD_P2P_MODE_CFG, in mwifiex_cfg80211_deinit_p2p()
672 mwifiex_cfg80211_init_p2p_client(struct mwifiex_private *priv) in mwifiex_cfg80211_init_p2p_client() argument
676 if (mwifiex_cfg80211_deinit_p2p(priv)) in mwifiex_cfg80211_init_p2p_client()
680 if (mwifiex_send_cmd(priv, HostCmd_CMD_P2P_MODE_CFG, in mwifiex_cfg80211_init_p2p_client()
685 if (mwifiex_send_cmd(priv, HostCmd_CMD_P2P_MODE_CFG, in mwifiex_cfg80211_init_p2p_client()
698 mwifiex_cfg80211_init_p2p_go(struct mwifiex_private *priv) in mwifiex_cfg80211_init_p2p_go() argument
702 if (mwifiex_cfg80211_deinit_p2p(priv)) in mwifiex_cfg80211_init_p2p_go()
706 if (mwifiex_send_cmd(priv, HostCmd_CMD_P2P_MODE_CFG, in mwifiex_cfg80211_init_p2p_go()
711 if (mwifiex_send_cmd(priv, HostCmd_CMD_P2P_MODE_CFG, in mwifiex_cfg80211_init_p2p_go()
718 static int mwifiex_deinit_priv_params(struct mwifiex_private *priv) in mwifiex_deinit_priv_params() argument
720 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_deinit_priv_params()
723 priv->mgmt_frame_mask = 0; in mwifiex_deinit_priv_params()
724 if (mwifiex_send_cmd(priv, HostCmd_CMD_MGMT_FRAME_REG, in mwifiex_deinit_priv_params()
726 &priv->mgmt_frame_mask, false)) { in mwifiex_deinit_priv_params()
727 dev_warn(priv->adapter->dev, in mwifiex_deinit_priv_params()
732 mwifiex_deauthenticate(priv, NULL); in mwifiex_deinit_priv_params()
752 mwifiex_free_priv(priv); in mwifiex_deinit_priv_params()
753 priv->wdev.iftype = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_deinit_priv_params()
754 priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_deinit_priv_params()
755 priv->sec_info.authentication_mode = NL80211_AUTHTYPE_OPEN_SYSTEM; in mwifiex_deinit_priv_params()
761 mwifiex_init_new_priv_params(struct mwifiex_private *priv, in mwifiex_init_new_priv_params() argument
765 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_init_new_priv_params()
768 mwifiex_init_priv(priv); in mwifiex_init_new_priv_params()
770 priv->bss_mode = type; in mwifiex_init_new_priv_params()
771 priv->wdev.iftype = type; in mwifiex_init_new_priv_params()
773 mwifiex_init_priv_params(priv, priv->netdev); in mwifiex_init_new_priv_params()
774 priv->bss_started = 0; in mwifiex_init_new_priv_params()
779 priv->bss_role = MWIFIEX_BSS_ROLE_STA; in mwifiex_init_new_priv_params()
780 priv->bss_type = MWIFIEX_BSS_TYPE_STA; in mwifiex_init_new_priv_params()
784 priv->bss_role = MWIFIEX_BSS_ROLE_STA; in mwifiex_init_new_priv_params()
785 priv->bss_type = MWIFIEX_BSS_TYPE_P2P; in mwifiex_init_new_priv_params()
788 priv->bss_type = MWIFIEX_BSS_TYPE_UAP; in mwifiex_init_new_priv_params()
789 priv->bss_role = MWIFIEX_BSS_ROLE_UAP; in mwifiex_init_new_priv_params()
792 dev_err(priv->adapter->dev, in mwifiex_init_new_priv_params()
815 struct mwifiex_private *priv; in mwifiex_change_vif_to_p2p() local
818 priv = mwifiex_netdev_get_priv(dev); in mwifiex_change_vif_to_p2p()
820 if (!priv) in mwifiex_change_vif_to_p2p()
823 adapter = priv->adapter; in mwifiex_change_vif_to_p2p()
832 dev_dbg(priv->adapter->dev, "%s: changing role to p2p\n", dev->name); in mwifiex_change_vif_to_p2p()
834 if (mwifiex_deinit_priv_params(priv)) in mwifiex_change_vif_to_p2p()
836 if (mwifiex_init_new_priv_params(priv, dev, type)) in mwifiex_change_vif_to_p2p()
841 if (mwifiex_cfg80211_init_p2p_client(priv)) in mwifiex_change_vif_to_p2p()
845 if (mwifiex_cfg80211_init_p2p_go(priv)) in mwifiex_change_vif_to_p2p()
849 dev_err(priv->adapter->dev, in mwifiex_change_vif_to_p2p()
855 if (mwifiex_send_cmd(priv, HostCmd_CMD_SET_BSS_MODE, in mwifiex_change_vif_to_p2p()
859 if (mwifiex_sta_init_cmd(priv, false, false)) in mwifiex_change_vif_to_p2p()
886 struct mwifiex_private *priv; in mwifiex_change_vif_to_sta_adhoc() local
889 priv = mwifiex_netdev_get_priv(dev); in mwifiex_change_vif_to_sta_adhoc()
891 if (!priv) in mwifiex_change_vif_to_sta_adhoc()
894 adapter = priv->adapter; in mwifiex_change_vif_to_sta_adhoc()
912 if (mwifiex_deinit_priv_params(priv)) in mwifiex_change_vif_to_sta_adhoc()
914 if (mwifiex_init_new_priv_params(priv, dev, type)) in mwifiex_change_vif_to_sta_adhoc()
916 if (mwifiex_send_cmd(priv, HostCmd_CMD_SET_BSS_MODE, in mwifiex_change_vif_to_sta_adhoc()
919 if (mwifiex_sta_init_cmd(priv, false, false)) in mwifiex_change_vif_to_sta_adhoc()
945 struct mwifiex_private *priv; in mwifiex_change_vif_to_ap() local
948 priv = mwifiex_netdev_get_priv(dev); in mwifiex_change_vif_to_ap()
950 if (!priv) in mwifiex_change_vif_to_ap()
953 adapter = priv->adapter; in mwifiex_change_vif_to_ap()
964 if (mwifiex_deinit_priv_params(priv)) in mwifiex_change_vif_to_ap()
966 if (mwifiex_init_new_priv_params(priv, dev, type)) in mwifiex_change_vif_to_ap()
968 if (mwifiex_send_cmd(priv, HostCmd_CMD_SET_BSS_MODE, in mwifiex_change_vif_to_ap()
971 if (mwifiex_sta_init_cmd(priv, false, false)) in mwifiex_change_vif_to_ap()
1000 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_change_virtual_intf() local
1007 priv->bss_mode = type; in mwifiex_cfg80211_change_virtual_intf()
1008 priv->sec_info.authentication_mode = in mwifiex_cfg80211_change_virtual_intf()
1011 mwifiex_deauthenticate(priv, NULL); in mwifiex_cfg80211_change_virtual_intf()
1012 return mwifiex_send_cmd(priv, HostCmd_CMD_SET_BSS_MODE, in mwifiex_cfg80211_change_virtual_intf()
1035 priv->bss_mode = type; in mwifiex_cfg80211_change_virtual_intf()
1036 priv->sec_info.authentication_mode = in mwifiex_cfg80211_change_virtual_intf()
1039 mwifiex_deauthenticate(priv, NULL); in mwifiex_cfg80211_change_virtual_intf()
1040 return mwifiex_send_cmd(priv, HostCmd_CMD_SET_BSS_MODE, in mwifiex_cfg80211_change_virtual_intf()
1086 if (mwifiex_cfg80211_init_p2p_client(priv)) in mwifiex_cfg80211_change_virtual_intf()
1091 if (mwifiex_cfg80211_deinit_p2p(priv)) in mwifiex_cfg80211_change_virtual_intf()
1098 if (mwifiex_cfg80211_deinit_p2p(priv)) in mwifiex_cfg80211_change_virtual_intf()
1124 mwifiex_parse_htinfo(struct mwifiex_private *priv, u8 tx_htinfo, in mwifiex_parse_htinfo() argument
1127 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_parse_htinfo()
1133 rate->mcs = priv->tx_rate; in mwifiex_parse_htinfo()
1138 rate->mcs = priv->tx_rate & 0x0F; in mwifiex_parse_htinfo()
1162 if ((priv->tx_rate >> 4) == 1) in mwifiex_parse_htinfo()
1172 if ((tx_htinfo & BIT(0)) && (priv->tx_rate < 16)) { in mwifiex_parse_htinfo()
1173 rate->mcs = priv->tx_rate; in mwifiex_parse_htinfo()
1196 mwifiex_dump_station_info(struct mwifiex_private *priv, in mwifiex_dump_station_info() argument
1207 if (mwifiex_send_cmd(priv, HostCmd_CMD_RSSI_INFO, in mwifiex_dump_station_info()
1209 dev_err(priv->adapter->dev, "failed to get signal information\n"); in mwifiex_dump_station_info()
1213 if (mwifiex_drv_get_data_rate(priv, &rate)) { in mwifiex_dump_station_info()
1214 dev_err(priv->adapter->dev, "getting data rate\n"); in mwifiex_dump_station_info()
1219 mwifiex_send_cmd(priv, HostCmd_CMD_802_11_SNMP_MIB, in mwifiex_dump_station_info()
1221 &priv->dtim_period, true); in mwifiex_dump_station_info()
1223 mwifiex_parse_htinfo(priv, priv->tx_htinfo, &sinfo->txrate); in mwifiex_dump_station_info()
1225 sinfo->signal_avg = priv->bcn_rssi_avg; in mwifiex_dump_station_info()
1226 sinfo->rx_bytes = priv->stats.rx_bytes; in mwifiex_dump_station_info()
1227 sinfo->tx_bytes = priv->stats.tx_bytes; in mwifiex_dump_station_info()
1228 sinfo->rx_packets = priv->stats.rx_packets; in mwifiex_dump_station_info()
1229 sinfo->tx_packets = priv->stats.tx_packets; in mwifiex_dump_station_info()
1230 sinfo->signal = priv->bcn_rssi_avg; in mwifiex_dump_station_info()
1234 if (priv->bss_mode == NL80211_IFTYPE_STATION) { in mwifiex_dump_station_info()
1237 if (priv->curr_bss_params.bss_descriptor.cap_info_bitmap & in mwifiex_dump_station_info()
1241 if (priv->curr_bss_params.bss_descriptor.cap_info_bitmap & in mwifiex_dump_station_info()
1245 sinfo->bss_param.dtim_period = priv->dtim_period; in mwifiex_dump_station_info()
1247 priv->curr_bss_params.bss_descriptor.beacon_period; in mwifiex_dump_station_info()
1263 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_get_station() local
1265 if (!priv->media_connected) in mwifiex_cfg80211_get_station()
1267 if (memcmp(mac, priv->cfg_bssid, ETH_ALEN)) in mwifiex_cfg80211_get_station()
1270 return mwifiex_dump_station_info(priv, sinfo); in mwifiex_cfg80211_get_station()
1280 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_dump_station() local
1282 if (!priv->media_connected || idx) in mwifiex_cfg80211_dump_station()
1285 memcpy(mac, priv->cfg_bssid, ETH_ALEN); in mwifiex_cfg80211_dump_station()
1287 return mwifiex_dump_station_info(priv, sinfo); in mwifiex_cfg80211_dump_station()
1294 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_dump_survey() local
1295 struct mwifiex_chan_stats *pchan_stats = priv->adapter->chan_stats; in mwifiex_cfg80211_dump_survey()
1298 dev_dbg(priv->adapter->dev, "dump_survey idx=%d\n", idx); in mwifiex_cfg80211_dump_survey()
1302 if ((GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) && in mwifiex_cfg80211_dump_survey()
1303 priv->media_connected && idx == 0) { in mwifiex_cfg80211_dump_survey()
1304 u8 curr_bss_band = priv->curr_bss_params.band; in mwifiex_cfg80211_dump_survey()
1305 u32 chan = priv->curr_bss_params.bss_descriptor.channel; in mwifiex_cfg80211_dump_survey()
1311 if (priv->bcn_nf_last) { in mwifiex_cfg80211_dump_survey()
1313 survey->noise = priv->bcn_nf_last; in mwifiex_cfg80211_dump_survey()
1318 if (idx >= priv->adapter->num_in_chan_stats) in mwifiex_cfg80211_dump_survey()
1469 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_set_bitrate_mask() local
1472 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_cfg80211_set_bitrate_mask()
1474 if (!priv->media_connected) { in mwifiex_cfg80211_set_bitrate_mask()
1480 band = mwifiex_band_to_radio_type(priv->curr_bss_params.band); in mwifiex_cfg80211_set_bitrate_mask()
1506 return mwifiex_send_cmd(priv, HostCmd_CMD_TX_RATE_CFG, in mwifiex_cfg80211_set_bitrate_mask()
1520 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_set_cqm_rssi_config() local
1523 priv->cqm_rssi_thold = rssi_thold; in mwifiex_cfg80211_set_cqm_rssi_config()
1524 priv->cqm_rssi_hyst = rssi_hyst; in mwifiex_cfg80211_set_cqm_rssi_config()
1536 return mwifiex_send_cmd(priv, in mwifiex_cfg80211_set_cqm_rssi_config()
1541 return mwifiex_send_cmd(priv, in mwifiex_cfg80211_set_cqm_rssi_config()
1556 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_change_beacon() local
1558 if (GET_BSS_ROLE(priv) != MWIFIEX_BSS_ROLE_UAP) { in mwifiex_cfg80211_change_beacon()
1563 if (!priv->bss_started) { in mwifiex_cfg80211_change_beacon()
1568 if (mwifiex_set_mgmt_ies(priv, data)) { in mwifiex_cfg80211_change_beacon()
1586 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_del_station() local
1591 if (list_empty(&priv->sta_list) || !priv->bss_started) in mwifiex_cfg80211_del_station()
1601 spin_lock_irqsave(&priv->sta_list_spinlock, flags); in mwifiex_cfg80211_del_station()
1602 sta_node = mwifiex_get_sta_entry(priv, params->mac); in mwifiex_cfg80211_del_station()
1605 spin_unlock_irqrestore(&priv->sta_list_spinlock, flags); in mwifiex_cfg80211_del_station()
1608 if (mwifiex_send_cmd(priv, HostCmd_CMD_UAP_STA_DEAUTH, in mwifiex_cfg80211_del_station()
1621 struct mwifiex_private *priv = mwifiex_get_priv(adapter, in mwifiex_cfg80211_set_antenna() local
1640 (priv->adapter->number_of_antenna > 1)) { in mwifiex_cfg80211_set_antenna()
1676 return mwifiex_send_cmd(priv, HostCmd_CMD_RF_ANTENNA, in mwifiex_cfg80211_set_antenna()
1685 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_stop_ap() local
1687 mwifiex_abort_cac(priv); in mwifiex_cfg80211_stop_ap()
1689 if (mwifiex_del_mgmt_ies(priv)) in mwifiex_cfg80211_stop_ap()
1692 priv->ap_11n_enabled = 0; in mwifiex_cfg80211_stop_ap()
1693 memset(&priv->bss_cfg, 0, sizeof(priv->bss_cfg)); in mwifiex_cfg80211_stop_ap()
1695 if (mwifiex_send_cmd(priv, HostCmd_CMD_UAP_BSS_STOP, in mwifiex_cfg80211_stop_ap()
1714 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_start_ap() local
1716 if (GET_BSS_ROLE(priv) != MWIFIEX_BSS_ROLE_UAP) in mwifiex_cfg80211_start_ap()
1757 if (mwifiex_set_secure_params(priv, bss_cfg, params)) { in mwifiex_cfg80211_start_ap()
1763 mwifiex_set_ht_params(priv, bss_cfg, params); in mwifiex_cfg80211_start_ap()
1765 if (priv->adapter->is_hw_11ac_capable) { in mwifiex_cfg80211_start_ap()
1766 mwifiex_set_vht_params(priv, bss_cfg, params); in mwifiex_cfg80211_start_ap()
1767 mwifiex_set_vht_width(priv, params->chandef.width, in mwifiex_cfg80211_start_ap()
1768 priv->ap_11ac_enabled); in mwifiex_cfg80211_start_ap()
1771 if (priv->ap_11ac_enabled) in mwifiex_cfg80211_start_ap()
1772 mwifiex_set_11ac_ba_params(priv); in mwifiex_cfg80211_start_ap()
1774 mwifiex_set_ba_params(priv); in mwifiex_cfg80211_start_ap()
1776 mwifiex_set_wmm_params(priv, bss_cfg, params); in mwifiex_cfg80211_start_ap()
1778 if (mwifiex_is_11h_active(priv) && in mwifiex_cfg80211_start_ap()
1780 priv->bss_mode)) { in mwifiex_cfg80211_start_ap()
1781 dev_dbg(priv->adapter->dev, "Disable 11h extensions in FW\n"); in mwifiex_cfg80211_start_ap()
1782 if (mwifiex_11h_activate(priv, false)) { in mwifiex_cfg80211_start_ap()
1783 dev_err(priv->adapter->dev, in mwifiex_cfg80211_start_ap()
1787 priv->state_11h.is_11h_active = true; in mwifiex_cfg80211_start_ap()
1790 if (mwifiex_config_start_uap(priv, bss_cfg)) { in mwifiex_cfg80211_start_ap()
1796 if (mwifiex_set_mgmt_ies(priv, ¶ms->beacon)) in mwifiex_cfg80211_start_ap()
1799 memcpy(&priv->bss_cfg, bss_cfg, sizeof(priv->bss_cfg)); in mwifiex_cfg80211_start_ap()
1814 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_disconnect() local
1816 if (mwifiex_deauthenticate(priv, NULL)) in mwifiex_cfg80211_disconnect()
1820 " reason code %d\n", priv->cfg_bssid, reason_code); in mwifiex_cfg80211_disconnect()
1822 eth_zero_addr(priv->cfg_bssid); in mwifiex_cfg80211_disconnect()
1823 priv->hs2_enabled = false; in mwifiex_cfg80211_disconnect()
1839 static int mwifiex_cfg80211_inform_ibss_bss(struct mwifiex_private *priv) in mwifiex_cfg80211_inform_ibss_bss() argument
1848 if (mwifiex_get_bss_info(priv, &bss_info)) in mwifiex_cfg80211_inform_ibss_bss()
1858 band = mwifiex_band_to_radio_type(priv->curr_bss_params.band); in mwifiex_cfg80211_inform_ibss_bss()
1859 chan = __ieee80211_get_channel(priv->wdev.wiphy, in mwifiex_cfg80211_inform_ibss_bss()
1863 bss = cfg80211_inform_bss(priv->wdev.wiphy, chan, in mwifiex_cfg80211_inform_ibss_bss()
1867 cfg80211_put_bss(priv->wdev.wiphy, bss); in mwifiex_cfg80211_inform_ibss_bss()
1868 memcpy(priv->cfg_bssid, bss_info.bssid, ETH_ALEN); in mwifiex_cfg80211_inform_ibss_bss()
1888 mwifiex_cfg80211_assoc(struct mwifiex_private *priv, size_t ssid_len, in mwifiex_cfg80211_assoc() argument
1902 dev_err(priv->adapter->dev, "invalid SSID - aborting\n"); in mwifiex_cfg80211_assoc()
1908 dev_err(priv->adapter->dev, "invalid SSID - aborting\n"); in mwifiex_cfg80211_assoc()
1914 priv->sec_info.wpa_enabled = false; in mwifiex_cfg80211_assoc()
1915 priv->sec_info.wpa2_enabled = false; in mwifiex_cfg80211_assoc()
1916 priv->wep_key_curr_index = 0; in mwifiex_cfg80211_assoc()
1917 priv->sec_info.encryption_mode = 0; in mwifiex_cfg80211_assoc()
1918 priv->sec_info.is_authtype_auto = 0; in mwifiex_cfg80211_assoc()
1919 ret = mwifiex_set_encode(priv, NULL, NULL, 0, 0, NULL, 1); in mwifiex_cfg80211_assoc()
1930 priv->sec_info.encryption_mode = in mwifiex_cfg80211_assoc()
1932 priv->sec_info.authentication_mode = in mwifiex_cfg80211_assoc()
1942 priv->sec_info.is_authtype_auto = 1; in mwifiex_cfg80211_assoc()
1948 priv->sec_info.encryption_mode = in mwifiex_cfg80211_assoc()
1950 priv->sec_info.authentication_mode = auth_type; in mwifiex_cfg80211_assoc()
1954 priv->sec_info.encryption_mode = sme->crypto.cipher_group; in mwifiex_cfg80211_assoc()
1955 priv->sec_info.authentication_mode = auth_type; in mwifiex_cfg80211_assoc()
1958 ret = mwifiex_set_gen_ie(priv, sme->ie, sme->ie_len); in mwifiex_cfg80211_assoc()
1961 if (mwifiex_is_alg_wep(priv->sec_info.encryption_mode)) { in mwifiex_cfg80211_assoc()
1962 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_assoc()
1965 priv->wep_key_curr_index = sme->key_idx; in mwifiex_cfg80211_assoc()
1966 ret = mwifiex_set_encode(priv, NULL, sme->key, in mwifiex_cfg80211_assoc()
1980 if (mwifiex_request_scan(priv, &req_ssid)) { in mwifiex_cfg80211_assoc()
1981 dev_err(priv->adapter->dev, "scan error\n"); in mwifiex_cfg80211_assoc()
1988 bss = cfg80211_get_bss(priv->wdev.wiphy, channel, in mwifiex_cfg80211_assoc()
1993 bss = cfg80211_get_bss(priv->wdev.wiphy, channel, in mwifiex_cfg80211_assoc()
2000 dev_warn(priv->adapter->dev, in mwifiex_cfg80211_assoc()
2006 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_assoc()
2009 memcpy(&priv->cfg_bssid, bss->bssid, ETH_ALEN); in mwifiex_cfg80211_assoc()
2014 ret = mwifiex_bss_start(priv, bss, &req_ssid); in mwifiex_cfg80211_assoc()
2021 if (mwifiex_cfg80211_inform_ibss_bss(priv)) in mwifiex_cfg80211_assoc()
2039 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_connect() local
2040 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_cfg80211_connect()
2043 if (GET_BSS_ROLE(priv) != MWIFIEX_BSS_ROLE_STA) { in mwifiex_cfg80211_connect()
2050 if (priv->wdev.current_bss) { in mwifiex_cfg80211_connect()
2065 ret = mwifiex_cfg80211_assoc(priv, sme->ssid_len, sme->ssid, sme->bssid, in mwifiex_cfg80211_connect()
2066 priv->bss_mode, sme->channel, sme, 0); in mwifiex_cfg80211_connect()
2068 cfg80211_connect_result(priv->netdev, priv->cfg_bssid, NULL, 0, in mwifiex_cfg80211_connect()
2071 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_connect()
2073 priv->cfg_bssid); in mwifiex_cfg80211_connect()
2074 if (ISSUPP_TDLS_ENABLED(priv->adapter->fw_cap_info) && in mwifiex_cfg80211_connect()
2075 priv->adapter->auto_tdls && in mwifiex_cfg80211_connect()
2076 priv->bss_type == MWIFIEX_BSS_TYPE_STA) in mwifiex_cfg80211_connect()
2077 mwifiex_setup_auto_tdls_timer(priv); in mwifiex_cfg80211_connect()
2079 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_connect()
2081 priv->cfg_bssid); in mwifiex_cfg80211_connect()
2082 eth_zero_addr(priv->cfg_bssid); in mwifiex_cfg80211_connect()
2085 cfg80211_connect_result(priv->netdev, priv->cfg_bssid, in mwifiex_cfg80211_connect()
2089 cfg80211_connect_result(priv->netdev, priv->cfg_bssid, in mwifiex_cfg80211_connect()
2105 static int mwifiex_set_ibss_params(struct mwifiex_private *priv, in mwifiex_set_ibss_params() argument
2108 struct wiphy *wiphy = priv->wdev.wiphy; in mwifiex_set_ibss_params()
2109 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_set_ibss_params()
2162 priv->adhoc_channel = ieee80211_frequency_to_channel( in mwifiex_set_ibss_params()
2166 config_bands, priv->adhoc_channel, adapter->sec_chan_offset); in mwifiex_set_ibss_params()
2181 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_join_ibss() local
2184 if (priv->bss_mode != NL80211_IFTYPE_ADHOC) { in mwifiex_cfg80211_join_ibss()
2193 mwifiex_set_ibss_params(priv, params); in mwifiex_cfg80211_join_ibss()
2195 ret = mwifiex_cfg80211_assoc(priv, params->ssid_len, params->ssid, in mwifiex_cfg80211_join_ibss()
2196 params->bssid, priv->bss_mode, in mwifiex_cfg80211_join_ibss()
2201 cfg80211_ibss_joined(priv->netdev, priv->cfg_bssid, in mwifiex_cfg80211_join_ibss()
2203 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_join_ibss()
2205 " %pM successfully\n", priv->cfg_bssid); in mwifiex_cfg80211_join_ibss()
2207 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_join_ibss()
2223 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_leave_ibss() local
2226 priv->cfg_bssid); in mwifiex_cfg80211_leave_ibss()
2227 if (mwifiex_deauthenticate(priv, NULL)) in mwifiex_cfg80211_leave_ibss()
2230 eth_zero_addr(priv->cfg_bssid); in mwifiex_cfg80211_leave_ibss()
2247 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_scan() local
2258 if (priv->scan_request || priv->scan_aborting) { in mwifiex_cfg80211_scan()
2259 dev_err(priv->adapter->dev, "cmd: Scan already in process..\n"); in mwifiex_cfg80211_scan()
2267 priv->scan_request = request; in mwifiex_cfg80211_scan()
2275 if (priv->vs_ie[i].mask != MWIFIEX_VSIE_MASK_CLEAR) in mwifiex_cfg80211_scan()
2277 priv->vs_ie[i].mask = MWIFIEX_VSIE_MASK_SCAN; in mwifiex_cfg80211_scan()
2279 memcpy(&priv->vs_ie[i].ie, ie, sizeof(*ie) + ie->len); in mwifiex_cfg80211_scan()
2303 if (priv->adapter->scan_chan_gap_enabled && in mwifiex_cfg80211_scan()
2304 mwifiex_is_any_intf_active(priv)) in mwifiex_cfg80211_scan()
2306 priv->adapter->scan_chan_gap_time; in mwifiex_cfg80211_scan()
2308 ret = mwifiex_scan_networks(priv, user_scan_cfg); in mwifiex_cfg80211_scan()
2311 dev_err(priv->adapter->dev, "scan failed: %d\n", ret); in mwifiex_cfg80211_scan()
2312 priv->scan_aborting = false; in mwifiex_cfg80211_scan()
2313 priv->scan_request = NULL; in mwifiex_cfg80211_scan()
2319 if (priv->vs_ie[i].mask == MWIFIEX_VSIE_MASK_SCAN) { in mwifiex_cfg80211_scan()
2320 priv->vs_ie[i].mask = MWIFIEX_VSIE_MASK_CLEAR; in mwifiex_cfg80211_scan()
2321 memset(&priv->vs_ie[i].ie, 0, in mwifiex_cfg80211_scan()
2330 struct mwifiex_private *priv) in mwifiex_setup_vht_caps() argument
2332 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_setup_vht_caps()
2360 struct mwifiex_private *priv) in mwifiex_setup_ht_caps() argument
2365 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_setup_ht_caps()
2423 if (priv->bss_mode == NL80211_IFTYPE_STATION || in mwifiex_setup_ht_caps()
2444 struct mwifiex_private *priv; in mwifiex_add_virtual_intf() local
2462 priv = mwifiex_get_unused_priv(adapter); in mwifiex_add_virtual_intf()
2463 if (!priv) { in mwifiex_add_virtual_intf()
2469 priv->wdev.wiphy = wiphy; in mwifiex_add_virtual_intf()
2470 priv->wdev.iftype = NL80211_IFTYPE_STATION; in mwifiex_add_virtual_intf()
2473 priv->bss_mode = NL80211_IFTYPE_STATION; in mwifiex_add_virtual_intf()
2475 priv->bss_mode = type; in mwifiex_add_virtual_intf()
2477 priv->bss_type = MWIFIEX_BSS_TYPE_STA; in mwifiex_add_virtual_intf()
2478 priv->frame_type = MWIFIEX_DATA_FRAME_TYPE_ETH_II; in mwifiex_add_virtual_intf()
2479 priv->bss_priority = 0; in mwifiex_add_virtual_intf()
2480 priv->bss_role = MWIFIEX_BSS_ROLE_STA; in mwifiex_add_virtual_intf()
2481 priv->bss_num = 0; in mwifiex_add_virtual_intf()
2492 priv = mwifiex_get_unused_priv(adapter); in mwifiex_add_virtual_intf()
2493 if (!priv) { in mwifiex_add_virtual_intf()
2499 priv->wdev.wiphy = wiphy; in mwifiex_add_virtual_intf()
2500 priv->wdev.iftype = NL80211_IFTYPE_AP; in mwifiex_add_virtual_intf()
2502 priv->bss_type = MWIFIEX_BSS_TYPE_UAP; in mwifiex_add_virtual_intf()
2503 priv->frame_type = MWIFIEX_DATA_FRAME_TYPE_ETH_II; in mwifiex_add_virtual_intf()
2504 priv->bss_priority = 0; in mwifiex_add_virtual_intf()
2505 priv->bss_role = MWIFIEX_BSS_ROLE_UAP; in mwifiex_add_virtual_intf()
2506 priv->bss_started = 0; in mwifiex_add_virtual_intf()
2507 priv->bss_num = 0; in mwifiex_add_virtual_intf()
2508 priv->bss_mode = type; in mwifiex_add_virtual_intf()
2519 priv = mwifiex_get_unused_priv(adapter); in mwifiex_add_virtual_intf()
2520 if (!priv) { in mwifiex_add_virtual_intf()
2526 priv->wdev.wiphy = wiphy; in mwifiex_add_virtual_intf()
2530 priv->wdev.iftype = NL80211_IFTYPE_P2P_CLIENT; in mwifiex_add_virtual_intf()
2531 priv->bss_mode = NL80211_IFTYPE_P2P_CLIENT; in mwifiex_add_virtual_intf()
2537 priv->bss_type = MWIFIEX_BSS_TYPE_P2P; in mwifiex_add_virtual_intf()
2539 priv->frame_type = MWIFIEX_DATA_FRAME_TYPE_ETH_II; in mwifiex_add_virtual_intf()
2540 priv->bss_priority = MWIFIEX_BSS_ROLE_STA; in mwifiex_add_virtual_intf()
2541 priv->bss_role = MWIFIEX_BSS_ROLE_STA; in mwifiex_add_virtual_intf()
2542 priv->bss_started = 0; in mwifiex_add_virtual_intf()
2543 priv->bss_num = 0; in mwifiex_add_virtual_intf()
2545 if (mwifiex_cfg80211_init_p2p_client(priv)) { in mwifiex_add_virtual_intf()
2546 memset(&priv->wdev, 0, sizeof(priv->wdev)); in mwifiex_add_virtual_intf()
2547 priv->wdev.iftype = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_add_virtual_intf()
2562 memset(&priv->wdev, 0, sizeof(priv->wdev)); in mwifiex_add_virtual_intf()
2563 priv->wdev.iftype = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_add_virtual_intf()
2564 priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_add_virtual_intf()
2568 mwifiex_init_priv_params(priv, dev); in mwifiex_add_virtual_intf()
2569 priv->netdev = dev; in mwifiex_add_virtual_intf()
2571 mwifiex_setup_ht_caps(&wiphy->bands[IEEE80211_BAND_2GHZ]->ht_cap, priv); in mwifiex_add_virtual_intf()
2574 &wiphy->bands[IEEE80211_BAND_2GHZ]->vht_cap, priv); in mwifiex_add_virtual_intf()
2578 &wiphy->bands[IEEE80211_BAND_5GHZ]->ht_cap, priv); in mwifiex_add_virtual_intf()
2582 &wiphy->bands[IEEE80211_BAND_5GHZ]->vht_cap, priv); in mwifiex_add_virtual_intf()
2585 dev->ieee80211_ptr = &priv->wdev; in mwifiex_add_virtual_intf()
2586 dev->ieee80211_ptr->iftype = priv->bss_mode; in mwifiex_add_virtual_intf()
2596 *((unsigned long *) mdev_priv) = (unsigned long) priv; in mwifiex_add_virtual_intf()
2604 priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_add_virtual_intf()
2605 priv->netdev = NULL; in mwifiex_add_virtual_intf()
2606 memset(&priv->wdev, 0, sizeof(priv->wdev)); in mwifiex_add_virtual_intf()
2607 priv->wdev.iftype = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_add_virtual_intf()
2611 priv->dfs_cac_workqueue = alloc_workqueue("MWIFIEX_DFS_CAC%s", in mwifiex_add_virtual_intf()
2615 if (!priv->dfs_cac_workqueue) { in mwifiex_add_virtual_intf()
2618 priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_add_virtual_intf()
2619 priv->netdev = NULL; in mwifiex_add_virtual_intf()
2620 memset(&priv->wdev, 0, sizeof(priv->wdev)); in mwifiex_add_virtual_intf()
2621 priv->wdev.iftype = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_add_virtual_intf()
2625 INIT_DELAYED_WORK(&priv->dfs_cac_work, mwifiex_dfs_cac_work_queue); in mwifiex_add_virtual_intf()
2627 priv->dfs_chan_sw_workqueue = alloc_workqueue("MWIFIEX_DFS_CHSW%s", in mwifiex_add_virtual_intf()
2630 if (!priv->dfs_chan_sw_workqueue) { in mwifiex_add_virtual_intf()
2633 priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_add_virtual_intf()
2634 priv->netdev = NULL; in mwifiex_add_virtual_intf()
2635 memset(&priv->wdev, 0, sizeof(priv->wdev)); in mwifiex_add_virtual_intf()
2636 priv->wdev.iftype = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_add_virtual_intf()
2640 INIT_DELAYED_WORK(&priv->dfs_chan_sw_work, in mwifiex_add_virtual_intf()
2643 sema_init(&priv->async_sem, 1); in mwifiex_add_virtual_intf()
2648 mwifiex_dev_debugfs_init(priv); in mwifiex_add_virtual_intf()
2668 return &priv->wdev; in mwifiex_add_virtual_intf()
2677 struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev); in mwifiex_del_virtual_intf() local
2678 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_del_virtual_intf()
2681 mwifiex_dev_debugfs_remove(priv); in mwifiex_del_virtual_intf()
2684 mwifiex_stop_net_dev_queue(priv->netdev, adapter); in mwifiex_del_virtual_intf()
2686 if (netif_carrier_ok(priv->netdev)) in mwifiex_del_virtual_intf()
2687 netif_carrier_off(priv->netdev); in mwifiex_del_virtual_intf()
2692 if (priv->dfs_cac_workqueue) { in mwifiex_del_virtual_intf()
2693 flush_workqueue(priv->dfs_cac_workqueue); in mwifiex_del_virtual_intf()
2694 destroy_workqueue(priv->dfs_cac_workqueue); in mwifiex_del_virtual_intf()
2695 priv->dfs_cac_workqueue = NULL; in mwifiex_del_virtual_intf()
2698 if (priv->dfs_chan_sw_workqueue) { in mwifiex_del_virtual_intf()
2699 flush_workqueue(priv->dfs_chan_sw_workqueue); in mwifiex_del_virtual_intf()
2700 destroy_workqueue(priv->dfs_chan_sw_workqueue); in mwifiex_del_virtual_intf()
2701 priv->dfs_chan_sw_workqueue = NULL; in mwifiex_del_virtual_intf()
2704 priv->netdev->ieee80211_ptr = NULL; in mwifiex_del_virtual_intf()
2705 priv->netdev = NULL; in mwifiex_del_virtual_intf()
2706 priv->wdev.iftype = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_del_virtual_intf()
2708 priv->media_connected = false; in mwifiex_del_virtual_intf()
2710 switch (priv->bss_mode) { in mwifiex_del_virtual_intf()
2728 priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED; in mwifiex_del_virtual_intf()
2730 if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA || in mwifiex_del_virtual_intf()
2731 GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_UAP) in mwifiex_del_virtual_intf()
2732 kfree(priv->hist_data); in mwifiex_del_virtual_intf()
2769 static void mwifiex_set_auto_arp_mef_entry(struct mwifiex_private *priv, in mwifiex_set_auto_arp_mef_entry() argument
2776 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_set_auto_arp_mef_entry()
2784 if (adapter->priv[i]->netdev) { in mwifiex_set_auto_arp_mef_entry()
2785 in_dev = __in_dev_get_rtnl(adapter->priv[i]->netdev); in mwifiex_set_auto_arp_mef_entry()
2823 static int mwifiex_set_wowlan_mef_entry(struct mwifiex_private *priv, in mwifiex_set_wowlan_mef_entry() argument
2842 dev_err(priv->adapter->dev, "Pattern not supported\n"); in mwifiex_set_wowlan_mef_entry()
2881 memcpy(mef_entry->filter[filt_num].byte_seq, priv->curr_addr, in mwifiex_set_wowlan_mef_entry()
2892 memcpy(mef_entry->filter[filt_num].byte_seq, priv->curr_addr, in mwifiex_set_wowlan_mef_entry()
2903 static int mwifiex_set_mef_filter(struct mwifiex_private *priv, in mwifiex_set_mef_filter() argument
2923 mwifiex_set_auto_arp_mef_entry(priv, &mef_entry[0]); in mwifiex_set_mef_filter()
2926 ret = mwifiex_set_wowlan_mef_entry(priv, &mef_cfg, in mwifiex_set_mef_filter()
2934 ret = mwifiex_send_cmd(priv, HostCmd_CMD_MEF_CFG, in mwifiex_set_mef_filter()
2947 struct mwifiex_private *priv; in mwifiex_cfg80211_suspend() local
2950 priv = adapter->priv[i]; in mwifiex_cfg80211_suspend()
2951 mwifiex_abort_cac(priv); in mwifiex_cfg80211_suspend()
2961 priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_STA); in mwifiex_cfg80211_suspend()
2963 if (!priv->media_connected) { in mwifiex_cfg80211_suspend()
2969 ret = mwifiex_set_mef_filter(priv, wowlan); in mwifiex_cfg80211_suspend()
2981 ret = mwifiex_set_hs_params(priv, HostCmd_ACT_GEN_SET, in mwifiex_cfg80211_suspend()
3027 mwifiex_fill_coalesce_rule_info(struct mwifiex_private *priv, in mwifiex_fill_coalesce_rule_info() argument
3044 dev_err(priv->adapter->dev, "Pattern not supported\n"); in mwifiex_fill_coalesce_rule_info()
3053 dev_err(priv->adapter->dev, in mwifiex_fill_coalesce_rule_info()
3077 dev_err(priv->adapter->dev, in mwifiex_fill_coalesce_rule_info()
3091 struct mwifiex_private *priv = in mwifiex_cfg80211_set_coalesce() local
3098 return mwifiex_send_cmd(priv, HostCmd_CMD_COALESCE_CFG, in mwifiex_cfg80211_set_coalesce()
3105 ret = mwifiex_fill_coalesce_rule_info(priv, &coalesce->rules[i], in mwifiex_cfg80211_set_coalesce()
3108 dev_err(priv->adapter->dev, in mwifiex_cfg80211_set_coalesce()
3115 return mwifiex_send_cmd(priv, HostCmd_CMD_COALESCE_CFG, in mwifiex_cfg80211_set_coalesce()
3129 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_tdls_mgmt() local
3136 if (!(priv->bss_type == MWIFIEX_BSS_TYPE_STA && priv->media_connected)) in mwifiex_cfg80211_tdls_mgmt()
3141 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_tdls_mgmt()
3144 mwifiex_add_auto_tdls_peer(priv, peer); in mwifiex_cfg80211_tdls_mgmt()
3145 ret = mwifiex_send_tdls_data_frame(priv, peer, action_code, in mwifiex_cfg80211_tdls_mgmt()
3150 mwifiex_add_auto_tdls_peer(priv, peer); in mwifiex_cfg80211_tdls_mgmt()
3151 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_tdls_mgmt()
3154 ret = mwifiex_send_tdls_data_frame(priv, peer, action_code, in mwifiex_cfg80211_tdls_mgmt()
3159 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_tdls_mgmt()
3162 ret = mwifiex_send_tdls_data_frame(priv, peer, action_code, in mwifiex_cfg80211_tdls_mgmt()
3167 dev_dbg(priv->adapter->dev, "Send TDLS Tear down to %pM\n", in mwifiex_cfg80211_tdls_mgmt()
3169 ret = mwifiex_send_tdls_data_frame(priv, peer, action_code, in mwifiex_cfg80211_tdls_mgmt()
3174 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_tdls_mgmt()
3176 ret = mwifiex_send_tdls_data_frame(priv, peer, action_code, in mwifiex_cfg80211_tdls_mgmt()
3181 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_tdls_mgmt()
3183 ret = mwifiex_send_tdls_action_frame(priv, peer, action_code, in mwifiex_cfg80211_tdls_mgmt()
3188 dev_warn(priv->adapter->dev, in mwifiex_cfg80211_tdls_mgmt()
3201 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_tdls_oper() local
3208 if (!(priv->bss_type == MWIFIEX_BSS_TYPE_STA && priv->media_connected)) in mwifiex_cfg80211_tdls_oper()
3211 dev_dbg(priv->adapter->dev, in mwifiex_cfg80211_tdls_oper()
3223 dev_warn(priv->adapter->dev, in mwifiex_cfg80211_tdls_oper()
3228 dev_warn(priv->adapter->dev, in mwifiex_cfg80211_tdls_oper()
3233 dev_warn(priv->adapter->dev, in mwifiex_cfg80211_tdls_oper()
3237 dev_err(priv->adapter->dev, in mwifiex_cfg80211_tdls_oper()
3242 return mwifiex_tdls_oper(priv, peer, action); in mwifiex_cfg80211_tdls_oper()
3249 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_add_station() local
3255 if ((priv->bss_type != MWIFIEX_BSS_TYPE_STA) || !priv->media_connected) in mwifiex_cfg80211_add_station()
3258 return mwifiex_tdls_oper(priv, mac, MWIFIEX_TDLS_CREATE_LINK); in mwifiex_cfg80211_add_station()
3268 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_channel_switch() local
3270 if (priv->adapter->scan_processing) { in mwifiex_cfg80211_channel_switch()
3271 dev_err(priv->adapter->dev, in mwifiex_cfg80211_channel_switch()
3276 if (priv->wdev.cac_started) in mwifiex_cfg80211_channel_switch()
3280 &priv->dfs_chandef)) in mwifiex_cfg80211_channel_switch()
3287 dev_err(priv->adapter->dev, in mwifiex_cfg80211_channel_switch()
3294 if (netif_carrier_ok(priv->netdev)) in mwifiex_cfg80211_channel_switch()
3295 netif_carrier_off(priv->netdev); in mwifiex_cfg80211_channel_switch()
3296 mwifiex_stop_net_dev_queue(priv->netdev, priv->adapter); in mwifiex_cfg80211_channel_switch()
3299 if (mwifiex_del_mgmt_ies(priv)) in mwifiex_cfg80211_channel_switch()
3302 if (mwifiex_set_mgmt_ies(priv, ¶ms->beacon_csa)) { in mwifiex_cfg80211_channel_switch()
3307 memcpy(&priv->dfs_chandef, ¶ms->chandef, sizeof(priv->dfs_chandef)); in mwifiex_cfg80211_channel_switch()
3308 memcpy(&priv->beacon_after, ¶ms->beacon_after, in mwifiex_cfg80211_channel_switch()
3309 sizeof(priv->beacon_after)); in mwifiex_cfg80211_channel_switch()
3311 chsw_msec = max(channel_sw->count * priv->bss_cfg.beacon_period, 100); in mwifiex_cfg80211_channel_switch()
3312 queue_delayed_work(priv->dfs_chan_sw_workqueue, &priv->dfs_chan_sw_work, in mwifiex_cfg80211_channel_switch()
3323 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_start_radar_detection() local
3326 if (priv->adapter->scan_processing) { in mwifiex_cfg80211_start_radar_detection()
3327 dev_err(priv->adapter->dev, in mwifiex_cfg80211_start_radar_detection()
3332 if (!mwifiex_is_11h_active(priv)) { in mwifiex_cfg80211_start_radar_detection()
3333 dev_dbg(priv->adapter->dev, "Enable 11h extensions in FW\n"); in mwifiex_cfg80211_start_radar_detection()
3334 if (mwifiex_11h_activate(priv, true)) { in mwifiex_cfg80211_start_radar_detection()
3335 dev_err(priv->adapter->dev, in mwifiex_cfg80211_start_radar_detection()
3339 priv->state_11h.is_11h_active = true; in mwifiex_cfg80211_start_radar_detection()
3346 memcpy(&priv->dfs_chandef, chandef, sizeof(priv->dfs_chandef)); in mwifiex_cfg80211_start_radar_detection()
3348 if (mwifiex_send_cmd(priv, HostCmd_CMD_CHAN_REPORT_REQUEST, in mwifiex_cfg80211_start_radar_detection()
3352 queue_delayed_work(priv->dfs_cac_workqueue, &priv->dfs_cac_work, in mwifiex_cfg80211_start_radar_detection()
3363 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); in mwifiex_cfg80211_change_station() local
3370 if ((priv->bss_type != MWIFIEX_BSS_TYPE_STA) || !priv->media_connected) in mwifiex_cfg80211_change_station()
3373 priv->sta_params = params; in mwifiex_cfg80211_change_station()
3375 ret = mwifiex_tdls_oper(priv, mac, MWIFIEX_TDLS_CONFIG_LINK); in mwifiex_cfg80211_change_station()
3376 priv->sta_params = NULL; in mwifiex_cfg80211_change_station()
3487 struct mwifiex_private *priv = adapter->priv[MWIFIEX_BSS_TYPE_STA]; in mwifiex_register_cfg80211() local
3562 set_wiphy_dev(wiphy, priv->adapter->dev); in mwifiex_register_cfg80211()
3582 mwifiex_send_cmd(priv, HostCmd_CMD_802_11_SNMP_MIB, in mwifiex_register_cfg80211()
3585 mwifiex_send_cmd(priv, HostCmd_CMD_802_11_SNMP_MIB, in mwifiex_register_cfg80211()
3588 mwifiex_send_cmd(priv, HostCmd_CMD_802_11_SNMP_MIB, in mwifiex_register_cfg80211()
3591 mwifiex_send_cmd(priv, HostCmd_CMD_802_11_SNMP_MIB, in mwifiex_register_cfg80211()