aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorHelmut Schaa <helmut.schaa@googlemail.com>2010-05-06 06:29:04 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-05-07 14:55:53 -0400
commita21c2ab4210a89a71a0a99685acf16ae126b2eee (patch)
treedb13a92479efcf154d6deccec2a4377232a3298b /drivers/net/wireless
parent9c6dda4e2dfea970a7105e3805f0195bc3079f2f (diff)
rt2x00: rt2800: update initial SIFS values
Currently the CCK and OFDM SIFS value is set to 32us. This value is neither used by the Ralink driver nor specified in 802.11. Instead of using 10us for CCK SIFS (as defined in 802.11) use 16us like in the Ralink drivers. And indeed using a SIFS value of 10us breaks connectivity with 11g + CTS protected connections. Add a comment to the code why we don't use 10us for CCK SIFS value. The OFDM SIFS value is set to 16us (as defined in 802.11 and also used by the Ralink drivers). Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800lib.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 6d2c66d9b290..11a0d8b6235d 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -1414,9 +1414,16 @@ int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
1414 1414
1415 rt2800_register_write(rt2x00dev, EXP_ACK_TIME, 0x002400ca); 1415 rt2800_register_write(rt2x00dev, EXP_ACK_TIME, 0x002400ca);
1416 1416
1417 /*
1418 * Usually the CCK SIFS time should be set to 10 and the OFDM SIFS
1419 * time should be set to 16. However, the original Ralink driver uses
1420 * 16 for both and indeed using a value of 10 for CCK SIFS results in
1421 * connection problems with 11g + CTS protection. Hence, use the same
1422 * defaults as the Ralink driver: 16 for both, CCK and OFDM SIFS.
1423 */
1417 rt2800_register_read(rt2x00dev, XIFS_TIME_CFG, &reg); 1424 rt2800_register_read(rt2x00dev, XIFS_TIME_CFG, &reg);
1418 rt2x00_set_field32(&reg, XIFS_TIME_CFG_CCKM_SIFS_TIME, 32); 1425 rt2x00_set_field32(&reg, XIFS_TIME_CFG_CCKM_SIFS_TIME, 16);
1419 rt2x00_set_field32(&reg, XIFS_TIME_CFG_OFDM_SIFS_TIME, 32); 1426 rt2x00_set_field32(&reg, XIFS_TIME_CFG_OFDM_SIFS_TIME, 16);
1420 rt2x00_set_field32(&reg, XIFS_TIME_CFG_OFDM_XIFS_TIME, 4); 1427 rt2x00_set_field32(&reg, XIFS_TIME_CFG_OFDM_XIFS_TIME, 4);
1421 rt2x00_set_field32(&reg, XIFS_TIME_CFG_EIFS, 314); 1428 rt2x00_set_field32(&reg, XIFS_TIME_CFG_EIFS, 314);
1422 rt2x00_set_field32(&reg, XIFS_TIME_CFG_BB_RXEND_ENABLE, 1); 1429 rt2x00_set_field32(&reg, XIFS_TIME_CFG_BB_RXEND_ENABLE, 1);