Skip to content

Commit

Permalink
wl12xx: reconfigure rate policies on set_bitrate_mask
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Eliad Peller authored and Luciano Coelho committed Nov 8, 2011
1 parent 679a673 commit d6fa37c
Showing 1 changed file with 21 additions and 2 deletions.
23 changes: 21 additions & 2 deletions drivers/net/wireless/wl12xx/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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,
Expand Down

0 comments on commit d6fa37c

Please sign in to comment.