wl1271: Configure probe-request template when associated
Configure a probe-request template to the wl1271 when associated - the wl1271 will use this to attempt to recover a connection when beacon loss is detected. Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
cbf7f3058e
commit
c2b2d99bb0
|
@ -31,14 +31,11 @@
|
||||||
static int wl1271_event_scan_complete(struct wl1271 *wl,
|
static int wl1271_event_scan_complete(struct wl1271 *wl,
|
||||||
struct event_mailbox *mbox)
|
struct event_mailbox *mbox)
|
||||||
{
|
{
|
||||||
int size = sizeof(struct wl12xx_probe_req_template);
|
|
||||||
wl1271_debug(DEBUG_EVENT, "status: 0x%x",
|
wl1271_debug(DEBUG_EVENT, "status: 0x%x",
|
||||||
mbox->scheduled_scan_status);
|
mbox->scheduled_scan_status);
|
||||||
|
|
||||||
if (test_bit(WL1271_FLAG_SCANNING, &wl->flags)) {
|
if (test_bit(WL1271_FLAG_SCANNING, &wl->flags)) {
|
||||||
if (wl->scan.state == WL1271_SCAN_BAND_DUAL) {
|
if (wl->scan.state == WL1271_SCAN_BAND_DUAL) {
|
||||||
wl1271_cmd_template_set(wl, CMD_TEMPL_CFG_PROBE_REQ_2_4,
|
|
||||||
NULL, size);
|
|
||||||
/* 2.4 GHz band scanned, scan 5 GHz band, pretend
|
/* 2.4 GHz band scanned, scan 5 GHz band, pretend
|
||||||
* to the wl1271_cmd_scan function that we are not
|
* to the wl1271_cmd_scan function that we are not
|
||||||
* scanning as it checks that.
|
* scanning as it checks that.
|
||||||
|
@ -52,15 +49,6 @@ static int wl1271_event_scan_complete(struct wl1271 *wl,
|
||||||
WL1271_SCAN_BAND_5_GHZ,
|
WL1271_SCAN_BAND_5_GHZ,
|
||||||
wl->scan.probe_requests);
|
wl->scan.probe_requests);
|
||||||
} else {
|
} else {
|
||||||
if (wl->scan.state == WL1271_SCAN_BAND_2_4_GHZ)
|
|
||||||
wl1271_cmd_template_set(wl,
|
|
||||||
CMD_TEMPL_CFG_PROBE_REQ_2_4,
|
|
||||||
NULL, size);
|
|
||||||
else
|
|
||||||
wl1271_cmd_template_set(wl,
|
|
||||||
CMD_TEMPL_CFG_PROBE_REQ_5,
|
|
||||||
NULL, size);
|
|
||||||
|
|
||||||
mutex_unlock(&wl->mutex);
|
mutex_unlock(&wl->mutex);
|
||||||
ieee80211_scan_completed(wl->hw, false);
|
ieee80211_scan_completed(wl->hw, false);
|
||||||
mutex_lock(&wl->mutex);
|
mutex_lock(&wl->mutex);
|
||||||
|
|
|
@ -1667,6 +1667,15 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw,
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out_sleep;
|
goto out_sleep;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The SSID is intentionally set to NULL here - the
|
||||||
|
* firmware will set the probe request with a
|
||||||
|
* broadcast SSID regardless of what we set in the
|
||||||
|
* template.
|
||||||
|
*/
|
||||||
|
ret = wl1271_cmd_build_probe_req(wl, NULL, 0,
|
||||||
|
NULL, 0, wl->band);
|
||||||
|
|
||||||
ret = wl1271_acx_aid(wl, wl->aid);
|
ret = wl1271_acx_aid(wl, wl->aid);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out_sleep;
|
goto out_sleep;
|
||||||
|
|
Loading…
Reference in New Issue