aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00
diff options
context:
space:
mode:
authorHelmut Schaa <helmut.schaa@googlemail.com>2010-06-14 16:12:01 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-06-15 16:00:50 -0400
commit3f2bee249926194313f7001bdfedb9c9634a48fc (patch)
tree55493f5c9f9c1f8c3c527cf1336463769859cfa3 /drivers/net/wireless/rt2x00
parenta3f84ca4b8dc31d0034a8b23194a4470766c938c (diff)
rt2x00: provide mac80211 a suitable max_rates value
Set up max_rates and max_rate_tries with suitable values even if we do not support the whole functionality. As rt2800 has a global fallback table we cannot specify more then one tx rate per frame but since the hw will try several different rates (based on the fallback table) we should still initialize max_rates to the maximum number of rates we are going to try. Otherwise mac80211 will truncate our reported tx rates and the rc algortihm will end up with incorrect data choosing unsuitable rates for tx. This improves throughput on rt2800 devices considerable. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800lib.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index f15832245e0e..6d4df3e79be4 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -2497,6 +2497,18 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
2497 rt2x00_eeprom_addr(rt2x00dev, 2497 rt2x00_eeprom_addr(rt2x00dev,
2498 EEPROM_MAC_ADDR_0)); 2498 EEPROM_MAC_ADDR_0));
2499 2499
2500 /*
2501 * As rt2800 has a global fallback table we cannot specify
2502 * more then one tx rate per frame but since the hw will
2503 * try several rates (based on the fallback table) we should
2504 * still initialize max_rates to the maximum number of rates
2505 * we are going to try. Otherwise mac80211 will truncate our
2506 * reported tx rates and the rc algortihm will end up with
2507 * incorrect data.
2508 */
2509 rt2x00dev->hw->max_rates = 7;
2510 rt2x00dev->hw->max_rate_tries = 1;
2511
2500 rt2x00_eeprom_read(rt2x00dev, EEPROM_ANTENNA, &eeprom); 2512 rt2x00_eeprom_read(rt2x00dev, EEPROM_ANTENNA, &eeprom);
2501 2513
2502 /* 2514 /*