aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHante Meuleman <meuleman@broadcom.com>2014-09-30 04:23:13 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-09-30 13:17:47 -0400
commitef8596e1f1ce06b4398db4752d04bb1a67a14a02 (patch)
treeb7f6f3467b6fffa5152b67a1627502246ef9c197
parent5fb9b1b949ce9b829e7e8f799cc85e91527213bd (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.c8
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h3
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;