• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/net/wireless/

Lines Matching refs:usbdev

462 	struct usbnet *usbdev;
871 static int rndis_reset(struct usbnet *usbdev)
873 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
884 ret = rndis_command(usbdev, (void *)reset, CONTROL_BUFFER_SIZE);
995 static int set_infra_mode(struct usbnet *usbdev, int mode);
996 static void restore_keys(struct usbnet *usbdev);
997 static int rndis_check_bssid_list(struct usbnet *usbdev);
999 static int set_essid(struct usbnet *usbdev, struct ndis_80211_ssid *ssid)
1001 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1004 ret = rndis_set_oid(usbdev, OID_802_11_SSID, ssid, sizeof(*ssid));
1006 netdev_warn(usbdev->net, "setting SSID failed (%08X)\n", ret);
1012 netdev_dbg(usbdev->net, "%s(): radio_on = true\n", __func__);
1018 static int set_bssid(struct usbnet *usbdev, u8 bssid[ETH_ALEN])
1022 ret = rndis_set_oid(usbdev, OID_802_11_BSSID, bssid, ETH_ALEN);
1024 netdev_warn(usbdev->net, "setting BSSID[%pM] failed (%08X)\n",
1032 static int clear_bssid(struct usbnet *usbdev)
1036 return set_bssid(usbdev, broadcast_mac);
1039 static int get_bssid(struct usbnet *usbdev, u8 bssid[ETH_ALEN])
1044 ret = rndis_query_oid(usbdev, OID_802_11_BSSID, bssid, &len);
1052 static int get_association_info(struct usbnet *usbdev,
1055 return rndis_query_oid(usbdev, OID_802_11_ASSOCIATION_INFORMATION,
1059 static bool is_associated(struct usbnet *usbdev)
1061 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1068 ret = get_bssid(usbdev, bssid);
1073 static int disassociate(struct usbnet *usbdev, bool reset_ssid)
1075 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1080 ret = rndis_set_oid(usbdev, OID_802_11_DISASSOCIATE, NULL, 0);
1083 netdev_dbg(usbdev->net, "%s(): radio_on = false\n",
1097 set_infra_mode(usbdev, NDIS_80211_INFRA_INFRA);
1105 ret = set_essid(usbdev, &ssid);
1110 static int set_auth_mode(struct usbnet *usbdev, u32 wpa_version,
1113 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1117 netdev_dbg(usbdev->net, "%s(): wpa_version=0x%x authalg=0x%x keymgmt=0x%x\n",
1142 ret = rndis_set_oid(usbdev, OID_802_11_AUTHENTICATION_MODE, &tmp,
1145 netdev_warn(usbdev->net, "setting auth mode failed (%08X)\n",
1155 static int set_priv_filter(struct usbnet *usbdev)
1157 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1160 netdev_dbg(usbdev->net, "%s(): wpa_version=0x%x\n",
1169 return rndis_set_oid(usbdev, OID_802_11_PRIVACY_FILTER, &tmp,
1173 static int set_encr_mode(struct usbnet *usbdev, int pairwise, int groupwise)
1178 netdev_dbg(usbdev->net, "%s(): cipher_pair=0x%x cipher_group=0x%x\n",
1195 ret = rndis_set_oid(usbdev, OID_802_11_ENCRYPTION_STATUS, &tmp,
1198 netdev_warn(usbdev->net, "setting encr mode failed (%08X)\n",
1206 static int set_infra_mode(struct usbnet *usbdev, int mode)
1208 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1212 netdev_dbg(usbdev->net, "%s(): infra_mode=0x%x\n",
1216 ret = rndis_set_oid(usbdev, OID_802_11_INFRASTRUCTURE_MODE, &tmp,
1219 netdev_warn(usbdev->net, "setting infra mode failed (%08X)\n",
1227 restore_keys(usbdev);
1233 static int set_rts_threshold(struct usbnet *usbdev, u32 rts_threshold)
1237 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold);
1243 return rndis_set_oid(usbdev, OID_802_11_RTS_THRESHOLD, &tmp,
1247 static int set_frag_threshold(struct usbnet *usbdev, u32 frag_threshold)
1251 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, frag_threshold);
1257 return rndis_set_oid(usbdev, OID_802_11_FRAGMENTATION_THRESHOLD, &tmp,
1261 static void set_default_iw_params(struct usbnet *usbdev)
1263 set_infra_mode(usbdev, NDIS_80211_INFRA_INFRA);
1264 set_auth_mode(usbdev, 0, NL80211_AUTHTYPE_OPEN_SYSTEM,
1266 set_priv_filter(usbdev);
1267 set_encr_mode(usbdev, RNDIS_WLAN_ALG_NONE, RNDIS_WLAN_ALG_NONE);
1270 static int deauthenticate(struct usbnet *usbdev)
1274 ret = disassociate(usbdev, true);
1275 set_default_iw_params(usbdev);
1279 static int set_channel(struct usbnet *usbdev, int channel)
1285 netdev_dbg(usbdev->net, "%s(%d)\n", __func__, channel);
1288 if (is_associated(usbdev))
1294 ret = rndis_query_oid(usbdev, OID_802_11_CONFIGURATION, &config, &len);
1296 netdev_dbg(usbdev->net, "%s(): querying configuration failed\n",
1302 ret = rndis_set_oid(usbdev, OID_802_11_CONFIGURATION, &config,
1305 netdev_dbg(usbdev->net, "%s(): %d -> %d\n", __func__, channel, ret);
1311 static int add_wep_key(struct usbnet *usbdev, const u8 *key, int key_len,
1314 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1319 netdev_dbg(usbdev->net, "%s(idx: %d, len: %d)\n",
1339 ret = set_encr_mode(usbdev, RNDIS_WLAN_ALG_WEP,
1342 netdev_warn(usbdev->net, "encryption couldn't be enabled (%08X)\n",
1346 ret = rndis_set_oid(usbdev, OID_802_11_ADD_WEP, &ndis_key,
1349 netdev_warn(usbdev->net, "adding encryption key %d failed (%08X)\n",
1362 static int add_wpa_key(struct usbnet *usbdev, const u8 *key, int key_len,
1366 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1372 netdev_dbg(usbdev->net, "%s(): index out of range (%i)\n",
1377 netdev_dbg(usbdev->net, "%s(): key length out of range (%i)\n",
1383 netdev_dbg(usbdev->net, "%s(): recv seq flag without buffer\n",
1388 netdev_dbg(usbdev->net, "%s(): too big recv seq buffer\n", __func__);
1396 netdev_dbg(usbdev->net, "%s(): pairwise but bssid invalid (%pM)\n",
1401 netdev_dbg(usbdev->net, "%s(%i): flags:%i%i%i\n",
1434 get_bssid(usbdev, ndis_key.bssid);
1437 ret = rndis_set_oid(usbdev, OID_802_11_ADD_KEY, &ndis_key,
1439 netdev_dbg(usbdev->net, "%s(): OID_802_11_ADD_KEY -> %08X\n",
1459 static int restore_key(struct usbnet *usbdev, int key_idx)
1461 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1469 netdev_dbg(usbdev->net, "%s(): %i:%i\n", __func__, key_idx, key.len);
1474 return add_wep_key(usbdev, key.material, key.len, key_idx);
1477 static void restore_keys(struct usbnet *usbdev)
1482 restore_key(usbdev, i);
1491 static int remove_key(struct usbnet *usbdev, int index, const u8 *bssid)
1493 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1504 netdev_dbg(usbdev->net, "%s(): %i:%s:%i\n",
1524 ret = rndis_set_oid(usbdev, OID_802_11_REMOVE_KEY, &remove_key,
1530 ret = rndis_set_oid(usbdev, OID_802_11_REMOVE_WEP, &keyindex,
1533 netdev_warn(usbdev->net,
1542 set_encr_mode(usbdev, RNDIS_WLAN_ALG_NONE, RNDIS_WLAN_ALG_NONE);
1547 static void set_multicast_list(struct usbnet *usbdev)
1549 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1559 if (usbdev->net->flags & IFF_PROMISC) {
1562 } else if (usbdev->net->flags & IFF_ALLMULTI) {
1573 netif_addr_lock_bh(usbdev->net);
1574 mc_count = netdev_mc_count(usbdev->net);
1582 netdev_warn(usbdev->net,
1585 netif_addr_unlock_bh(usbdev->net);
1589 netdev_for_each_mc_addr(ha, usbdev->net)
1593 netif_addr_unlock_bh(usbdev->net);
1599 ret = rndis_set_oid(usbdev, OID_802_3_MULTICAST_LIST, mc_addrs,
1607 netdev_dbg(usbdev->net, "OID_802_3_MULTICAST_LIST(%d, max: %d) -> %d\n",
1612 ret = rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &filter,
1615 netdev_warn(usbdev->net, "couldn't set packet filter: %08x\n",
1619 netdev_dbg(usbdev->net, "OID_GEN_CURRENT_PACKET_FILTER(%08x) -> %d\n",
1624 static void debug_print_pmkids(struct usbnet *usbdev,
1628 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1637 netdev_dbg(usbdev->net, "%s(): %d PMKIDs (data len: %d, entry len: "
1646 netdev_dbg(usbdev->net, "%s(): bssid: %pM, "
1654 static void debug_print_pmkids(struct usbnet *usbdev,
1662 static struct ndis_80211_pmkid *get_device_pmkids(struct usbnet *usbdev)
1664 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1678 ret = rndis_query_oid(usbdev, OID_802_11_PMKID, pmkids, &len);
1680 netdev_dbg(usbdev->net, "%s(): OID_802_11_PMKID(%d, %d)"
1690 debug_print_pmkids(usbdev, pmkids, __func__);
1695 static int set_device_pmkids(struct usbnet *usbdev,
1704 debug_print_pmkids(usbdev, pmkids, __func__);
1706 ret = rndis_set_oid(usbdev, OID_802_11_PMKID, pmkids,
1709 netdev_dbg(usbdev->net, "%s(): OID_802_11_PMKID(%d, %d) -> %d"
1717 static struct ndis_80211_pmkid *remove_pmkid(struct usbnet *usbdev,
1737 netdev_dbg(usbdev->net, "%s(): bssid not found (%pM)\n",
1758 static struct ndis_80211_pmkid *update_pmkid(struct usbnet *usbdev,
1785 netdev_dbg(usbdev->net, "%s(): out of space\n", __func__);
1820 struct usbnet *usbdev = priv->usbdev;
1836 return set_infra_mode(usbdev, mode);
1842 struct usbnet *usbdev = priv->usbdev;
1846 err = set_frag_threshold(usbdev, wiphy->frag_threshold);
1852 err = set_rts_threshold(usbdev, wiphy->rts_threshold);
1865 struct usbnet *usbdev = priv->usbdev;
1867 netdev_dbg(usbdev->net, "%s(): type:0x%x mbm:%i\n",
1880 disassociate(usbdev, true); /* turn on radio */
1891 struct usbnet *usbdev = priv->usbdev;
1895 netdev_dbg(usbdev->net, "%s(): dbm:%i\n", __func__, *dbm);
1904 struct usbnet *usbdev = netdev_priv(dev);
1905 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1909 netdev_dbg(usbdev->net, "cfg80211.scan\n");
1914 rndis_check_bssid_list(usbdev);
1925 ret = rndis_set_oid(usbdev, OID_802_11_BSSID_LIST_SCAN, &tmp,
1936 static struct cfg80211_bss *rndis_bss_info_update(struct usbnet *usbdev,
1939 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
1949 netdev_dbg(usbdev->net, " found bssid: '%.32s' [%pM]\n",
1984 static int rndis_check_bssid_list(struct usbnet *usbdev)
1992 netdev_dbg(usbdev->net, "check_bssid_list\n");
2002 ret = rndis_query_oid(usbdev, OID_802_11_BSSID_LIST, buf, &len);
2016 netdev_dbg(usbdev->net, "check_bssid_list: %d BSSIDs found (buflen: %d)\n",
2020 rndis_bss_info_update(usbdev, bssid);
2036 struct usbnet *usbdev = priv->usbdev;
2039 netdev_dbg(usbdev->net, "get_scan_results\n");
2044 ret = rndis_check_bssid_list(usbdev);
2055 struct usbnet *usbdev = priv->usbdev;
2073 netdev_err(usbdev->net, "Unsupported pairwise cipher\n");
2083 netdev_err(usbdev->net, "Invalid keymgmt\n");
2087 netdev_dbg(usbdev->net, "cfg80211.connect('%.32s':[%pM]:%d:[%d,0x%x:0x%x]:[0x%x:0x%x]:0x%x)\n",
2092 if (is_associated(usbdev))
2093 disassociate(usbdev, false);
2095 ret = set_infra_mode(usbdev, NDIS_80211_INFRA_INFRA);
2097 netdev_dbg(usbdev->net, "connect: set_infra_mode failed, %d\n",
2102 ret = set_auth_mode(usbdev, sme->crypto.wpa_versions, sme->auth_type,
2105 netdev_dbg(usbdev->net, "connect: set_auth_mode failed, %d\n",
2110 set_priv_filter(usbdev);
2112 ret = set_encr_mode(usbdev, pairwise, groupwise);
2114 netdev_dbg(usbdev->net, "connect: set_encr_mode failed, %d\n",
2120 ret = set_channel(usbdev, chan);
2122 netdev_dbg(usbdev->net, "connect: set_channel failed, %d\n",
2130 ret = add_wep_key(usbdev, sme->key, sme->key_len, sme->key_idx);
2132 netdev_dbg(usbdev->net, "connect: add_wep_key failed, %d (%d, %d)\n",
2140 ret = set_bssid(usbdev, sme->bssid);
2142 netdev_dbg(usbdev->net, "connect: set_bssid failed, %d\n",
2147 clear_bssid(usbdev);
2160 usbnet_pause_rx(usbdev);
2161 usbnet_purge_paused_rxq(usbdev);
2163 ret = set_essid(usbdev, &ssid);
2165 netdev_dbg(usbdev->net, "connect: set_essid failed, %d\n", ret);
2169 disassociate(usbdev, true);
2178 struct usbnet *usbdev = priv->usbdev;
2180 netdev_dbg(usbdev->net, "cfg80211.disconnect(%d)\n", reason_code);
2185 return deauthenticate(usbdev);
2192 struct usbnet *usbdev = priv->usbdev;
2214 netdev_dbg(usbdev->net, "cfg80211.join_ibss('%.32s':[%pM]:%d:%d)\n",
2217 if (is_associated(usbdev))
2218 disassociate(usbdev, false);
2220 ret = set_infra_mode(usbdev, NDIS_80211_INFRA_ADHOC);
2222 netdev_dbg(usbdev->net, "join_ibss: set_infra_mode failed, %d\n",
2227 ret = set_auth_mode(usbdev, 0, auth_type, RNDIS_WLAN_KEY_MGMT_NONE);
2229 netdev_dbg(usbdev->net, "join_ibss: set_auth_mode failed, %d\n",
2234 set_priv_filter(usbdev);
2236 ret = set_encr_mode(usbdev, alg, RNDIS_WLAN_ALG_NONE);
2238 netdev_dbg(usbdev->net, "join_ibss: set_encr_mode failed, %d\n",
2244 ret = set_channel(usbdev, chan);
2246 netdev_dbg(usbdev->net, "join_ibss: set_channel failed, %d\n",
2254 ret = set_bssid(usbdev, params->bssid);
2256 netdev_dbg(usbdev->net, "join_ibss: set_bssid failed, %d\n",
2261 clear_bssid(usbdev);
2272 usbnet_purge_paused_rxq(usbdev);
2273 usbnet_resume_rx(usbdev);
2275 ret = set_essid(usbdev, &ssid);
2277 netdev_dbg(usbdev->net, "join_ibss: set_essid failed, %d\n",
2282 disassociate(usbdev, true);
2290 struct usbnet *usbdev = priv->usbdev;
2292 netdev_dbg(usbdev->net, "cfg80211.leave_ibss()\n");
2297 return deauthenticate(usbdev);
2304 struct usbnet *usbdev = priv->usbdev;
2306 return set_channel(usbdev,
2315 struct usbnet *usbdev = priv->usbdev;
2318 netdev_dbg(usbdev->net, "%s(%i, %pM, %08x)\n",
2324 return add_wep_key(usbdev, params->key, params->key_len,
2336 return add_wpa_key(usbdev, params->key, params->key_len,
2340 netdev_dbg(usbdev->net, "%s(): unsupported cipher %08x\n",
2350 struct usbnet *usbdev = priv->usbdev;
2352 netdev_dbg(usbdev->net, "%s(%i, %pM)\n", __func__, key_index, mac_addr);
2354 return remove_key(usbdev, key_index, mac_addr);
2361 struct usbnet *usbdev = priv->usbdev;
2364 netdev_dbg(usbdev->net, "%s(%i)\n", __func__, key_index);
2370 return add_wep_key(usbdev, key.material, key.len, key_index);
2373 static void rndis_fill_station_info(struct usbnet *usbdev,
2382 ret = rndis_query_oid(usbdev, OID_GEN_LINK_SPEED, &linkspeed, &len);
2389 ret = rndis_query_oid(usbdev, OID_802_11_RSSI, &rssi, &len);
2400 struct usbnet *usbdev = priv->usbdev;
2405 rndis_fill_station_info(usbdev, sinfo);
2414 struct usbnet *usbdev = priv->usbdev;
2421 rndis_fill_station_info(usbdev, sinfo);
2430 struct usbnet *usbdev = priv->usbdev;
2434 netdev_dbg(usbdev->net, "%s(%pM, %08X:%08X:%08X:%08X)\n", __func__,
2439 pmkids = get_device_pmkids(usbdev);
2445 pmkids = update_pmkid(usbdev, pmkids, pmksa, wiphy->max_num_pmkids);
2451 return set_device_pmkids(usbdev, pmkids);
2458 struct usbnet *usbdev = priv->usbdev;
2462 netdev_dbg(usbdev->net, "%s(%pM, %08X:%08X:%08X:%08X)\n", __func__,
2467 pmkids = get_device_pmkids(usbdev);
2473 pmkids = remove_pmkid(usbdev, pmkids, pmksa, wiphy->max_num_pmkids);
2479 return set_device_pmkids(usbdev, pmkids);
2485 struct usbnet *usbdev = priv->usbdev;
2488 netdev_dbg(usbdev->net, "%s()\n", __func__);
2495 return rndis_set_oid(usbdev, OID_802_11_PMKID, &pmkid, sizeof(pmkid));
2501 static void rndis_wlan_do_link_up_work(struct usbnet *usbdev)
2503 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
2532 ret = get_association_info(usbdev, info, CONTROL_BUFFER_SIZE);
2565 ret = get_bssid(usbdev, bssid);
2569 netdev_dbg(usbdev->net, "link up work: [%pM]%s\n",
2578 rndis_check_bssid_list(usbdev);
2582 cfg80211_connect_result(usbdev->net, bssid, req_ie,
2586 cfg80211_roamed(usbdev->net, bssid, req_ie, req_ie_len,
2589 cfg80211_ibss_joined(usbdev->net, bssid, GFP_KERNEL);
2597 usbnet_resume_rx(usbdev);
2598 netif_carrier_on(usbdev->net);
2601 static void rndis_wlan_do_link_down_work(struct usbnet *usbdev)
2603 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
2609 deauthenticate(usbdev);
2611 cfg80211_disconnected(usbdev->net, 0, NULL, 0, GFP_KERNEL);
2614 netif_carrier_off(usbdev->net);
2621 struct usbnet *usbdev = priv->usbdev;
2624 rndis_wlan_do_link_up_work(usbdev);
2627 rndis_wlan_do_link_down_work(usbdev);
2630 set_multicast_list(usbdev);
2635 struct usbnet *usbdev = netdev_priv(dev);
2636 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
2645 static void rndis_wlan_auth_indication(struct usbnet *usbdev,
2659 netdev_info(usbdev->net, "authentication indication: too short message (%i)\n",
2687 netdev_info(usbdev->net, "authentication indication: %s (0x%08x)\n",
2694 cfg80211_michael_mic_failure(usbdev->net,
2704 cfg80211_michael_mic_failure(usbdev->net,
2715 static void rndis_wlan_pmkid_cand_list_indication(struct usbnet *usbdev,
2724 netdev_info(usbdev->net, "pmkid candidate list indication: too short message (%i)\n",
2735 netdev_info(usbdev->net, "pmkid candidate list indication: list larger than buffer (%i < %i)\n",
2742 netdev_info(usbdev->net, "pmkid candidate list indication: version %i, candidates %i\n",
2753 netdev_dbg(usbdev->net, "cand[%i]: flags: 0x%08x, bssid: %pM\n",
2759 static void rndis_wlan_media_specific_indication(struct usbnet *usbdev,
2770 netdev_info(usbdev->net, "media specific indication, ignore too short message (%i < 8)\n",
2776 netdev_info(usbdev->net, "media specific indication, too large to fit to buffer (%i > %i)\n",
2785 netdev_info(usbdev->net, "radio state indication: %i\n",
2790 netdev_info(usbdev->net, "media stream mode indication: %i\n",
2795 rndis_wlan_auth_indication(usbdev, indication, len);
2799 rndis_wlan_pmkid_cand_list_indication(usbdev, indication, len);
2803 netdev_info(usbdev->net, "media specific indication: unknown status type 0x%08x\n",
2808 static void rndis_wlan_indication(struct usbnet *usbdev, void *ind, int buflen)
2810 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
2821 netdev_dbg(usbdev->net, "ignored OID_802_11_ADD_KEY triggered 'media connect'\n");
2825 usbnet_pause_rx(usbdev);
2827 netdev_info(usbdev->net, "media connect\n");
2835 netdev_info(usbdev->net, "media disconnect\n");
2843 rndis_wlan_media_specific_indication(usbdev, msg, buflen);
2847 netdev_info(usbdev->net, "indication: 0x%08x\n",
2853 static int rndis_wlan_get_caps(struct usbnet *usbdev, struct wiphy *wiphy)
2862 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
2866 retval = rndis_query_oid(usbdev, OID_802_11_NETWORK_TYPES_SUPPORTED,
2891 retval = rndis_query_oid(usbdev, OID_802_11_CAPABILITY, caps, &len);
2893 netdev_dbg(usbdev->net, "OID_802_11_CAPABILITY -> len %d, "
2912 struct usbnet *usbdev = priv->usbdev;
2918 if (!is_associated(usbdev))
2922 ret = rndis_query_oid(usbdev, OID_802_11_RSSI, &rssi, &len);
2926 netdev_dbg(usbdev->net, "dev-poller: OID_802_11_RSSI -> %d, rssi:%d, qual: %d\n",
2945 rndis_set_oid(usbdev, OID_802_11_BSSID_LIST_SCAN, &tmp,
2953 rndis_query_oid(usbdev, OID_802_11_BSSID_LIST, buf, &len);
2973 static void rndis_copy_module_params(struct usbnet *usbdev)
2975 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
3019 static int bcm4320a_early_init(struct usbnet *usbdev)
3021 rndis_copy_module_params(usbdev);
3030 static int bcm4320b_early_init(struct usbnet *usbdev)
3032 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
3035 rndis_copy_module_params(usbdev);
3041 rndis_set_config_parameter_str(usbdev, "Country", priv->param_country);
3042 rndis_set_config_parameter_str(usbdev, "FrameBursting",
3044 rndis_set_config_parameter_str(usbdev, "Afterburner",
3047 rndis_set_config_parameter_str(usbdev, "PowerSaveMode", buf);
3049 rndis_set_config_parameter_str(usbdev, "PwrOut", buf);
3051 rndis_set_config_parameter_str(usbdev, "RoamTrigger", buf);
3053 rndis_set_config_parameter_str(usbdev, "RoamDelta", buf);
3069 static int rndis_wlan_bind(struct usbnet *usbdev, struct usb_interface *intf)
3085 usbdev->net->ieee80211_ptr = &priv->wdev;
3092 usbdev->driver_priv = priv;
3093 priv->usbdev = usbdev;
3104 retval = generic_rndis_bind(usbdev, intf, FLAG_RNDIS_PHYM_WIRELESS);
3115 usbdev->net->netdev_ops = &rndis_wlan_netdev_ops;
3118 retval = rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &tmp,
3122 retval = rndis_query_oid(usbdev, OID_802_3_MAXIMUM_LIST_SIZE, &tmp,
3128 usbdev->net->flags |= IFF_MULTICAST;
3130 usbdev->net->flags &= ~IFF_MULTICAST;
3133 memcpy(wiphy->perm_addr, usbdev->net->dev_addr, ETH_ALEN);
3140 rndis_wlan_get_caps(usbdev, wiphy);
3156 set_wiphy_dev(wiphy, &usbdev->udev->dev);
3163 set_default_iw_params(usbdev);
3171 disassociate(usbdev, true);
3172 netif_carrier_off(usbdev->net);
3187 static void rndis_wlan_unbind(struct usbnet *usbdev, struct usb_interface *intf)
3189 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
3192 disassociate(usbdev, false);
3200 rndis_unbind(usbdev, intf);
3206 static int rndis_wlan_reset(struct usbnet *usbdev)
3208 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
3211 netdev_dbg(usbdev->net, "%s()\n", __func__);
3213 retval = rndis_reset(usbdev);
3215 netdev_warn(usbdev->net, "rndis_reset failed: %d\n", retval);
3219 set_multicast_list(usbdev);
3224 return deauthenticate(usbdev);
3227 static int rndis_wlan_stop(struct usbnet *usbdev)
3229 struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
3233 netdev_dbg(usbdev->net, "%s()\n", __func__);
3235 retval = disassociate(usbdev, false);
3251 rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &filter,