Lines Matching refs:priv
85 int mwifiex_request_set_multicast_list(struct mwifiex_private *priv, in mwifiex_request_set_multicast_list() argument
91 old_pkt_filter = priv->curr_pkt_filter; in mwifiex_request_set_multicast_list()
94 dev_dbg(priv->adapter->dev, "info: Enable Promiscuous mode\n"); in mwifiex_request_set_multicast_list()
95 priv->curr_pkt_filter |= HostCmd_ACT_MAC_PROMISCUOUS_ENABLE; in mwifiex_request_set_multicast_list()
96 priv->curr_pkt_filter &= in mwifiex_request_set_multicast_list()
100 priv->curr_pkt_filter &= ~HostCmd_ACT_MAC_PROMISCUOUS_ENABLE; in mwifiex_request_set_multicast_list()
102 dev_dbg(priv->adapter->dev, in mwifiex_request_set_multicast_list()
104 priv->curr_pkt_filter |= in mwifiex_request_set_multicast_list()
107 priv->curr_pkt_filter &= in mwifiex_request_set_multicast_list()
109 dev_dbg(priv->adapter->dev, in mwifiex_request_set_multicast_list()
113 ret = mwifiex_send_cmd(priv, in mwifiex_request_set_multicast_list()
119 dev_dbg(priv->adapter->dev, in mwifiex_request_set_multicast_list()
121 old_pkt_filter, priv->curr_pkt_filter); in mwifiex_request_set_multicast_list()
122 if (old_pkt_filter != priv->curr_pkt_filter) { in mwifiex_request_set_multicast_list()
123 ret = mwifiex_send_cmd(priv, HostCmd_CMD_MAC_CONTROL, in mwifiex_request_set_multicast_list()
125 0, &priv->curr_pkt_filter, false); in mwifiex_request_set_multicast_list()
137 int mwifiex_fill_new_bss_desc(struct mwifiex_private *priv, in mwifiex_fill_new_bss_desc() argument
143 struct mwifiex_bss_priv *bss_priv = (void *)bss->priv; in mwifiex_fill_new_bss_desc()
154 dev_err(priv->adapter->dev, " failed to alloc beacon_ie\n"); in mwifiex_fill_new_bss_desc()
168 dev_dbg(priv->adapter->dev, "info: InterpretIE: AP WEP enabled\n"); in mwifiex_fill_new_bss_desc()
186 return mwifiex_update_bss_desc_with_ie(priv->adapter, bss_desc); in mwifiex_fill_new_bss_desc()
189 void mwifiex_dnld_txpwr_table(struct mwifiex_private *priv) in mwifiex_dnld_txpwr_table() argument
191 if (priv->adapter->dt_node) { in mwifiex_dnld_txpwr_table()
194 memcpy(&txpwr[8], priv->adapter->country_code, 2); in mwifiex_dnld_txpwr_table()
195 mwifiex_dnld_dt_cfgdata(priv, priv->adapter->dt_node, txpwr); in mwifiex_dnld_txpwr_table()
199 static int mwifiex_process_country_ie(struct mwifiex_private *priv, in mwifiex_process_country_ie() argument
205 &priv->adapter->domain_reg; in mwifiex_process_country_ie()
220 if (!strncmp(priv->adapter->country_code, &country_ie[2], 2)) { in mwifiex_process_country_ie()
222 wiphy_dbg(priv->wdev.wiphy, in mwifiex_process_country_ie()
226 memcpy(priv->adapter->country_code, &country_ie[2], 2); in mwifiex_process_country_ie()
242 if (mwifiex_send_cmd(priv, HostCmd_CMD_802_11D_DOMAIN_INFO, in mwifiex_process_country_ie()
244 wiphy_err(priv->adapter->wiphy, in mwifiex_process_country_ie()
249 mwifiex_dnld_txpwr_table(priv); in mwifiex_process_country_ie()
259 int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss, in mwifiex_bss_start() argument
263 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_bss_start()
266 priv->scan_block = false; in mwifiex_bss_start()
269 mwifiex_process_country_ie(priv, bss); in mwifiex_bss_start()
277 ret = mwifiex_fill_new_bss_desc(priv, bss, bss_desc); in mwifiex_bss_start()
282 if (priv->bss_mode == NL80211_IFTYPE_STATION || in mwifiex_bss_start()
283 priv->bss_mode == NL80211_IFTYPE_P2P_CLIENT) { in mwifiex_bss_start()
301 ret = mwifiex_check_network_compatibility(priv, bss_desc); in mwifiex_bss_start()
305 if (mwifiex_11h_get_csa_closed_channel(priv) == in mwifiex_bss_start()
316 mwifiex_stop_net_dev_queue(priv->netdev, adapter); in mwifiex_bss_start()
317 if (netif_carrier_ok(priv->netdev)) in mwifiex_bss_start()
318 netif_carrier_off(priv->netdev); in mwifiex_bss_start()
322 priv->assoc_rsp_size = 0; in mwifiex_bss_start()
323 ret = mwifiex_associate(priv, bss_desc); in mwifiex_bss_start()
328 priv->sec_info.is_authtype_auto && in mwifiex_bss_start()
329 priv->sec_info.wep_enabled) { in mwifiex_bss_start()
330 priv->sec_info.authentication_mode = in mwifiex_bss_start()
332 ret = mwifiex_associate(priv, bss_desc); in mwifiex_bss_start()
336 cfg80211_put_bss(priv->adapter->wiphy, bss); in mwifiex_bss_start()
341 (!mwifiex_ssid_cmp(&priv->curr_bss_params.bss_descriptor. in mwifiex_bss_start()
347 priv->adhoc_is_link_sensed = false; in mwifiex_bss_start()
349 ret = mwifiex_check_network_compatibility(priv, bss_desc); in mwifiex_bss_start()
351 mwifiex_stop_net_dev_queue(priv->netdev, adapter); in mwifiex_bss_start()
352 if (netif_carrier_ok(priv->netdev)) in mwifiex_bss_start()
353 netif_carrier_off(priv->netdev); in mwifiex_bss_start()
358 ret = mwifiex_adhoc_join(priv, bss_desc); in mwifiex_bss_start()
360 cfg80211_put_bss(priv->adapter->wiphy, bss); in mwifiex_bss_start()
365 ret = mwifiex_adhoc_start(priv, req_ssid); in mwifiex_bss_start()
385 int mwifiex_set_hs_params(struct mwifiex_private *priv, u16 action, in mwifiex_set_hs_params() argument
389 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_set_hs_params()
428 status = mwifiex_send_cmd(priv, in mwifiex_set_hs_params()
464 int mwifiex_cancel_hs(struct mwifiex_private *priv, int cmd_type) in mwifiex_cancel_hs() argument
471 return mwifiex_set_hs_params(priv, HostCmd_ACT_GEN_SET, in mwifiex_cancel_hs()
485 struct mwifiex_private *priv; in mwifiex_enable_hs() local
490 priv = adapter->priv[i]; in mwifiex_enable_hs()
491 if (priv) in mwifiex_enable_hs()
492 mwifiex_deauthenticate(priv, NULL); in mwifiex_enable_hs()
534 int mwifiex_get_bss_info(struct mwifiex_private *priv, in mwifiex_get_bss_info() argument
537 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_get_bss_info()
543 bss_desc = &priv->curr_bss_params.bss_descriptor; in mwifiex_get_bss_info()
545 info->bss_mode = priv->bss_mode; in mwifiex_get_bss_info()
556 info->media_connected = priv->media_connected; in mwifiex_get_bss_info()
558 info->max_power_level = priv->max_tx_power_level; in mwifiex_get_bss_info()
559 info->min_power_level = priv->min_tx_power_level; in mwifiex_get_bss_info()
561 info->adhoc_state = priv->adhoc_state; in mwifiex_get_bss_info()
563 info->bcn_nf_last = priv->bcn_nf_last; in mwifiex_get_bss_info()
565 if (priv->sec_info.wep_enabled) in mwifiex_get_bss_info()
579 int mwifiex_disable_auto_ds(struct mwifiex_private *priv) in mwifiex_disable_auto_ds() argument
585 return mwifiex_send_cmd(priv, HostCmd_CMD_802_11_PS_MODE_ENH, in mwifiex_disable_auto_ds()
596 int mwifiex_drv_get_data_rate(struct mwifiex_private *priv, u32 *rate) in mwifiex_drv_get_data_rate() argument
600 ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_TX_RATE_QUERY, in mwifiex_drv_get_data_rate()
604 if (priv->is_data_rate_auto) in mwifiex_drv_get_data_rate()
605 *rate = mwifiex_index_to_data_rate(priv, priv->tx_rate, in mwifiex_drv_get_data_rate()
606 priv->tx_htinfo); in mwifiex_drv_get_data_rate()
608 *rate = priv->data_rate; in mwifiex_drv_get_data_rate()
626 int mwifiex_set_tx_power(struct mwifiex_private *priv, in mwifiex_set_tx_power() argument
638 if ((dbm < priv->min_tx_power_level) || in mwifiex_set_tx_power()
639 (dbm > priv->max_tx_power_level)) { in mwifiex_set_tx_power()
640 dev_err(priv->adapter->dev, "txpower value %d dBm" in mwifiex_set_tx_power()
642 dbm, priv->min_tx_power_level, in mwifiex_set_tx_power()
643 priv->max_tx_power_level); in mwifiex_set_tx_power()
697 ret = mwifiex_send_cmd(priv, HostCmd_CMD_TXPWR_CFG, in mwifiex_set_tx_power()
710 int mwifiex_drv_set_power(struct mwifiex_private *priv, u32 *ps_mode) in mwifiex_drv_set_power() argument
713 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_drv_set_power()
721 ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_PS_MODE_ENH, in mwifiex_drv_set_power()
724 ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_PS_MODE_ENH, in mwifiex_drv_set_power()
737 static int mwifiex_set_wpa_ie_helper(struct mwifiex_private *priv, in mwifiex_set_wpa_ie_helper() argument
741 if (ie_len > sizeof(priv->wpa_ie)) { in mwifiex_set_wpa_ie_helper()
742 dev_err(priv->adapter->dev, in mwifiex_set_wpa_ie_helper()
746 memcpy(priv->wpa_ie, ie_data_ptr, ie_len); in mwifiex_set_wpa_ie_helper()
747 priv->wpa_ie_len = (u8) ie_len; in mwifiex_set_wpa_ie_helper()
748 dev_dbg(priv->adapter->dev, "cmd: Set Wpa_ie_len=%d IE=%#x\n", in mwifiex_set_wpa_ie_helper()
749 priv->wpa_ie_len, priv->wpa_ie[0]); in mwifiex_set_wpa_ie_helper()
751 if (priv->wpa_ie[0] == WLAN_EID_VENDOR_SPECIFIC) { in mwifiex_set_wpa_ie_helper()
752 priv->sec_info.wpa_enabled = true; in mwifiex_set_wpa_ie_helper()
753 } else if (priv->wpa_ie[0] == WLAN_EID_RSN) { in mwifiex_set_wpa_ie_helper()
754 priv->sec_info.wpa2_enabled = true; in mwifiex_set_wpa_ie_helper()
756 priv->sec_info.wpa_enabled = false; in mwifiex_set_wpa_ie_helper()
757 priv->sec_info.wpa2_enabled = false; in mwifiex_set_wpa_ie_helper()
760 memset(priv->wpa_ie, 0, sizeof(priv->wpa_ie)); in mwifiex_set_wpa_ie_helper()
761 priv->wpa_ie_len = 0; in mwifiex_set_wpa_ie_helper()
762 dev_dbg(priv->adapter->dev, "info: reset wpa_ie_len=%d IE=%#x\n", in mwifiex_set_wpa_ie_helper()
763 priv->wpa_ie_len, priv->wpa_ie[0]); in mwifiex_set_wpa_ie_helper()
764 priv->sec_info.wpa_enabled = false; in mwifiex_set_wpa_ie_helper()
765 priv->sec_info.wpa2_enabled = false; in mwifiex_set_wpa_ie_helper()
778 static int mwifiex_set_wapi_ie(struct mwifiex_private *priv, in mwifiex_set_wapi_ie() argument
782 if (ie_len > sizeof(priv->wapi_ie)) { in mwifiex_set_wapi_ie()
783 dev_dbg(priv->adapter->dev, in mwifiex_set_wapi_ie()
787 memcpy(priv->wapi_ie, ie_data_ptr, ie_len); in mwifiex_set_wapi_ie()
788 priv->wapi_ie_len = ie_len; in mwifiex_set_wapi_ie()
789 dev_dbg(priv->adapter->dev, "cmd: Set wapi_ie_len=%d IE=%#x\n", in mwifiex_set_wapi_ie()
790 priv->wapi_ie_len, priv->wapi_ie[0]); in mwifiex_set_wapi_ie()
792 if (priv->wapi_ie[0] == WLAN_EID_BSS_AC_ACCESS_DELAY) in mwifiex_set_wapi_ie()
793 priv->sec_info.wapi_enabled = true; in mwifiex_set_wapi_ie()
795 memset(priv->wapi_ie, 0, sizeof(priv->wapi_ie)); in mwifiex_set_wapi_ie()
796 priv->wapi_ie_len = ie_len; in mwifiex_set_wapi_ie()
797 dev_dbg(priv->adapter->dev, in mwifiex_set_wapi_ie()
799 priv->wapi_ie_len, priv->wapi_ie[0]); in mwifiex_set_wapi_ie()
800 priv->sec_info.wapi_enabled = false; in mwifiex_set_wapi_ie()
812 static int mwifiex_set_wps_ie(struct mwifiex_private *priv, in mwifiex_set_wps_ie() argument
817 dev_dbg(priv->adapter->dev, in mwifiex_set_wps_ie()
822 priv->wps_ie = kzalloc(MWIFIEX_MAX_VSIE_LEN, GFP_KERNEL); in mwifiex_set_wps_ie()
823 if (!priv->wps_ie) in mwifiex_set_wps_ie()
826 memcpy(priv->wps_ie, ie_data_ptr, ie_len); in mwifiex_set_wps_ie()
827 priv->wps_ie_len = ie_len; in mwifiex_set_wps_ie()
828 dev_dbg(priv->adapter->dev, "cmd: Set wps_ie_len=%d IE=%#x\n", in mwifiex_set_wps_ie()
829 priv->wps_ie_len, priv->wps_ie[0]); in mwifiex_set_wps_ie()
831 kfree(priv->wps_ie); in mwifiex_set_wps_ie()
832 priv->wps_ie_len = ie_len; in mwifiex_set_wps_ie()
833 dev_dbg(priv->adapter->dev, in mwifiex_set_wps_ie()
834 "info: Reset wps_ie_len=%d\n", priv->wps_ie_len); in mwifiex_set_wps_ie()
845 static int mwifiex_sec_ioctl_set_wapi_key(struct mwifiex_private *priv, in mwifiex_sec_ioctl_set_wapi_key() argument
849 return mwifiex_send_cmd(priv, HostCmd_CMD_802_11_KEY_MATERIAL, in mwifiex_sec_ioctl_set_wapi_key()
860 static int mwifiex_sec_ioctl_set_wep_key(struct mwifiex_private *priv, in mwifiex_sec_ioctl_set_wep_key() argument
863 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_sec_ioctl_set_wep_key()
868 if (priv->wep_key_curr_index >= NUM_WEP_KEYS) in mwifiex_sec_ioctl_set_wep_key()
869 priv->wep_key_curr_index = 0; in mwifiex_sec_ioctl_set_wep_key()
870 wep_key = &priv->wep_key[priv->wep_key_curr_index]; in mwifiex_sec_ioctl_set_wep_key()
873 priv->sec_info.wep_enabled = 0; in mwifiex_sec_ioctl_set_wep_key()
876 wep_key = &priv->wep_key[index]; in mwifiex_sec_ioctl_set_wep_key()
889 priv->wep_key_curr_index = (u16) index; in mwifiex_sec_ioctl_set_wep_key()
890 priv->sec_info.wep_enabled = 1; in mwifiex_sec_ioctl_set_wep_key()
892 wep_key = &priv->wep_key[index]; in mwifiex_sec_ioctl_set_wep_key()
900 priv->sec_info.wep_enabled = 1; in mwifiex_sec_ioctl_set_wep_key()
906 memset(&priv->wep_key[index], 0, in mwifiex_sec_ioctl_set_wep_key()
918 ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_KEY_MATERIAL, in mwifiex_sec_ioctl_set_wep_key()
925 if (priv->sec_info.wep_enabled) in mwifiex_sec_ioctl_set_wep_key()
926 priv->curr_pkt_filter |= HostCmd_ACT_MAC_WEP_ENABLE; in mwifiex_sec_ioctl_set_wep_key()
928 priv->curr_pkt_filter &= ~HostCmd_ACT_MAC_WEP_ENABLE; in mwifiex_sec_ioctl_set_wep_key()
930 ret = mwifiex_send_cmd(priv, HostCmd_CMD_MAC_CONTROL, in mwifiex_sec_ioctl_set_wep_key()
932 &priv->curr_pkt_filter, true); in mwifiex_sec_ioctl_set_wep_key()
947 static int mwifiex_sec_ioctl_set_wpa_key(struct mwifiex_private *priv, in mwifiex_sec_ioctl_set_wpa_key() argument
956 dev_err(priv->adapter->dev, "key length too long\n"); in mwifiex_sec_ioctl_set_wpa_key()
960 if (priv->bss_mode == NL80211_IFTYPE_ADHOC) { in mwifiex_sec_ioctl_set_wpa_key()
967 ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_KEY_MATERIAL, in mwifiex_sec_ioctl_set_wpa_key()
973 ibss_key = &priv->aes_key; in mwifiex_sec_ioctl_set_wpa_key()
993 ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_KEY_MATERIAL, in mwifiex_sec_ioctl_set_wpa_key()
997 ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_KEY_MATERIAL, in mwifiex_sec_ioctl_set_wpa_key()
1011 mwifiex_sec_ioctl_encrypt_key(struct mwifiex_private *priv, in mwifiex_sec_ioctl_encrypt_key() argument
1017 status = mwifiex_sec_ioctl_set_wapi_key(priv, encrypt_key); in mwifiex_sec_ioctl_encrypt_key()
1019 status = mwifiex_sec_ioctl_set_wpa_key(priv, encrypt_key); in mwifiex_sec_ioctl_encrypt_key()
1021 status = mwifiex_sec_ioctl_set_wep_key(priv, encrypt_key); in mwifiex_sec_ioctl_encrypt_key()
1054 int mwifiex_set_encode(struct mwifiex_private *priv, struct key_params *kp, in mwifiex_set_encode() argument
1081 if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_UAP) in mwifiex_set_encode()
1088 return mwifiex_sec_ioctl_encrypt_key(priv, &encrypt_key); in mwifiex_set_encode()
1098 mwifiex_get_ver_ext(struct mwifiex_private *priv) in mwifiex_get_ver_ext() argument
1103 if (mwifiex_send_cmd(priv, HostCmd_CMD_VERSION_EXT, in mwifiex_get_ver_ext()
1111 mwifiex_remain_on_chan_cfg(struct mwifiex_private *priv, u16 action, in mwifiex_remain_on_chan_cfg() argument
1129 if (mwifiex_send_cmd(priv, HostCmd_CMD_REMAIN_ON_CHAN, in mwifiex_remain_on_chan_cfg()
1131 dev_err(priv->adapter->dev, "failed to remain on channel\n"); in mwifiex_remain_on_chan_cfg()
1145 mwifiex_get_stats_info(struct mwifiex_private *priv, in mwifiex_get_stats_info() argument
1148 return mwifiex_send_cmd(priv, HostCmd_CMD_802_11_GET_LOG, in mwifiex_get_stats_info()
1165 static int mwifiex_reg_mem_ioctl_reg_rw(struct mwifiex_private *priv, in mwifiex_reg_mem_ioctl_reg_rw() argument
1191 return mwifiex_send_cmd(priv, cmd_no, action, 0, reg_rw, true); in mwifiex_reg_mem_ioctl_reg_rw()
1201 mwifiex_reg_write(struct mwifiex_private *priv, u32 reg_type, in mwifiex_reg_write() argument
1210 return mwifiex_reg_mem_ioctl_reg_rw(priv, ®_rw, HostCmd_ACT_GEN_SET); in mwifiex_reg_write()
1220 mwifiex_reg_read(struct mwifiex_private *priv, u32 reg_type, in mwifiex_reg_read() argument
1228 ret = mwifiex_reg_mem_ioctl_reg_rw(priv, ®_rw, HostCmd_ACT_GEN_GET); in mwifiex_reg_read()
1246 mwifiex_eeprom_read(struct mwifiex_private *priv, u16 offset, u16 bytes, in mwifiex_eeprom_read() argument
1256 ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_EEPROM_ACCESS, in mwifiex_eeprom_read()
1269 mwifiex_set_gen_ie_helper(struct mwifiex_private *priv, u8 *ie_data_ptr, in mwifiex_set_gen_ie_helper() argument
1279 priv->gen_ie_buf_len = 0; in mwifiex_set_gen_ie_helper()
1280 priv->wps.session_enable = false; in mwifiex_set_gen_ie_helper()
1293 ret = mwifiex_set_wpa_ie_helper(priv, ie_data_ptr, ie_len); in mwifiex_set_gen_ie_helper()
1294 priv->wps.session_enable = false; in mwifiex_set_gen_ie_helper()
1299 ret = mwifiex_set_wapi_ie(priv, ie_data_ptr, ie_len); in mwifiex_set_gen_ie_helper()
1307 if (ie_len < (sizeof(priv->gen_ie_buf) - priv->gen_ie_buf_len)) { in mwifiex_set_gen_ie_helper()
1315 priv->wps.session_enable = true; in mwifiex_set_gen_ie_helper()
1316 dev_dbg(priv->adapter->dev, in mwifiex_set_gen_ie_helper()
1318 ret = mwifiex_set_wps_ie(priv, ie_data_ptr, ie_len); in mwifiex_set_gen_ie_helper()
1323 memcpy(priv->gen_ie_buf + priv->gen_ie_buf_len, ie_data_ptr, in mwifiex_set_gen_ie_helper()
1327 priv->gen_ie_buf_len += ie_len; in mwifiex_set_gen_ie_helper()
1344 static int mwifiex_misc_ioctl_gen_ie(struct mwifiex_private *priv, in mwifiex_misc_ioctl_gen_ie() argument
1348 struct mwifiex_adapter *adapter = priv->adapter; in mwifiex_misc_ioctl_gen_ie()
1353 gen_ie->len = priv->wpa_ie_len; in mwifiex_misc_ioctl_gen_ie()
1354 memcpy(gen_ie->ie_data, priv->wpa_ie, gen_ie->len); in mwifiex_misc_ioctl_gen_ie()
1356 mwifiex_set_gen_ie_helper(priv, gen_ie->ie_data, in mwifiex_misc_ioctl_gen_ie()
1386 mwifiex_set_gen_ie(struct mwifiex_private *priv, const u8 *ie, int ie_len) in mwifiex_set_gen_ie() argument
1396 if (mwifiex_misc_ioctl_gen_ie(priv, &gen_ie, HostCmd_ACT_GEN_SET)) in mwifiex_set_gen_ie()