[PATCH] rt2x00: Correct error in calculating rssi for link tuner
authorIvo van Doorn <ivdoorn@gmail.com>
Tue, 25 Sep 2007 18:53:20 +0000 (20:53 +0200)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 10 Oct 2007 23:53:01 +0000 (16:53 -0700)
The call to rt2x00lib_precalculate_link_signal resets link.rx_success
which is needed when calculating the average rssi for the link
tuner. Change the call order so the link tuner runs first as it
doesn't need the result of the precalculate.

Signed-off-by: Adam Baker <linux@baker-net.org.uk>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2x00dev.c

index bbccb89..4f66adc 100644 (file)
@@ -242,8 +242,6 @@ static void rt2x00lib_link_tuner(struct work_struct *work)
        rt2x00dev->low_level_stats.dot11FCSErrorCount +=
            rt2x00dev->link.rx_failed;
 
-       rt2x00lib_precalculate_link_signal(&rt2x00dev->link);
-
        /*
         * Only perform the link tuning when Link tuning
         * has been enabled (This could have been disabled from the EEPROM).
@@ -252,6 +250,12 @@ static void rt2x00lib_link_tuner(struct work_struct *work)
                rt2x00dev->ops->lib->link_tuner(rt2x00dev);
 
        /*
+        * Precalculate a portion of the link signal which is
+        * in based on the tx/rx success/failure counters.
+        */
+       rt2x00lib_precalculate_link_signal(&rt2x00dev->link);
+
+       /*
         * Increase tuner counter, and reschedule the next link tuner run.
         */
        rt2x00dev->link.count++;