|
@@ -1007,12 +1007,14 @@ out:
|
|
|
int wl12xx_cmd_build_probe_req(struct wl1271 *wl, struct wl12xx_vif *wlvif,
|
|
|
u8 role_id, u8 band,
|
|
|
const u8 *ssid, size_t ssid_len,
|
|
|
- const u8 *ie, size_t ie_len)
|
|
|
+ const u8 *ie, size_t ie_len, bool sched_scan)
|
|
|
{
|
|
|
struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif);
|
|
|
struct sk_buff *skb;
|
|
|
int ret;
|
|
|
u32 rate;
|
|
|
+ u16 template_id_2_4 = CMD_TEMPL_CFG_PROBE_REQ_2_4;
|
|
|
+ u16 template_id_5 = CMD_TEMPL_CFG_PROBE_REQ_5;
|
|
|
|
|
|
skb = ieee80211_probereq_get(wl->hw, vif, ssid, ssid_len,
|
|
|
ie, ie_len);
|
|
@@ -1023,14 +1025,20 @@ int wl12xx_cmd_build_probe_req(struct wl1271 *wl, struct wl12xx_vif *wlvif,
|
|
|
|
|
|
wl1271_dump(DEBUG_SCAN, "PROBE REQ: ", skb->data, skb->len);
|
|
|
|
|
|
+ if (!sched_scan &&
|
|
|
+ (wl->quirks & WLCORE_QUIRK_DUAL_PROBE_TMPL)) {
|
|
|
+ template_id_2_4 = CMD_TEMPL_APP_PROBE_REQ_2_4;
|
|
|
+ template_id_5 = CMD_TEMPL_APP_PROBE_REQ_5;
|
|
|
+ }
|
|
|
+
|
|
|
rate = wl1271_tx_min_rate_get(wl, wlvif->bitrate_masks[band]);
|
|
|
if (band == IEEE80211_BAND_2GHZ)
|
|
|
ret = wl1271_cmd_template_set(wl, role_id,
|
|
|
- CMD_TEMPL_CFG_PROBE_REQ_2_4,
|
|
|
+ template_id_2_4,
|
|
|
skb->data, skb->len, 0, rate);
|
|
|
else
|
|
|
ret = wl1271_cmd_template_set(wl, role_id,
|
|
|
- CMD_TEMPL_CFG_PROBE_REQ_5,
|
|
|
+ template_id_5,
|
|
|
skb->data, skb->len, 0, rate);
|
|
|
|
|
|
out:
|