brcmfmac: Improve scanning settings for connect.
When connecting without specifying the channel it can take quite some time to connect. This is because not all parameters for the scan operation are set to optimized values. This patch changes these parameters resulting in a much faster connect in certain situations. Reviewed-by: Arend Van Spriel <arend@broadcom.com> Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Daniel (Deognyoun) Kim <dekim@broadcom.com> Signed-off-by: Hante Meuleman <meuleman@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
fed7ec44e7
commit
63dd99e699
|
@ -1682,22 +1682,9 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
|
|||
ext_join_params->ssid_le.SSID_len = cpu_to_le32(profile->ssid.SSID_len);
|
||||
memcpy(&ext_join_params->ssid_le.SSID, sme->ssid,
|
||||
profile->ssid.SSID_len);
|
||||
/*increase dwell time to receive probe response or detect Beacon
|
||||
* from target AP at a noisy air only during connect command
|
||||
*/
|
||||
ext_join_params->scan_le.active_time =
|
||||
cpu_to_le32(BRCMF_SCAN_JOIN_ACTIVE_DWELL_TIME_MS);
|
||||
ext_join_params->scan_le.passive_time =
|
||||
cpu_to_le32(BRCMF_SCAN_JOIN_PASSIVE_DWELL_TIME_MS);
|
||||
|
||||
/* Set up join scan parameters */
|
||||
ext_join_params->scan_le.scan_type = -1;
|
||||
/* to sync with presence period of VSDB GO.
|
||||
* Send probe request more frequently. Probe request will be stopped
|
||||
* when it gets probe response from target AP/GO.
|
||||
*/
|
||||
ext_join_params->scan_le.nprobes =
|
||||
cpu_to_le32(BRCMF_SCAN_JOIN_ACTIVE_DWELL_TIME_MS /
|
||||
BRCMF_SCAN_JOIN_PROBE_INTERVAL_MS);
|
||||
ext_join_params->scan_le.home_time = cpu_to_le32(-1);
|
||||
|
||||
if (sme->bssid)
|
||||
|
@ -1710,6 +1697,25 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
|
|||
|
||||
ext_join_params->assoc_le.chanspec_list[0] =
|
||||
cpu_to_le16(chanspec);
|
||||
/* Increase dwell time to receive probe response or detect
|
||||
* beacon from target AP at a noisy air only during connect
|
||||
* command.
|
||||
*/
|
||||
ext_join_params->scan_le.active_time =
|
||||
cpu_to_le32(BRCMF_SCAN_JOIN_ACTIVE_DWELL_TIME_MS);
|
||||
ext_join_params->scan_le.passive_time =
|
||||
cpu_to_le32(BRCMF_SCAN_JOIN_PASSIVE_DWELL_TIME_MS);
|
||||
/* To sync with presence period of VSDB GO send probe request
|
||||
* more frequently. Probe request will be stopped when it gets
|
||||
* probe response from target AP/GO.
|
||||
*/
|
||||
ext_join_params->scan_le.nprobes =
|
||||
cpu_to_le32(BRCMF_SCAN_JOIN_ACTIVE_DWELL_TIME_MS /
|
||||
BRCMF_SCAN_JOIN_PROBE_INTERVAL_MS);
|
||||
} else {
|
||||
ext_join_params->scan_le.active_time = cpu_to_le32(-1);
|
||||
ext_join_params->scan_le.passive_time = cpu_to_le32(-1);
|
||||
ext_join_params->scan_le.nprobes = cpu_to_le32(-1);
|
||||
}
|
||||
|
||||
err = brcmf_fil_bsscfg_data_set(ifp, "join", ext_join_params,
|
||||
|
|
Loading…
Reference in New Issue