mac80211: update to wireless-testing 2017-01-31
[openwrt/staging/lynxis.git] / package / kernel / mac80211 / patches / 600-09-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch
diff --git a/package/kernel/mac80211/patches/600-09-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch b/package/kernel/mac80211/patches/600-09-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch
new file mode 100644 (file)
index 0000000..41ed4d3
--- /dev/null
@@ -0,0 +1,71 @@
+From 84833056aa7dd25f5b097e31c78f2a0914c5160c Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 24 Mar 2013 19:26:26 +0100
+Subject: [PATCH] rt2x00: rt2800lib: add BBP register initialization for
+ RT3883
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/wireless/ralink/rt2x00/rt2800lib.c |   44 +++++++++++++++++++++++++++++++
+ 1 file changed, 44 insertions(+)
+
+--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+@@ -5767,6 +5767,47 @@ static void rt2800_init_bbp_3593(struct
+               rt2800_bbp_write(rt2x00dev, 103, 0xc0);
+ }
++static void rt2800_init_bbp_3883(struct rt2x00_dev *rt2x00dev)
++{
++      rt2800_init_bbp_early(rt2x00dev);
++
++      rt2800_bbp_write(rt2x00dev, 4, 0x50);
++      rt2800_bbp_write(rt2x00dev, 47, 0x48);
++
++      rt2800_bbp_write(rt2x00dev, 86, 0x46);
++      rt2800_bbp_write(rt2x00dev, 88, 0x90);
++
++      rt2800_bbp_write(rt2x00dev, 92, 0x02);
++
++      rt2800_bbp_write(rt2x00dev, 103, 0xc0);
++      rt2800_bbp_write(rt2x00dev, 104, 0x92);
++      rt2800_bbp_write(rt2x00dev, 105, 0x34);
++      rt2800_bbp_write(rt2x00dev, 106, 0x12);
++      rt2800_bbp_write(rt2x00dev, 120, 0x50);
++      rt2800_bbp_write(rt2x00dev, 137, 0x0f);
++      rt2800_bbp_write(rt2x00dev, 163, 0x9d);
++
++      /* Set ITxBF timeout to 0x9C40=1000msec */
++      rt2800_bbp_write(rt2x00dev, 179, 0x02);
++      rt2800_bbp_write(rt2x00dev, 180, 0x00);
++      rt2800_bbp_write(rt2x00dev, 182, 0x40);
++      rt2800_bbp_write(rt2x00dev, 180, 0x01);
++      rt2800_bbp_write(rt2x00dev, 182, 0x9c);
++
++      rt2800_bbp_write(rt2x00dev, 179, 0x00);
++
++      /* Reprogram the inband interface to put right values in RXWI */
++      rt2800_bbp_write(rt2x00dev, 142, 0x04);
++      rt2800_bbp_write(rt2x00dev, 143, 0x3b);
++      rt2800_bbp_write(rt2x00dev, 142, 0x06);
++      rt2800_bbp_write(rt2x00dev, 143, 0xa0);
++      rt2800_bbp_write(rt2x00dev, 142, 0x07);
++      rt2800_bbp_write(rt2x00dev, 143, 0xa1);
++      rt2800_bbp_write(rt2x00dev, 142, 0x08);
++      rt2800_bbp_write(rt2x00dev, 143, 0xa2);
++      rt2800_bbp_write(rt2x00dev, 148, 0xc8);
++}
++
+ static void rt2800_init_bbp_53xx(struct rt2x00_dev *rt2x00dev)
+ {
+       int ant, div_mode;
+@@ -5986,6 +6027,9 @@ static void rt2800_init_bbp(struct rt2x0
+       case RT3593:
+               rt2800_init_bbp_3593(rt2x00dev);
+               return;
++      case RT3883:
++              rt2800_init_bbp_3883(rt2x00dev);
++              return;
+       case RT5390:
+       case RT5392:
+               rt2800_init_bbp_53xx(rt2x00dev);