mac80211: update to wireless-testing 2014-05-19
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / 600-0029-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch
1 From c49b2d829aa1c816a46a577cdec6d2ff14d9f06e Mon Sep 17 00:00:00 2001
2 From: Gabor Juhos <juhosg@openwrt.org>
3 Date: Tue, 1 Oct 2013 15:40:08 +0200
4 Subject: [PATCH] rt2x00: rt2800lib: fix VGC setup for RT3883
5
6 Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
7 ---
8 drivers/net/wireless/rt2x00/rt2800lib.c | 11 +++++++++--
9 1 file changed, 9 insertions(+), 2 deletions(-)
10
11 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
12 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
13 @@ -4780,7 +4780,8 @@ static u8 rt2800_get_default_vgc(struct
14 else
15 vgc = 0x2e + rt2x00dev->lna_gain;
16 } else { /* 5GHZ band */
17 - if (rt2x00_rt(rt2x00dev, RT3593))
18 + if (rt2x00_rt(rt2x00dev, RT3593) ||
19 + rt2x00_rt(rt2x00dev, RT3883))
20 vgc = 0x20 + (rt2x00dev->lna_gain * 5) / 3;
21 else if (rt2x00_rt(rt2x00dev, RT5592))
22 vgc = 0x24 + (2 * rt2x00dev->lna_gain);
23 @@ -4800,7 +4801,8 @@ static inline void rt2800_set_vgc(struct
24 {
25 if (qual->vgc_level != vgc_level) {
26 if (rt2x00_rt(rt2x00dev, RT3572) ||
27 - rt2x00_rt(rt2x00dev, RT3593)) {
28 + rt2x00_rt(rt2x00dev, RT3593) ||
29 + rt2x00_rt(rt2x00dev, RT3883)) {
30 rt2800_bbp_write_with_rx_chain(rt2x00dev, 66,
31 vgc_level);
32 } else if (rt2x00_rt(rt2x00dev, RT5592)) {
33 @@ -4847,6 +4849,11 @@ void rt2800_link_tuner(struct rt2x00_dev
34 }
35 break;
36
37 + case RT3883:
38 + if (qual->rssi > -65)
39 + vgc += 0x10;
40 + break;
41 +
42 case RT5592:
43 if (qual->rssi > -65)
44 vgc += 0x20;