wl12xx: set scan probe requests rate according to the no_cck flag
Set the TX rate of probe requests during scanning according to the no_cck flag in the scan request struct. Signed-off-by: Guy Eilam <guy@wizery.com> Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
This commit is contained in:
parent
3f3fd78e33
commit
bfafba8a4c
2 changed files with 19 additions and 4 deletions
|
@ -440,6 +440,10 @@ struct conf_rx_settings {
|
|||
CONF_HW_BIT_RATE_36MBPS | CONF_HW_BIT_RATE_48MBPS | \
|
||||
CONF_HW_BIT_RATE_54MBPS)
|
||||
|
||||
#define CONF_TX_CCK_RATES (CONF_HW_BIT_RATE_1MBPS | \
|
||||
CONF_HW_BIT_RATE_2MBPS | CONF_HW_BIT_RATE_5_5MBPS | \
|
||||
CONF_HW_BIT_RATE_11MBPS)
|
||||
|
||||
#define CONF_TX_OFDM_RATES (CONF_HW_BIT_RATE_6MBPS | \
|
||||
CONF_HW_BIT_RATE_12MBPS | CONF_HW_BIT_RATE_24MBPS | \
|
||||
CONF_HW_BIT_RATE_36MBPS | CONF_HW_BIT_RATE_48MBPS | \
|
||||
|
|
|
@ -202,7 +202,6 @@ static int wl1271_scan_send(struct wl1271 *wl, struct ieee80211_vif *vif,
|
|||
|
||||
cmd->params.tx_rate = cpu_to_le32(basic_rate);
|
||||
cmd->params.n_probe_reqs = wl->conf.scan.num_probe_reqs;
|
||||
cmd->params.tx_rate = cpu_to_le32(basic_rate);
|
||||
cmd->params.tid_trigger = 0;
|
||||
cmd->params.scan_tag = WL1271_SCAN_DEFAULT_TAG;
|
||||
|
||||
|
@ -254,7 +253,7 @@ void wl1271_scan_stm(struct wl1271 *wl, struct ieee80211_vif *vif)
|
|||
struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
|
||||
int ret = 0;
|
||||
enum ieee80211_band band;
|
||||
u32 rate;
|
||||
u32 rate, mask;
|
||||
|
||||
switch (wl->scan.state) {
|
||||
case WL1271_SCAN_STATE_IDLE:
|
||||
|
@ -262,7 +261,13 @@ void wl1271_scan_stm(struct wl1271 *wl, struct ieee80211_vif *vif)
|
|||
|
||||
case WL1271_SCAN_STATE_2GHZ_ACTIVE:
|
||||
band = IEEE80211_BAND_2GHZ;
|
||||
rate = wl1271_tx_min_rate_get(wl, wlvif->bitrate_masks[band]);
|
||||
mask = wlvif->bitrate_masks[band];
|
||||
if (wl->scan.req->no_cck) {
|
||||
mask &= ~CONF_TX_CCK_RATES;
|
||||
if (!mask)
|
||||
mask = CONF_TX_RATE_MASK_BASIC_P2P;
|
||||
}
|
||||
rate = wl1271_tx_min_rate_get(wl, mask);
|
||||
ret = wl1271_scan_send(wl, vif, band, false, rate);
|
||||
if (ret == WL1271_NOTHING_TO_SCAN) {
|
||||
wl->scan.state = WL1271_SCAN_STATE_2GHZ_PASSIVE;
|
||||
|
@ -273,7 +278,13 @@ void wl1271_scan_stm(struct wl1271 *wl, struct ieee80211_vif *vif)
|
|||
|
||||
case WL1271_SCAN_STATE_2GHZ_PASSIVE:
|
||||
band = IEEE80211_BAND_2GHZ;
|
||||
rate = wl1271_tx_min_rate_get(wl, wlvif->bitrate_masks[band]);
|
||||
mask = wlvif->bitrate_masks[band];
|
||||
if (wl->scan.req->no_cck) {
|
||||
mask &= ~CONF_TX_CCK_RATES;
|
||||
if (!mask)
|
||||
mask = CONF_TX_RATE_MASK_BASIC_P2P;
|
||||
}
|
||||
rate = wl1271_tx_min_rate_get(wl, mask);
|
||||
ret = wl1271_scan_send(wl, vif, band, true, rate);
|
||||
if (ret == WL1271_NOTHING_TO_SCAN) {
|
||||
if (wl->enable_11a)
|
||||
|
|
Loading…
Reference in a new issue