forked from Minki/linux
wl12xx: reconfigure rate policies on set_bitrate_mask
The rate policies are configured only after association, resulting in auth req being sent in wrong rates. Reconfigure rate policies on bitrate mask change. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
This commit is contained in:
parent
679a673414
commit
d6fa37c9ff
@ -4318,7 +4318,7 @@ static int wl12xx_set_bitrate_mask(struct ieee80211_hw *hw,
|
||||
{
|
||||
struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
|
||||
struct wl1271 *wl = hw->priv;
|
||||
int i;
|
||||
int i, ret = 0;
|
||||
|
||||
wl1271_debug(DEBUG_MAC80211, "mac80211 set_bitrate_mask 0x%x 0x%x",
|
||||
mask->control[NL80211_BAND_2GHZ].legacy,
|
||||
@ -4331,9 +4331,28 @@ static int wl12xx_set_bitrate_mask(struct ieee80211_hw *hw,
|
||||
wl1271_tx_enabled_rates_get(wl,
|
||||
mask->control[i].legacy,
|
||||
i);
|
||||
|
||||
if (unlikely(wl->state == WL1271_STATE_OFF))
|
||||
goto out;
|
||||
|
||||
if (wlvif->bss_type == BSS_TYPE_STA_BSS &&
|
||||
!test_bit(WLVIF_FLAG_STA_ASSOCIATED, &wlvif->flags)) {
|
||||
|
||||
ret = wl1271_ps_elp_wakeup(wl);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
|
||||
wl1271_set_band_rate(wl, wlvif);
|
||||
wlvif->basic_rate =
|
||||
wl1271_tx_min_rate_get(wl, wlvif->basic_rate_set);
|
||||
ret = wl1271_acx_sta_rate_policies(wl, wlvif);
|
||||
|
||||
wl1271_ps_elp_sleep(wl);
|
||||
}
|
||||
out:
|
||||
mutex_unlock(&wl->mutex);
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void wl12xx_op_channel_switch(struct ieee80211_hw *hw,
|
||||
|
Loading…
Reference in New Issue
Block a user