rt2x00: rt2800lib: fix VGC adjustment for RT5592
authorGabor Juhos <juhosg@openwrt.org>
Thu, 3 Oct 2013 18:00:40 +0000 (20:00 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Nov 2013 19:11:44 +0000 (11:11 -0800)
commit 0beb1bbf19c72f17809e42b8f33522a55c2cc18c upstream.

In commit 3d81535ea5940446510a8a5cee1c6ad23c90c753
(rt2800: 5592: add chip specific vgc calculations)
the rt2800_link_tuner function has been modified to
adjust VGC level for the RT5592 chipset.

On the RT5592 chipset, the VGC level must be adjusted
only if rssi is greater than -65. However the current
code adjusts the VGC value by 0x10 regardless of the
actual chipset if the rssi value is between -80 and
-65.

Fix the broken behaviour by reordering the if-else
statements.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/rt2x00/rt2800lib.c

index f281971919f5356ef4344e9fdc92de1b9241298a..12652d204f7e77b9c2433cd53400969fb509c9ab 100644 (file)
@@ -3400,10 +3400,13 @@ void rt2800_link_tuner(struct rt2x00_dev *rt2x00dev, struct link_qual *qual,
 
        vgc = rt2800_get_default_vgc(rt2x00dev);
 
-       if (rt2x00_rt(rt2x00dev, RT5592) && qual->rssi > -65)
-               vgc += 0x20;
-       else if (qual->rssi > -80)
-               vgc += 0x10;
+       if (rt2x00_rt(rt2x00dev, RT5592)) {
+               if (qual->rssi > -65)
+                       vgc += 0x20;
+       } else {
+               if (qual->rssi > -80)
+                       vgc += 0x10;
+       }
 
        rt2800_set_vgc(rt2x00dev, qual, vgc);
 }