| From 0beb1bbf19c72f17809e42b8f33522a55c2cc18c Mon Sep 17 00:00:00 2001 |
| From: Gabor Juhos <juhosg@openwrt.org> |
| Date: Thu, 3 Oct 2013 20:00:40 +0200 |
| Subject: rt2x00: rt2800lib: fix VGC adjustment for RT5592 |
| |
| From: Gabor Juhos <juhosg@openwrt.org> |
| |
| 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 | 11 +++++++---- |
| 1 file changed, 7 insertions(+), 4 deletions(-) |
| |
| --- a/drivers/net/wireless/rt2x00/rt2800lib.c |
| +++ b/drivers/net/wireless/rt2x00/rt2800lib.c |
| @@ -3400,10 +3400,13 @@ void rt2800_link_tuner(struct rt2x00_dev |
| |
| 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); |
| } |