diff options
author | Arend van Spriel <arend@broadcom.com> | 2013-04-23 06:53:11 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-04-23 14:14:55 -0400 |
commit | 1687eee235d2c812f9ad433eae6b0aa04e0a39c2 (patch) | |
tree | 206c60f56d37bffc3e7cd3afd59aa8c6b4ca999c | |
parent | 176f0e841e944db044b4c3d66903965f63d79b4f (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.c | 10 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h | 4 |
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 | */ |
85 | enum brcmf_scan_status { | 86 | enum 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 | /** |