diff options
author | Hante Meuleman <meuleman@broadcom.com> | 2014-09-30 04:23:13 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-09-30 13:17:47 -0400 |
commit | ef8596e1f1ce06b4398db4752d04bb1a67a14a02 (patch) | |
tree | b7f6f3467b6fffa5152b67a1627502246ef9c197 | |
parent | 5fb9b1b949ce9b829e7e8f799cc85e91527213bd (diff) |
brcmfmac: On scan timeout do send received results.
Increase driver scan timeout from 8 to 10 seconds and report results
to cfg80211. Without this patch the already received results were
dropped on driver timeout.
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>
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h | 3 |
2 files changed, 4 insertions, 7 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c index 12a60ca1462a..6860501bc179 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | |||
@@ -2426,7 +2426,7 @@ static s32 brcmf_inform_bss(struct brcmf_cfg80211_info *cfg) | |||
2426 | s32 err = 0; | 2426 | s32 err = 0; |
2427 | int i; | 2427 | int i; |
2428 | 2428 | ||
2429 | bss_list = cfg->bss_list; | 2429 | bss_list = (struct brcmf_scan_results *)cfg->escan_info.escan_buf; |
2430 | if (bss_list->count != 0 && | 2430 | if (bss_list->count != 0 && |
2431 | bss_list->version != BRCMF_BSS_INFO_VERSION) { | 2431 | bss_list->version != BRCMF_BSS_INFO_VERSION) { |
2432 | brcmf_err("Version %d != WL_BSS_INFO_VERSION\n", | 2432 | brcmf_err("Version %d != WL_BSS_INFO_VERSION\n", |
@@ -2602,6 +2602,7 @@ static void brcmf_cfg80211_escan_timeout_worker(struct work_struct *work) | |||
2602 | container_of(work, struct brcmf_cfg80211_info, | 2602 | container_of(work, struct brcmf_cfg80211_info, |
2603 | escan_timeout_work); | 2603 | escan_timeout_work); |
2604 | 2604 | ||
2605 | brcmf_inform_bss(cfg); | ||
2605 | brcmf_notify_escan_complete(cfg, cfg->escan_info.ifp, true, true); | 2606 | brcmf_notify_escan_complete(cfg, cfg->escan_info.ifp, true, true); |
2606 | } | 2607 | } |
2607 | 2608 | ||
@@ -2740,12 +2741,9 @@ brcmf_cfg80211_escan_handler(struct brcmf_if *ifp, | |||
2740 | if (brcmf_p2p_scan_finding_common_channel(cfg, NULL)) | 2741 | if (brcmf_p2p_scan_finding_common_channel(cfg, NULL)) |
2741 | goto exit; | 2742 | goto exit; |
2742 | if (cfg->scan_request) { | 2743 | if (cfg->scan_request) { |
2743 | cfg->bss_list = (struct brcmf_scan_results *) | ||
2744 | cfg->escan_info.escan_buf; | ||
2745 | brcmf_inform_bss(cfg); | 2744 | brcmf_inform_bss(cfg); |
2746 | aborted = status != BRCMF_E_STATUS_SUCCESS; | 2745 | aborted = status != BRCMF_E_STATUS_SUCCESS; |
2747 | brcmf_notify_escan_complete(cfg, ifp, aborted, | 2746 | brcmf_notify_escan_complete(cfg, ifp, aborted, false); |
2748 | false); | ||
2749 | } else | 2747 | } else |
2750 | brcmf_dbg(SCAN, "Ignored scan complete result 0x%x\n", | 2748 | brcmf_dbg(SCAN, "Ignored scan complete result 0x%x\n", |
2751 | status); | 2749 | status); |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h index f9fb10998e79..82f8778a93fb 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h +++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h | |||
@@ -35,7 +35,7 @@ | |||
35 | #define WL_SCAN_PASSIVE_TIME 120 | 35 | #define WL_SCAN_PASSIVE_TIME 120 |
36 | 36 | ||
37 | #define WL_ESCAN_BUF_SIZE (1024 * 64) | 37 | #define WL_ESCAN_BUF_SIZE (1024 * 64) |
38 | #define WL_ESCAN_TIMER_INTERVAL_MS 8000 /* E-Scan timeout */ | 38 | #define WL_ESCAN_TIMER_INTERVAL_MS 10000 /* E-Scan timeout */ |
39 | 39 | ||
40 | #define WL_ESCAN_ACTION_START 1 | 40 | #define WL_ESCAN_ACTION_START 1 |
41 | #define WL_ESCAN_ACTION_CONTINUE 2 | 41 | #define WL_ESCAN_ACTION_CONTINUE 2 |
@@ -371,7 +371,6 @@ struct brcmf_cfg80211_info { | |||
371 | struct brcmf_btcoex_info *btcoex; | 371 | struct brcmf_btcoex_info *btcoex; |
372 | struct cfg80211_scan_request *scan_request; | 372 | struct cfg80211_scan_request *scan_request; |
373 | struct mutex usr_sync; | 373 | struct mutex usr_sync; |
374 | struct brcmf_scan_results *bss_list; | ||
375 | struct brcmf_cfg80211_scan_req scan_req_int; | 374 | struct brcmf_cfg80211_scan_req scan_req_int; |
376 | struct wl_cfg80211_bss_info *bss_info; | 375 | struct wl_cfg80211_bss_info *bss_info; |
377 | struct brcmf_cfg80211_ie ie; | 376 | struct brcmf_cfg80211_ie ie; |