aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-12-02 12:20:04 -0500
committerJohn W. Linville <linville@tuxdriver.com>2008-12-05 09:35:50 -0500
commit42c8285767dd17f450d986bdb163a8d56fb0330a (patch)
treed7c97c2e14faf69a448190c111bb482672a0caf2
parent1ce9cdac482f0dfbbd22ba4b3e5c016a05543a42 (diff)
rt2x00: Store retry limit values
Store retry limit values in the rt2x00dev structure. This allows the removal of the FIXME where we assumed the long retry is only used when working with RTS frames. Instead we should check the current retry limit values and decide if the required retry count for this frame is a long or short retry. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00.h6
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00config.c2
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00queue.c9
3 files changed, 9 insertions, 8 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index 780ba7365810..e7ed56dcf684 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -803,6 +803,12 @@ struct rt2x00_dev {
803 u16 tx_power; 803 u16 tx_power;
804 804
805 /* 805 /*
806 * Current retry values.
807 */
808 u8 short_retry;
809 u8 long_retry;
810
811 /*
806 * Rssi <-> Dbm offset 812 * Rssi <-> Dbm offset
807 */ 813 */
808 u8 rssi_offset; 814 u8 rssi_offset;
diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c
index 7c62ce125b94..b3bc8b49be83 100644
--- a/drivers/net/wireless/rt2x00/rt2x00config.c
+++ b/drivers/net/wireless/rt2x00/rt2x00config.c
@@ -194,6 +194,8 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
194 194
195 rt2x00dev->curr_band = conf->channel->band; 195 rt2x00dev->curr_band = conf->channel->band;
196 rt2x00dev->tx_power = conf->power_level; 196 rt2x00dev->tx_power = conf->power_level;
197 rt2x00dev->short_retry = conf->short_frame_max_tx_count;
198 rt2x00dev->long_retry = conf->long_frame_max_tx_count;
197 199
198 rt2x00dev->rx_status.band = conf->channel->band; 200 rt2x00dev->rx_status.band = conf->channel->band;
199 rt2x00dev->rx_status.freq = conf->channel->center_freq; 201 rt2x00dev->rx_status.freq = conf->channel->center_freq;
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
index b8de9d2750e4..7f908a17e368 100644
--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
@@ -231,14 +231,7 @@ static void rt2x00queue_create_tx_descriptor(struct queue_entry *entry,
231 * Determine retry information. 231 * Determine retry information.
232 */ 232 */
233 txdesc->retry_limit = tx_info->control.rates[0].count - 1; 233 txdesc->retry_limit = tx_info->control.rates[0].count - 1;
234 /* 234 if (txdesc->retry_limit >= rt2x00dev->long_retry)
235 * XXX: If at this point we knew whether the HW is going to use
236 * the RETRY_MODE bit or the retry_limit (currently all
237 * use the RETRY_MODE bit) we could do something like b43
238 * does, set the RETRY_MODE bit when the RC algorithm is
239 * requesting more than the long retry limit.
240 */
241 if (tx_info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS)
242 __set_bit(ENTRY_TXD_RETRY_MODE, &txdesc->flags); 235 __set_bit(ENTRY_TXD_RETRY_MODE, &txdesc->flags);
243 236
244 /* 237 /*