Lines Matching refs:priv

96 int mwifiex_request_set_multicast_list(struct mwifiex_private *priv,
102 old_pkt_filter = priv->curr_pkt_filter;
105 dev_dbg(priv->adapter->dev, "info: Enable Promiscuous mode\n");
106 priv->curr_pkt_filter |= HostCmd_ACT_MAC_PROMISCUOUS_ENABLE;
107 priv->curr_pkt_filter &=
111 priv->curr_pkt_filter &= ~HostCmd_ACT_MAC_PROMISCUOUS_ENABLE;
113 dev_dbg(priv->adapter->dev,
115 priv->curr_pkt_filter |=
118 priv->curr_pkt_filter &=
121 dev_dbg(priv->adapter->dev,
125 if (old_pkt_filter == priv->curr_pkt_filter) {
127 ret = mwifiex_send_cmd_async(priv,
133 ret = mwifiex_send_cmd_async(priv,
141 dev_dbg(priv->adapter->dev,
143 old_pkt_filter, priv->curr_pkt_filter);
144 if (old_pkt_filter != priv->curr_pkt_filter) {
145 ret = mwifiex_send_cmd_async(priv, HostCmd_CMD_MAC_CONTROL,
147 0, &priv->curr_pkt_filter);
157 int mwifiex_fill_new_bss_desc(struct mwifiex_private *priv,
173 dev_dbg(priv->adapter->dev, "info: InterpretIE: AP WEP enabled\n");
183 ret = mwifiex_update_bss_desc_with_ie(priv->adapter, bss_desc,
194 int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,
198 struct mwifiex_adapter *adapter = priv->adapter;
202 priv->scan_block = false;
209 dev_err(priv->adapter->dev, " failed to alloc bss_desc\n");
217 dev_err(priv->adapter->dev, " failed to alloc beacon_ie\n");
221 ret = mwifiex_fill_new_bss_desc(priv, bss->bssid, bss->signal,
225 *(u8 *)bss->priv, bss_desc);
230 if (priv->bss_mode == NL80211_IFTYPE_STATION) {
232 ret = mwifiex_deauthenticate(priv, NULL);
236 ret = mwifiex_check_network_compatibility(priv, bss_desc);
243 if (!netif_queue_stopped(priv->netdev))
244 mwifiex_stop_net_dev_queue(priv->netdev, adapter);
245 if (netif_carrier_ok(priv->netdev))
246 netif_carrier_off(priv->netdev);
250 priv->assoc_rsp_size = 0;
251 ret = mwifiex_associate(priv, bss_desc);
256 priv->sec_info.is_authtype_auto &&
257 priv->sec_info.wep_enabled) {
258 priv->sec_info.authentication_mode =
260 ret = mwifiex_associate(priv, bss_desc);
269 (!mwifiex_ssid_cmp(&priv->curr_bss_params.bss_descriptor.
278 ret = mwifiex_deauthenticate(priv, NULL);
282 priv->adhoc_is_link_sensed = false;
284 ret = mwifiex_check_network_compatibility(priv, bss_desc);
286 if (!netif_queue_stopped(priv->netdev))
287 mwifiex_stop_net_dev_queue(priv->netdev, adapter);
288 if (netif_carrier_ok(priv->netdev))
289 netif_carrier_off(priv->netdev);
294 ret = mwifiex_adhoc_join(priv, bss_desc);
301 ret = mwifiex_adhoc_start(priv, req_ssid);
317 static int mwifiex_set_hs_params(struct mwifiex_private *priv, u16 action,
321 struct mwifiex_adapter *adapter = priv->adapter;
360 status = mwifiex_send_cmd_sync(priv,
365 status = mwifiex_send_cmd_async(priv,
399 int mwifiex_cancel_hs(struct mwifiex_private *priv, int cmd_type)
406 return mwifiex_set_hs_params(priv, HostCmd_ACT_GEN_SET,
452 int mwifiex_get_bss_info(struct mwifiex_private *priv,
455 struct mwifiex_adapter *adapter = priv->adapter;
461 bss_desc = &priv->curr_bss_params.bss_descriptor;
463 info->bss_mode = priv->bss_mode;
473 info->media_connected = priv->media_connected;
475 info->max_power_level = priv->max_tx_power_level;
476 info->min_power_level = priv->min_tx_power_level;
478 info->adhoc_state = priv->adhoc_state;
480 info->bcn_nf_last = priv->bcn_nf_last;
482 if (priv->sec_info.wep_enabled)
496 int mwifiex_disable_auto_ds(struct mwifiex_private *priv)
502 return mwifiex_send_cmd_sync(priv, HostCmd_CMD_802_11_PS_MODE_ENH,
513 int mwifiex_bss_set_channel(struct mwifiex_private *priv,
516 struct mwifiex_adapter *adapter = priv->adapter;
530 cfp = mwifiex_get_cfp(priv, 0, (u16) chan->channel, 0);
532 cfp = mwifiex_get_cfp(priv, BAND_A,
544 cfp = mwifiex_get_cfp(priv, 0, 0, chan->freq);
546 cfp = mwifiex_get_cfp(priv, BAND_A, 0, chan->freq);
560 priv->adhoc_channel = (u8) cfp->channel;
573 static int mwifiex_bss_ioctl_ibss_channel(struct mwifiex_private *priv,
577 if (!priv->media_connected) {
578 *channel = priv->adhoc_channel;
582 priv->adhoc_channel = (u8) *channel;
585 return mwifiex_send_cmd_sync(priv, HostCmd_CMD_802_11_RF_CHANNEL,
607 mwifiex_drv_change_adhoc_chan(struct mwifiex_private *priv, u16 channel)
620 if (mwifiex_get_bss_info(priv, &bss_info))
624 ret = mwifiex_bss_ioctl_ibss_channel(priv, HostCmd_ACT_GEN_GET,
631 dev_dbg(priv->adapter->dev, "cmd: updating channel from %d to %d\n",
641 ret = mwifiex_deauthenticate(priv, ssid_bssid.bssid);
643 ret = mwifiex_bss_ioctl_ibss_channel(priv, HostCmd_ACT_GEN_SET,
647 if (mwifiex_request_scan(priv, &bss_info.ssid)) {
652 band = mwifiex_band_to_radio_type(priv->curr_bss_params.band);
653 chan = __ieee80211_get_channel(priv->wdev->wiphy,
658 bss = cfg80211_get_bss(priv->wdev->wiphy, chan, bss_info.bssid,
662 wiphy_warn(priv->wdev->wiphy, "assoc: bss %pM not in scan results\n",
665 ret = mwifiex_bss_start(priv, bss, &bss_info.ssid);
678 static int mwifiex_rate_ioctl_get_rate_value(struct mwifiex_private *priv,
681 rate_cfg->is_rate_auto = priv->is_data_rate_auto;
682 return mwifiex_send_cmd_sync(priv, HostCmd_CMD_802_11_TX_RATE_QUERY,
694 static int mwifiex_rate_ioctl_set_rate_value(struct mwifiex_private *priv,
702 struct mwifiex_adapter *adapter = priv->adapter;
711 for (i = 0; i < ARRAY_SIZE(priv->bitmap_rates) - 3; i++)
716 mwifiex_get_active_data_rates(priv, rates);
746 ret = mwifiex_send_cmd_sync(priv, HostCmd_CMD_TX_RATE_CFG,
758 static int mwifiex_rate_ioctl_cfg(struct mwifiex_private *priv,
767 status = mwifiex_rate_ioctl_get_rate_value(priv, rate_cfg);
769 status = mwifiex_rate_ioctl_set_rate_value(priv, rate_cfg);
780 int mwifiex_drv_get_data_rate(struct mwifiex_private *priv,
787 ret = mwifiex_rate_ioctl_cfg(priv, rate);
791 rate->rate = mwifiex_index_to_data_rate(priv,
792 priv->tx_rate,
793 priv->tx_htinfo
796 rate->rate = priv->data_rate;
816 int mwifiex_set_tx_power(struct mwifiex_private *priv,
828 if ((dbm < priv->min_tx_power_level) ||
829 (dbm > priv->max_tx_power_level)) {
830 dev_err(priv->adapter->dev, "txpower value %d dBm"
832 dbm, priv->min_tx_power_level,
833 priv->max_tx_power_level);
839 dev_err(priv->adapter->dev, "%s: failed to alloc cmd buffer\n",
889 ret = mwifiex_send_cmd_sync(priv, HostCmd_CMD_TXPWR_CFG,
902 int mwifiex_drv_set_power(struct mwifiex_private *priv, u32 *ps_mode)
905 struct mwifiex_adapter *adapter = priv->adapter;
913 ret = mwifiex_send_cmd_sync(priv, HostCmd_CMD_802_11_PS_MODE_ENH,
916 ret = mwifiex_send_cmd_async(priv,
930 static int mwifiex_set_wpa_ie_helper(struct mwifiex_private *priv,
934 if (ie_len > sizeof(priv->wpa_ie)) {
935 dev_err(priv->adapter->dev,
939 memcpy(priv->wpa_ie, ie_data_ptr, ie_len);
940 priv->wpa_ie_len = (u8) ie_len;
941 dev_dbg(priv->adapter->dev, "cmd: Set Wpa_ie_len=%d IE=%#x\n",
942 priv->wpa_ie_len, priv->wpa_ie[0]);
944 if (priv->wpa_ie[0] == WLAN_EID_WPA) {
945 priv->sec_info.wpa_enabled = true;
946 } else if (priv->wpa_ie[0] == WLAN_EID_RSN) {
947 priv->sec_info.wpa2_enabled = true;
949 priv->sec_info.wpa_enabled = false;
950 priv->sec_info.wpa2_enabled = false;
953 memset(priv->wpa_ie, 0, sizeof(priv->wpa_ie));
954 priv->wpa_ie_len = 0;
955 dev_dbg(priv->adapter->dev, "info: reset wpa_ie_len=%d IE=%#x\n",
956 priv->wpa_ie_len, priv->wpa_ie[0]);
957 priv->sec_info.wpa_enabled = false;
958 priv->sec_info.wpa2_enabled = false;
971 static int mwifiex_set_wapi_ie(struct mwifiex_private *priv,
975 if (ie_len > sizeof(priv->wapi_ie)) {
976 dev_dbg(priv->adapter->dev,
980 memcpy(priv->wapi_ie, ie_data_ptr, ie_len);
981 priv->wapi_ie_len = ie_len;
982 dev_dbg(priv->adapter->dev, "cmd: Set wapi_ie_len=%d IE=%#x\n",
983 priv->wapi_ie_len, priv->wapi_ie[0]);
985 if (priv->wapi_ie[0] == WLAN_EID_BSS_AC_ACCESS_DELAY)
986 priv->sec_info.wapi_enabled = true;
988 memset(priv->wapi_ie, 0, sizeof(priv->wapi_ie));
989 priv->wapi_ie_len = ie_len;
990 dev_dbg(priv->adapter->dev,
992 priv->wapi_ie_len, priv->wapi_ie[0]);
993 priv->sec_info.wapi_enabled = false;
1004 static int mwifiex_sec_ioctl_set_wapi_key(struct mwifiex_private *priv,
1008 return mwifiex_send_cmd_sync(priv, HostCmd_CMD_802_11_KEY_MATERIAL,
1019 static int mwifiex_sec_ioctl_set_wep_key(struct mwifiex_private *priv,
1026 if (priv->wep_key_curr_index >= NUM_WEP_KEYS)
1027 priv->wep_key_curr_index = 0;
1028 wep_key = &priv->wep_key[priv->wep_key_curr_index];
1031 priv->sec_info.wep_enabled = 0;
1034 wep_key = &priv->wep_key[index];
1036 dev_err(priv->adapter->dev,
1040 priv->wep_key_curr_index = (u16) index;
1041 priv->sec_info.wep_enabled = 1;
1043 wep_key = &priv->wep_key[index];
1051 priv->sec_info.wep_enabled = 1;
1055 ret = mwifiex_send_cmd_async(priv,
1061 if (priv->sec_info.wep_enabled)
1062 priv->curr_pkt_filter |= HostCmd_ACT_MAC_WEP_ENABLE;
1064 priv->curr_pkt_filter &= ~HostCmd_ACT_MAC_WEP_ENABLE;
1066 ret = mwifiex_send_cmd_sync(priv, HostCmd_CMD_MAC_CONTROL,
1068 &priv->curr_pkt_filter);
1083 static int mwifiex_sec_ioctl_set_wpa_key(struct mwifiex_private *priv,
1092 dev_err(priv->adapter->dev, "key length too long\n");
1096 if (priv->bss_mode == NL80211_IFTYPE_ADHOC) {
1103 ret = mwifiex_send_cmd_async(priv,
1110 ibss_key = &priv->aes_key;
1130 ret = mwifiex_send_cmd_sync(priv,
1135 ret = mwifiex_send_cmd_sync(priv,
1150 mwifiex_sec_ioctl_encrypt_key(struct mwifiex_private *priv,
1156 status = mwifiex_sec_ioctl_set_wapi_key(priv, encrypt_key);
1158 status = mwifiex_sec_ioctl_set_wpa_key(priv, encrypt_key);
1160 status = mwifiex_sec_ioctl_set_wep_key(priv, encrypt_key);
1193 int mwifiex_get_signal_info(struct mwifiex_private *priv,
1201 if (!priv->media_connected) {
1202 dev_dbg(priv->adapter->dev,
1207 status = mwifiex_send_cmd_sync(priv, HostCmd_CMD_RSSI_INFO,
1212 priv->qual_level = signal->bcn_rssi_avg;
1214 priv->qual_noise = signal->bcn_nf_avg;
1226 int mwifiex_set_encode(struct mwifiex_private *priv, const u8 *key,
1241 return mwifiex_sec_ioctl_encrypt_key(priv, &encrypt_key);
1251 mwifiex_get_ver_ext(struct mwifiex_private *priv)
1256 if (mwifiex_send_cmd_sync(priv, HostCmd_CMD_VERSION_EXT,
1270 mwifiex_get_stats_info(struct mwifiex_private *priv,
1273 return mwifiex_send_cmd_sync(priv, HostCmd_CMD_802_11_GET_LOG,
1290 static int mwifiex_reg_mem_ioctl_reg_rw(struct mwifiex_private *priv,
1316 return mwifiex_send_cmd_sync(priv, cmd_no, action, 0, reg_rw);
1327 mwifiex_reg_write(struct mwifiex_private *priv, u32 reg_type,
1336 return mwifiex_reg_mem_ioctl_reg_rw(priv, &reg_rw, HostCmd_ACT_GEN_SET);
1346 mwifiex_reg_read(struct mwifiex_private *priv, u32 reg_type,
1354 ret = mwifiex_reg_mem_ioctl_reg_rw(priv, &reg_rw, HostCmd_ACT_GEN_GET);
1372 mwifiex_eeprom_read(struct mwifiex_private *priv, u16 offset, u16 bytes,
1382 ret = mwifiex_send_cmd_sync(priv, HostCmd_CMD_802_11_EEPROM_ACCESS,
1395 mwifiex_set_gen_ie_helper(struct mwifiex_private *priv, u8 *ie_data_ptr,
1405 priv->gen_ie_buf_len = 0;
1406 priv->wps.session_enable = false;
1419 ret = mwifiex_set_wpa_ie_helper(priv, ie_data_ptr, ie_len);
1420 priv->wps.session_enable = false;
1425 ret = mwifiex_set_wapi_ie(priv, ie_data_ptr, ie_len);
1433 if (ie_len < (sizeof(priv->gen_ie_buf) - priv->gen_ie_buf_len)) {
1441 priv->wps.session_enable = true;
1442 dev_dbg(priv->adapter->dev,
1448 memcpy(priv->gen_ie_buf + priv->gen_ie_buf_len, ie_data_ptr,
1452 priv->gen_ie_buf_len += ie_len;
1469 static int mwifiex_misc_ioctl_gen_ie(struct mwifiex_private *priv,
1473 struct mwifiex_adapter *adapter = priv->adapter;
1478 gen_ie->len = priv->wpa_ie_len;
1479 memcpy(gen_ie->ie_data, priv->wpa_ie, gen_ie->len);
1481 mwifiex_set_gen_ie_helper(priv, gen_ie->ie_data,
1511 mwifiex_set_gen_ie(struct mwifiex_private *priv, u8 *ie, int ie_len)
1521 if (mwifiex_misc_ioctl_gen_ie(priv, &gen_ie, HostCmd_ACT_GEN_SET))