提交 c2b2d99b 编写于 作者: J Juuso Oikarinen 提交者: John W. Linville

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: NJuuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: NLuciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 cbf7f305
...@@ -31,14 +31,11 @@ ...@@ -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, ...@@ -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, ...@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册