OSDN Git Service

rt2x00: Fix rt2800 retry calculation
authorIvo van Doorn <ivdoorn@gmail.com>
Mon, 23 Aug 2010 17:55:01 +0000 (19:55 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 25 Aug 2010 18:34:55 +0000 (14:34 -0400)
The retry count for a frame is calculated by the realized MCS rate
subtracting of the requested MCS rate. However during TX done reporting
we accidently override the requested MCS rate with the realized MCS
rate. This causes the retry count to be reset to 0 always, and feeding
invalid rate information into minstrel_ht.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Acked-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2800lib.c

index 3a150d3..8706702 100644 (file)
@@ -650,7 +650,6 @@ void rt2800_txdone(struct rt2x00_dev *rt2x00dev)
                txdesc.flags = 0;
                rt2x00_desc_read(txwi, 0, &word);
                mcs = rt2x00_get_field32(word, TXWI_W0_MCS);
-               mcs = rt2x00_get_field32(reg, TX_STA_FIFO_MCS);
                real_mcs = rt2x00_get_field32(reg, TX_STA_FIFO_MCS);
 
                /*