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 3a150d3a9d9fb5097e9dbb9fde014a2b629748cf..8706702b69a2bdc2a659d5a9228ede6eeabb442a 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);
 
                /*