cfg80211.c (6a98d64a27de16f88b97a493577a5fb9d18ec000) | cfg80211.c (7d34b05605676736c6695ccdcec547055d07468f) |
---|---|
1/* 2 * Copyright (c) 2010 Broadcom Corporation 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --- 222 unchanged lines hidden (view full) --- 231 struct brcmf_vs_tlv vndrie; 232}; 233 234struct parsed_vndr_ies { 235 u32 count; 236 struct parsed_vndr_ie_info ie_info[VNDR_IE_PARSE_LIMIT]; 237}; 238 | 1/* 2 * Copyright (c) 2010 Broadcom Corporation 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --- 222 unchanged lines hidden (view full) --- 231 struct brcmf_vs_tlv vndrie; 232}; 233 234struct parsed_vndr_ies { 235 u32 count; 236 struct parsed_vndr_ie_info ie_info[VNDR_IE_PARSE_LIMIT]; 237}; 238 |
239static int brcmf_roamoff; 240module_param_named(roamoff, brcmf_roamoff, int, S_IRUSR); 241MODULE_PARM_DESC(roamoff, "do not use internal roaming engine"); | |
242 | 239 |
243 | |
244static u16 chandef_to_chanspec(struct brcmu_d11inf *d11inf, 245 struct cfg80211_chan_def *ch) 246{ 247 struct brcmu_chan ch_inf; 248 s32 primary_offset; 249 250 brcmf_dbg(TRACE, "chandef: control %d center %d width %d\n", 251 ch->chan->center_freq, ch->center_freq1, ch->width); --- 5138 unchanged lines hidden (view full) --- 5390static s32 brcmf_dongle_roam(struct brcmf_if *ifp) 5391{ 5392 s32 err; 5393 u32 bcn_timeout; 5394 __le32 roamtrigger[2]; 5395 __le32 roam_delta[2]; 5396 5397 /* Configure beacon timeout value based upon roaming setting */ | 240static u16 chandef_to_chanspec(struct brcmu_d11inf *d11inf, 241 struct cfg80211_chan_def *ch) 242{ 243 struct brcmu_chan ch_inf; 244 s32 primary_offset; 245 246 brcmf_dbg(TRACE, "chandef: control %d center %d width %d\n", 247 ch->chan->center_freq, ch->center_freq1, ch->width); --- 5138 unchanged lines hidden (view full) --- 5386static s32 brcmf_dongle_roam(struct brcmf_if *ifp) 5387{ 5388 s32 err; 5389 u32 bcn_timeout; 5390 __le32 roamtrigger[2]; 5391 __le32 roam_delta[2]; 5392 5393 /* Configure beacon timeout value based upon roaming setting */ |
5398 if (brcmf_roamoff) | 5394 if (ifp->drvr->settings->roamoff) |
5399 bcn_timeout = BRCMF_DEFAULT_BCN_TIMEOUT_ROAM_OFF; 5400 else 5401 bcn_timeout = BRCMF_DEFAULT_BCN_TIMEOUT_ROAM_ON; 5402 err = brcmf_fil_iovar_int_set(ifp, "bcn_timeout", bcn_timeout); 5403 if (err) { 5404 brcmf_err("bcn_timeout error (%d)\n", err); 5405 goto roam_setup_done; 5406 } 5407 5408 /* Enable/Disable built-in roaming to allow supplicant to take care of 5409 * roaming. 5410 */ 5411 brcmf_dbg(INFO, "Internal Roaming = %s\n", | 5395 bcn_timeout = BRCMF_DEFAULT_BCN_TIMEOUT_ROAM_OFF; 5396 else 5397 bcn_timeout = BRCMF_DEFAULT_BCN_TIMEOUT_ROAM_ON; 5398 err = brcmf_fil_iovar_int_set(ifp, "bcn_timeout", bcn_timeout); 5399 if (err) { 5400 brcmf_err("bcn_timeout error (%d)\n", err); 5401 goto roam_setup_done; 5402 } 5403 5404 /* Enable/Disable built-in roaming to allow supplicant to take care of 5405 * roaming. 5406 */ 5407 brcmf_dbg(INFO, "Internal Roaming = %s\n", |
5412 brcmf_roamoff ? "Off" : "On"); 5413 err = brcmf_fil_iovar_int_set(ifp, "roam_off", !!(brcmf_roamoff)); | 5408 ifp->drvr->settings->roamoff ? "Off" : "On"); 5409 err = brcmf_fil_iovar_int_set(ifp, "roam_off", 5410 ifp->drvr->settings->roamoff); |
5414 if (err) { 5415 brcmf_err("roam_off error (%d)\n", err); 5416 goto roam_setup_done; 5417 } 5418 5419 roamtrigger[0] = cpu_to_le32(WL_ROAM_TRIGGER_LEVEL); 5420 roamtrigger[1] = cpu_to_le32(BRCM_BAND_ALL); 5421 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER, --- 655 unchanged lines hidden (view full) --- 6077 wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; 6078 wiphy->cipher_suites = __wl_cipher_suites; 6079 wiphy->n_cipher_suites = ARRAY_SIZE(__wl_cipher_suites); 6080 wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT | 6081 WIPHY_FLAG_OFFCHAN_TX | 6082 WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL; 6083 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_TDLS)) 6084 wiphy->flags |= WIPHY_FLAG_SUPPORTS_TDLS; | 5411 if (err) { 5412 brcmf_err("roam_off error (%d)\n", err); 5413 goto roam_setup_done; 5414 } 5415 5416 roamtrigger[0] = cpu_to_le32(WL_ROAM_TRIGGER_LEVEL); 5417 roamtrigger[1] = cpu_to_le32(BRCM_BAND_ALL); 5418 err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_ROAM_TRIGGER, --- 655 unchanged lines hidden (view full) --- 6074 wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; 6075 wiphy->cipher_suites = __wl_cipher_suites; 6076 wiphy->n_cipher_suites = ARRAY_SIZE(__wl_cipher_suites); 6077 wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT | 6078 WIPHY_FLAG_OFFCHAN_TX | 6079 WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL; 6080 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_TDLS)) 6081 wiphy->flags |= WIPHY_FLAG_SUPPORTS_TDLS; |
6085 if (!brcmf_roamoff) | 6082 if (!ifp->drvr->settings->roamoff) |
6086 wiphy->flags |= WIPHY_FLAG_SUPPORTS_FW_ROAM; 6087 wiphy->mgmt_stypes = brcmf_txrx_stypes; 6088 wiphy->max_remain_on_channel_duration = 5000; 6089 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_PNO)) 6090 brcmf_wiphy_pno_params(wiphy); 6091 6092 /* vendor commands/events support */ 6093 wiphy->vendor_commands = brcmf_vendor_cmds; --- 432 unchanged lines hidden --- | 6083 wiphy->flags |= WIPHY_FLAG_SUPPORTS_FW_ROAM; 6084 wiphy->mgmt_stypes = brcmf_txrx_stypes; 6085 wiphy->max_remain_on_channel_duration = 5000; 6086 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_PNO)) 6087 brcmf_wiphy_pno_params(wiphy); 6088 6089 /* vendor commands/events support */ 6090 wiphy->vendor_commands = brcmf_vendor_cmds; --- 432 unchanged lines hidden --- |