aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArend van Spriel <arend@broadcom.com>2013-04-23 06:53:11 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-04-23 14:14:55 -0400
commit1687eee235d2c812f9ad433eae6b0aa04e0a39c2 (patch)
tree206c60f56d37bffc3e7cd3afd59aa8c6b4ca999c
parent176f0e841e944db044b4c3d66903965f63d79b4f (diff)
brcmfmac: allow scanning to be suppressed in the driver
During the DHCP protocol exchange it is benificial to suppress scan requests which may decrease time to complete DHCP protocol. Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@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.c10
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h4
2 files changed, 13 insertions, 1 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
index ba92d6d7dfdd..29b4ea43a40f 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
@@ -856,6 +856,11 @@ brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif,
856 cfg->scan_status); 856 cfg->scan_status);
857 return -EAGAIN; 857 return -EAGAIN;
858 } 858 }
859 if (test_bit(BRCMF_SCAN_STATUS_SUPPRESS, &cfg->scan_status)) {
860 brcmf_err("Scanning suppressed: status (%lu)\n",
861 cfg->scan_status);
862 return -EAGAIN;
863 }
859 if (test_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state)) { 864 if (test_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state)) {
860 brcmf_err("Connecting: status (%lu)\n", ifp->vif->sme_state); 865 brcmf_err("Connecting: status (%lu)\n", ifp->vif->sme_state);
861 return -EAGAIN; 866 return -EAGAIN;
@@ -3017,6 +3022,11 @@ brcmf_cfg80211_sched_scan_start(struct wiphy *wiphy,
3017 brcmf_err("Scanning already: status (%lu)\n", cfg->scan_status); 3022 brcmf_err("Scanning already: status (%lu)\n", cfg->scan_status);
3018 return -EAGAIN; 3023 return -EAGAIN;
3019 } 3024 }
3025 if (test_bit(BRCMF_SCAN_STATUS_SUPPRESS, &cfg->scan_status)) {
3026 brcmf_err("Scanning suppressed: status (%lu)\n",
3027 cfg->scan_status);
3028 return -EAGAIN;
3029 }
3020 3030
3021 if (!request->n_ssids || !request->n_match_sets) { 3031 if (!request->n_ssids || !request->n_match_sets) {
3022 brcmf_err("Invalid sched scan req!! n_ssids:%d\n", 3032 brcmf_err("Invalid sched scan req!! n_ssids:%d\n",
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h
index 0b9263e7dca4..e1983464e847 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h
@@ -77,14 +77,16 @@
77 77
78 78
79/** 79/**
80 * enum brcmf_scan_status - dongle scan status 80 * enum brcmf_scan_status - scan engine status
81 * 81 *
82 * @BRCMF_SCAN_STATUS_BUSY: scanning in progress on dongle. 82 * @BRCMF_SCAN_STATUS_BUSY: scanning in progress on dongle.
83 * @BRCMF_SCAN_STATUS_ABORT: scan being aborted on dongle. 83 * @BRCMF_SCAN_STATUS_ABORT: scan being aborted on dongle.
84 * @BRCMF_SCAN_STATUS_SUPPRESS: scanning is suppressed in driver.
84 */ 85 */
85enum brcmf_scan_status { 86enum brcmf_scan_status {
86 BRCMF_SCAN_STATUS_BUSY, 87 BRCMF_SCAN_STATUS_BUSY,
87 BRCMF_SCAN_STATUS_ABORT, 88 BRCMF_SCAN_STATUS_ABORT,
89 BRCMF_SCAN_STATUS_SUPPRESS,
88}; 90};
89 91
90/** 92/**