rt2x00: Use correct TBTT_SYNC config in AP mode
This seems to fix problems with some powersaving clients since a positive value in TBTT_SYNC_CFG_TBTT_ADJUST introduces beacon skew, which is not wanted in AP mode. Also update the rest of the TBTT_SYNC config according to the legacy drivers in AP mode. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
10e11568ca
commit
15a533c47f
1 changed files with 19 additions and 0 deletions
|
@ -1245,6 +1245,25 @@ void rt2800_config_intf(struct rt2x00_dev *rt2x00dev, struct rt2x00_intf *intf,
|
|||
rt2800_register_read(rt2x00dev, BCN_TIME_CFG, ®);
|
||||
rt2x00_set_field32(®, BCN_TIME_CFG_TSF_SYNC, conf->sync);
|
||||
rt2800_register_write(rt2x00dev, BCN_TIME_CFG, reg);
|
||||
|
||||
if (conf->sync == TSF_SYNC_AP_NONE) {
|
||||
/*
|
||||
* Tune beacon queue transmit parameters for AP mode
|
||||
*/
|
||||
rt2800_register_read(rt2x00dev, TBTT_SYNC_CFG, ®);
|
||||
rt2x00_set_field32(®, TBTT_SYNC_CFG_BCN_CWMIN, 0);
|
||||
rt2x00_set_field32(®, TBTT_SYNC_CFG_BCN_AIFSN, 1);
|
||||
rt2x00_set_field32(®, TBTT_SYNC_CFG_BCN_EXP_WIN, 32);
|
||||
rt2x00_set_field32(®, TBTT_SYNC_CFG_TBTT_ADJUST, 0);
|
||||
rt2800_register_write(rt2x00dev, TBTT_SYNC_CFG, reg);
|
||||
} else {
|
||||
rt2800_register_read(rt2x00dev, TBTT_SYNC_CFG, ®);
|
||||
rt2x00_set_field32(®, TBTT_SYNC_CFG_BCN_CWMIN, 4);
|
||||
rt2x00_set_field32(®, TBTT_SYNC_CFG_BCN_AIFSN, 2);
|
||||
rt2x00_set_field32(®, TBTT_SYNC_CFG_BCN_EXP_WIN, 32);
|
||||
rt2x00_set_field32(®, TBTT_SYNC_CFG_TBTT_ADJUST, 16);
|
||||
rt2800_register_write(rt2x00dev, TBTT_SYNC_CFG, reg);
|
||||
}
|
||||
}
|
||||
|
||||
if (flags & CONFIG_UPDATE_MAC) {
|
||||
|
|
Loading…
Reference in a new issue