aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/cmd.c
diff options
context:
space:
mode:
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>2010-11-24 01:16:57 -0500
committerLuciano Coelho <luciano.coelho@nokia.com>2010-11-26 08:33:41 -0500
commit2f6724b24525fc989c0707974b23d96b36132385 (patch)
treeca2890e52f4a17efe2019189652ea09591e10163 /drivers/net/wireless/wl12xx/cmd.c
parent573c67cf819d52d2e12adf75a9a8cfbd216190a3 (diff)
wl1271: Fix setting of the hardware connection monitoring probe-req template
The probe-request template used in the hardware connection monitoring feature thus far has been an empty one, without the SSID IE and without supported rate IEs. This causes problems with some AP's. Additionally, after connected scans, the template for connection maintenance would remain to be the one last used for scanning - potentially incorrect. Fix these by getting a pre-filled directed probe-request template for the associated-to AP from mac80211. Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/cmd.c')
-rw-r--r--drivers/net/wireless/wl12xx/cmd.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c
index f3d0541aaad6..8e438e27e496 100644
--- a/drivers/net/wireless/wl12xx/cmd.c
+++ b/drivers/net/wireless/wl12xx/cmd.c
@@ -611,6 +611,34 @@ out:
611 return ret; 611 return ret;
612} 612}
613 613
614struct sk_buff *wl1271_cmd_build_ap_probe_req(struct wl1271 *wl,
615 struct sk_buff *skb)
616{
617 int ret;
618
619 if (!skb)
620 skb = ieee80211_ap_probereq_get(wl->hw, wl->vif);
621 if (!skb)
622 goto out;
623
624 wl1271_dump(DEBUG_SCAN, "AP PROBE REQ: ", skb->data, skb->len);
625
626 if (wl->band == IEEE80211_BAND_2GHZ)
627 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_CFG_PROBE_REQ_2_4,
628 skb->data, skb->len, 0,
629 wl->conf.tx.basic_rate);
630 else
631 ret = wl1271_cmd_template_set(wl, CMD_TEMPL_CFG_PROBE_REQ_5,
632 skb->data, skb->len, 0,
633 wl->conf.tx.basic_rate_5);
634
635 if (ret < 0)
636 wl1271_error("Unable to set ap probe request template.");
637
638out:
639 return skb;
640}
641
614int wl1271_build_qos_null_data(struct wl1271 *wl) 642int wl1271_build_qos_null_data(struct wl1271 *wl)
615{ 643{
616 struct ieee80211_qos_hdr template; 644 struct ieee80211_qos_hdr template;