mac80211: rtl: update RTL8821AE PHY/RF parameters
authorRui Salvaterra <rsalvaterra@gmail.com>
Mon, 8 Mar 2021 15:28:51 +0000 (15:28 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 19 Mar 2021 00:25:26 +0000 (01:25 +0100)
Create a new directory for Realtek patches and backport the updated PHY and RF
parameters patch. Improves the connectivity in the 5 GHz band [1].

[1] https://patchwork.kernel.org/project/linux-wireless/patch/20210219052607.7323-1-pkshih@realtek.com/#23988567

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
package/kernel/mac80211/Makefile
package/kernel/mac80211/patches/rtl/001-v5.12-rtlwifi-8821ae-upgrade-PHY-and-RF-parameters.patch [new file with mode: 0644]

index f6ad06452f44906cff25701d181269edb6da553f..b92df681cb2b8de2eabf19fc74a088e5371f1dea 100644 (file)
@@ -504,6 +504,7 @@ define Build/Patch
        $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
        $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
        $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
+       $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
        $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
 endef
 
@@ -514,6 +515,7 @@ define Quilt/Refresh/Package
        $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
        $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
        $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
+       $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
 endef
 
 define Build/Compile
diff --git a/package/kernel/mac80211/patches/rtl/001-v5.12-rtlwifi-8821ae-upgrade-PHY-and-RF-parameters.patch b/package/kernel/mac80211/patches/rtl/001-v5.12-rtlwifi-8821ae-upgrade-PHY-and-RF-parameters.patch
new file mode 100644 (file)
index 0000000..7b6cd99
--- /dev/null
@@ -0,0 +1,817 @@
+From 8f392a72419c4b10e84e635e51bee24670975364 Mon Sep 17 00:00:00 2001
+From: Ping-Ke Shih <pkshih@realtek.com>
+Date: Fri, 19 Feb 2021 13:26:07 +0800
+Subject: [PATCH] rtlwifi: 8821ae: upgrade PHY and RF parameters
+
+New parameters with new format and its parser are updated by the
+commit 84d26fda52e2 ("rtlwifi: Update 8821ae new phy parameters and its parser."),
+but some parameters are missing. Use this commit to update to the novel
+parameters that use new format.
+
+Fixes: 84d26fda52e2 ("rtlwifi: Update 8821ae new phy parameters and its parser")
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+---
+ .../realtek/rtlwifi/rtl8821ae/table.c         | 500 +++++++++++++-----
+ 1 file changed, 370 insertions(+), 130 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/table.c
++++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/table.c
+@@ -249,7 +249,7 @@ u32 RTL8821AE_PHY_REG_ARRAY[] = {
+       0x824, 0x00030FE0,
+       0x828, 0x00000000,
+       0x82C, 0x002081DD,
+-      0x830, 0x2AAA8E24,
++      0x830, 0x2AAAEEC8,
+       0x834, 0x0037A706,
+       0x838, 0x06489B44,
+       0x83C, 0x0000095B,
+@@ -324,10 +324,10 @@ u32 RTL8821AE_PHY_REG_ARRAY[] = {
+       0x9D8, 0x00000000,
+       0x9DC, 0x00000000,
+       0x9E0, 0x00005D00,
+-      0x9E4, 0x00000002,
++      0x9E4, 0x00000003,
+       0x9E8, 0x00000001,
+       0xA00, 0x00D047C8,
+-      0xA04, 0x01FF000C,
++      0xA04, 0x01FF800C,
+       0xA08, 0x8C8A8300,
+       0xA0C, 0x2E68000F,
+       0xA10, 0x9500BB78,
+@@ -1320,7 +1320,11 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x083, 0x00021800,
+               0x084, 0x00028000,
+               0x085, 0x00048000,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
++              0x086, 0x0009483A,
++      0xA0000000,     0x00000000,
+               0x086, 0x00094838,
++      0xB0000000,     0x00000000,
+               0x087, 0x00044980,
+               0x088, 0x00048000,
+               0x089, 0x0000D480,
+@@ -1409,36 +1413,32 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x03C, 0x000CA000,
+               0x0EF, 0x00000000,
+               0x0EF, 0x00001100,
+-      0xFF0F0104, 0xABCD,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x0004ADF3,
+               0x034, 0x00049DF0,
+-      0xFF0F0204, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x0004ADF3,
+               0x034, 0x00049DF0,
+-      0xFF0F0404, 0xCDEF,
+-              0x034, 0x0004ADF3,
+-              0x034, 0x00049DF0,
+-      0xFF0F0200, 0xCDEF,
++      0x90000210,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x0004ADF5,
+               0x034, 0x00049DF2,
+-      0xFF0F02C0, 0xCDEF,
++      0x9000020c,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x0004A0F3,
++              0x034, 0x000490B1,
++              0x9000040c,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x0004A0F3,
+               0x034, 0x000490B1,
+-      0xCDCDCDCD, 0xCDCD,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x0004ADF5,
++              0x034, 0x00049DF2,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x0004ADF3,
++              0x034, 0x00049DF0,
++      0xA0000000,     0x00000000,
+               0x034, 0x0004ADF7,
+               0x034, 0x00049DF3,
+-      0xFF0F0104, 0xDEAD,
+-      0xFF0F0104, 0xABCD,
+-              0x034, 0x00048DED,
+-              0x034, 0x00047DEA,
+-              0x034, 0x00046DE7,
+-              0x034, 0x00045CE9,
+-              0x034, 0x00044CE6,
+-              0x034, 0x000438C6,
+-              0x034, 0x00042886,
+-              0x034, 0x00041486,
+-              0x034, 0x00040447,
+-      0xFF0F0204, 0xCDEF,
++      0xB0000000,     0x00000000,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x00048DED,
+               0x034, 0x00047DEA,
+               0x034, 0x00046DE7,
+@@ -1448,7 +1448,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x00042886,
+               0x034, 0x00041486,
+               0x034, 0x00040447,
+-      0xFF0F0404, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x00048DED,
+               0x034, 0x00047DEA,
+               0x034, 0x00046DE7,
+@@ -1458,7 +1458,17 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x00042886,
+               0x034, 0x00041486,
+               0x034, 0x00040447,
+-      0xFF0F02C0, 0xCDEF,
++      0x9000020c,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x000480AE,
++              0x034, 0x000470AB,
++              0x034, 0x0004608B,
++              0x034, 0x00045069,
++              0x034, 0x00044048,
++              0x034, 0x00043045,
++              0x034, 0x00042026,
++              0x034, 0x00041023,
++              0x034, 0x00040002,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x000480AE,
+               0x034, 0x000470AB,
+               0x034, 0x0004608B,
+@@ -1468,7 +1478,17 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x00042026,
+               0x034, 0x00041023,
+               0x034, 0x00040002,
+-      0xCDCDCDCD, 0xCDCD,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x00048DED,
++              0x034, 0x00047DEA,
++              0x034, 0x00046DE7,
++              0x034, 0x00045CE9,
++              0x034, 0x00044CE6,
++              0x034, 0x000438C6,
++              0x034, 0x00042886,
++              0x034, 0x00041486,
++              0x034, 0x00040447,
++      0xA0000000,     0x00000000,
+               0x034, 0x00048DEF,
+               0x034, 0x00047DEC,
+               0x034, 0x00046DE9,
+@@ -1478,38 +1498,36 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x0004248A,
+               0x034, 0x0004108D,
+               0x034, 0x0004008A,
+-      0xFF0F0104, 0xDEAD,
+-      0xFF0F0200, 0xABCD,
++      0xB0000000,     0x00000000,
++      0x80000210,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x0002ADF4,
+-      0xFF0F02C0, 0xCDEF,
++      0x9000020c,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x0002A0F3,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x0002A0F3,
+-      0xCDCDCDCD, 0xCDCD,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x0002ADF4,
++      0xA0000000,     0x00000000,
+               0x034, 0x0002ADF7,
+-      0xFF0F0200, 0xDEAD,
+-      0xFF0F0104, 0xABCD,
+-              0x034, 0x00029DF4,
+-      0xFF0F0204, 0xCDEF,
++      0xB0000000,     0x00000000,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x00029DF4,
+-      0xFF0F0404, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x00029DF4,
+-      0xFF0F0200, 0xCDEF,
++      0x90000210,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x00029DF1,
+-      0xFF0F02C0, 0xCDEF,
++      0x9000020c,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x000290F0,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x000290F0,
+-      0xCDCDCDCD, 0xCDCD,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x00029DF1,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x00029DF4,
++      0xA0000000,     0x00000000,
+               0x034, 0x00029DF2,
+-      0xFF0F0104, 0xDEAD,
+-      0xFF0F0104, 0xABCD,
+-              0x034, 0x00028DF1,
+-              0x034, 0x00027DEE,
+-              0x034, 0x00026DEB,
+-              0x034, 0x00025CEC,
+-              0x034, 0x00024CE9,
+-              0x034, 0x000238CA,
+-              0x034, 0x00022889,
+-              0x034, 0x00021489,
+-              0x034, 0x0002044A,
+-      0xFF0F0204, 0xCDEF,
++      0xB0000000,     0x00000000,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x00028DF1,
+               0x034, 0x00027DEE,
+               0x034, 0x00026DEB,
+@@ -1519,7 +1537,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x00022889,
+               0x034, 0x00021489,
+               0x034, 0x0002044A,
+-      0xFF0F0404, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x00028DF1,
+               0x034, 0x00027DEE,
+               0x034, 0x00026DEB,
+@@ -1529,7 +1547,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x00022889,
+               0x034, 0x00021489,
+               0x034, 0x0002044A,
+-      0xFF0F02C0, 0xCDEF,
++      0x9000020c,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x000280AF,
+               0x034, 0x000270AC,
+               0x034, 0x0002608B,
+@@ -1539,7 +1557,27 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x00022026,
+               0x034, 0x00021023,
+               0x034, 0x00020002,
+-      0xCDCDCDCD, 0xCDCD,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x000280AF,
++              0x034, 0x000270AC,
++              0x034, 0x0002608B,
++              0x034, 0x00025069,
++              0x034, 0x00024048,
++              0x034, 0x00023045,
++              0x034, 0x00022026,
++              0x034, 0x00021023,
++              0x034, 0x00020002,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x00028DF1,
++              0x034, 0x00027DEE,
++              0x034, 0x00026DEB,
++              0x034, 0x00025CEC,
++              0x034, 0x00024CE9,
++              0x034, 0x000238CA,
++              0x034, 0x00022889,
++              0x034, 0x00021489,
++              0x034, 0x0002044A,
++      0xA0000000,     0x00000000,
+               0x034, 0x00028DEE,
+               0x034, 0x00027DEB,
+               0x034, 0x00026CCD,
+@@ -1549,27 +1587,24 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x00022849,
+               0x034, 0x00021449,
+               0x034, 0x0002004D,
+-      0xFF0F0104, 0xDEAD,
+-      0xFF0F02C0, 0xABCD,
++      0xB0000000,     0x00000000,
++      0x8000020c,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x0000A0D7,
++              0x034, 0x000090D3,
++              0x034, 0x000080B1,
++              0x034, 0x000070AE,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x0000A0D7,
+               0x034, 0x000090D3,
+               0x034, 0x000080B1,
+               0x034, 0x000070AE,
+-      0xCDCDCDCD, 0xCDCD,
++      0xA0000000,     0x00000000,
+               0x034, 0x0000ADF7,
+               0x034, 0x00009DF4,
+               0x034, 0x00008DF1,
+               0x034, 0x00007DEE,
+-      0xFF0F02C0, 0xDEAD,
+-      0xFF0F0104, 0xABCD,
+-              0x034, 0x00006DEB,
+-              0x034, 0x00005CEC,
+-              0x034, 0x00004CE9,
+-              0x034, 0x000038CA,
+-              0x034, 0x00002889,
+-              0x034, 0x00001489,
+-              0x034, 0x0000044A,
+-      0xFF0F0204, 0xCDEF,
++      0xB0000000,     0x00000000,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x00006DEB,
+               0x034, 0x00005CEC,
+               0x034, 0x00004CE9,
+@@ -1577,7 +1612,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x00002889,
+               0x034, 0x00001489,
+               0x034, 0x0000044A,
+-      0xFF0F0404, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x00006DEB,
+               0x034, 0x00005CEC,
+               0x034, 0x00004CE9,
+@@ -1585,7 +1620,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x00002889,
+               0x034, 0x00001489,
+               0x034, 0x0000044A,
+-      0xFF0F02C0, 0xCDEF,
++      0x9000020c,     0x00000000,     0x40000000,     0x00000000,
+               0x034, 0x0000608D,
+               0x034, 0x0000506B,
+               0x034, 0x0000404A,
+@@ -1593,7 +1628,23 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x00002044,
+               0x034, 0x00001025,
+               0x034, 0x00000004,
+-      0xCDCDCDCD, 0xCDCD,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x0000608D,
++              0x034, 0x0000506B,
++              0x034, 0x0000404A,
++              0x034, 0x00003047,
++              0x034, 0x00002044,
++              0x034, 0x00001025,
++              0x034, 0x00000004,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
++              0x034, 0x00006DEB,
++              0x034, 0x00005CEC,
++              0x034, 0x00004CE9,
++              0x034, 0x000038CA,
++              0x034, 0x00002889,
++              0x034, 0x00001489,
++              0x034, 0x0000044A,
++      0xA0000000,     0x00000000,
+               0x034, 0x00006DCD,
+               0x034, 0x00005CCD,
+               0x034, 0x00004CCA,
+@@ -1601,11 +1652,11 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x034, 0x00002888,
+               0x034, 0x00001488,
+               0x034, 0x00000486,
+-      0xFF0F0104, 0xDEAD,
++      0xB0000000,     0x00000000,
+               0x0EF, 0x00000000,
+               0x018, 0x0001712A,
+               0x0EF, 0x00000040,
+-      0xFF0F0104, 0xABCD,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x035, 0x00000187,
+               0x035, 0x00008187,
+               0x035, 0x00010187,
+@@ -1615,7 +1666,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x035, 0x00040188,
+               0x035, 0x00048188,
+               0x035, 0x00050188,
+-      0xFF0F0204, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x035, 0x00000187,
+               0x035, 0x00008187,
+               0x035, 0x00010187,
+@@ -1625,7 +1676,37 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x035, 0x00040188,
+               0x035, 0x00048188,
+               0x035, 0x00050188,
+-      0xFF0F0404, 0xCDEF,
++      0x90000210,     0x00000000,     0x40000000,     0x00000000,
++              0x035, 0x00000128,
++              0x035, 0x00008128,
++              0x035, 0x00010128,
++              0x035, 0x000201C8,
++              0x035, 0x000281C8,
++              0x035, 0x000301C8,
++              0x035, 0x000401C8,
++              0x035, 0x000481C8,
++              0x035, 0x000501C8,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
++              0x035, 0x00000145,
++              0x035, 0x00008145,
++              0x035, 0x00010145,
++              0x035, 0x00020196,
++              0x035, 0x00028196,
++              0x035, 0x00030196,
++              0x035, 0x000401C7,
++              0x035, 0x000481C7,
++              0x035, 0x000501C7,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x035, 0x00000128,
++              0x035, 0x00008128,
++              0x035, 0x00010128,
++              0x035, 0x000201C8,
++              0x035, 0x000281C8,
++              0x035, 0x000301C8,
++              0x035, 0x000401C8,
++              0x035, 0x000481C8,
++              0x035, 0x000501C8,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
+               0x035, 0x00000187,
+               0x035, 0x00008187,
+               0x035, 0x00010187,
+@@ -1635,7 +1716,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x035, 0x00040188,
+               0x035, 0x00048188,
+               0x035, 0x00050188,
+-      0xCDCDCDCD, 0xCDCD,
++      0xA0000000,     0x00000000,
+               0x035, 0x00000145,
+               0x035, 0x00008145,
+               0x035, 0x00010145,
+@@ -1645,11 +1726,11 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x035, 0x000401C7,
+               0x035, 0x000481C7,
+               0x035, 0x000501C7,
+-      0xFF0F0104, 0xDEAD,
++      0xB0000000,     0x00000000,
+               0x0EF, 0x00000000,
+               0x018, 0x0001712A,
+               0x0EF, 0x00000010,
+-      0xFF0F0104, 0xABCD,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x036, 0x00085733,
+               0x036, 0x0008D733,
+               0x036, 0x00095733,
+@@ -1662,7 +1743,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x036, 0x000CE4B4,
+               0x036, 0x000D64B4,
+               0x036, 0x000DE4B4,
+-      0xFF0F0204, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x036, 0x00085733,
+               0x036, 0x0008D733,
+               0x036, 0x00095733,
+@@ -1675,7 +1756,46 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x036, 0x000CE4B4,
+               0x036, 0x000D64B4,
+               0x036, 0x000DE4B4,
+-      0xFF0F0404, 0xCDEF,
++      0x90000210,     0x00000000,     0x40000000,     0x00000000,
++              0x036, 0x000063B5,
++              0x036, 0x0000E3B5,
++              0x036, 0x000163B5,
++              0x036, 0x0001E3B5,
++              0x036, 0x000263B5,
++              0x036, 0x0002E3B5,
++              0x036, 0x000363B5,
++              0x036, 0x0003E3B5,
++              0x036, 0x000463B5,
++              0x036, 0x0004E3B5,
++              0x036, 0x000563B5,
++              0x036, 0x0005E3B5,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
++              0x036, 0x000056B3,
++              0x036, 0x0000D6B3,
++              0x036, 0x000156B3,
++              0x036, 0x0001D6B3,
++              0x036, 0x00026634,
++              0x036, 0x0002E634,
++              0x036, 0x00036634,
++              0x036, 0x0003E634,
++              0x036, 0x000467B4,
++              0x036, 0x0004E7B4,
++              0x036, 0x000567B4,
++              0x036, 0x0005E7B4,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x036, 0x000063B5,
++              0x036, 0x0000E3B5,
++              0x036, 0x000163B5,
++              0x036, 0x0001E3B5,
++              0x036, 0x000263B5,
++              0x036, 0x0002E3B5,
++              0x036, 0x000363B5,
++              0x036, 0x0003E3B5,
++              0x036, 0x000463B5,
++              0x036, 0x0004E3B5,
++              0x036, 0x000563B5,
++              0x036, 0x0005E3B5,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
+               0x036, 0x00085733,
+               0x036, 0x0008D733,
+               0x036, 0x00095733,
+@@ -1688,7 +1808,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x036, 0x000CE4B4,
+               0x036, 0x000D64B4,
+               0x036, 0x000DE4B4,
+-      0xCDCDCDCD, 0xCDCD,
++      0xA0000000,     0x00000000,
+               0x036, 0x000056B3,
+               0x036, 0x0000D6B3,
+               0x036, 0x000156B3,
+@@ -1701,103 +1821,162 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x036, 0x0004E7B4,
+               0x036, 0x000567B4,
+               0x036, 0x0005E7B4,
+-      0xFF0F0104, 0xDEAD,
++      0xB0000000,     0x00000000,
+               0x0EF, 0x00000000,
+               0x0EF, 0x00000008,
+-      0xFF0F0104, 0xABCD,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x03C, 0x000001C8,
+               0x03C, 0x00000492,
+-      0xFF0F0204, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x03C, 0x000001C8,
+               0x03C, 0x00000492,
+-      0xFF0F0404, 0xCDEF,
++      0x90000210,     0x00000000,     0x40000000,     0x00000000,
++              0x03C, 0x000001B6,
++              0x03C, 0x00000492,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
++              0x03C, 0x0000022A,
++              0x03C, 0x00000594,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x03C, 0x000001B6,
++              0x03C, 0x00000492,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
+               0x03C, 0x000001C8,
+               0x03C, 0x00000492,
+-      0xCDCDCDCD, 0xCDCD,
++      0xA0000000,     0x00000000,
+               0x03C, 0x0000022A,
+               0x03C, 0x00000594,
+-      0xFF0F0104, 0xDEAD,
+-      0xFF0F0104, 0xABCD,
++      0xB0000000,     0x00000000,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x03C, 0x00000800,
+-      0xFF0F0204, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x03C, 0x00000800,
+-      0xFF0F0404, 0xCDEF,
++      0x90000210,     0x00000000,     0x40000000,     0x00000000,
+               0x03C, 0x00000800,
+-      0xFF0F02C0, 0xCDEF,
++      0x9000020c,     0x00000000,     0x40000000,     0x00000000,
+               0x03C, 0x00000820,
+-      0xCDCDCDCD, 0xCDCD,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
++              0x03C, 0x00000820,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x03C, 0x00000800,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
++              0x03C, 0x00000800,
++      0xA0000000,     0x00000000,
+               0x03C, 0x00000900,
+-      0xFF0F0104, 0xDEAD,
++      0xB0000000,     0x00000000,
+               0x0EF, 0x00000000,
+               0x018, 0x0001712A,
+               0x0EF, 0x00000002,
+-      0xFF0F0104, 0xABCD,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x008, 0x0004E400,
+-      0xFF0F0204, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x008, 0x0004E400,
+-      0xFF0F0404, 0xCDEF,
++      0x90000210,     0x00000000,     0x40000000,     0x00000000,
++              0x008, 0x00002000,
++      0x9000020c,     0x00000000,     0x40000000,     0x00000000,
++              0x008, 0x00002000,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
++              0x008, 0x00002000,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x008, 0x00002000,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
+               0x008, 0x0004E400,
+-      0xCDCDCDCD, 0xCDCD,
++      0xA0000000,     0x00000000,
+               0x008, 0x00002000,
+-      0xFF0F0104, 0xDEAD,
++      0xB0000000,     0x00000000,
+               0x0EF, 0x00000000,
+               0x0DF, 0x000000C0,
+-              0x01F, 0x00040064,
+-      0xFF0F0104, 0xABCD,
++              0x01F, 0x00000064,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x058, 0x000A7284,
+               0x059, 0x000600EC,
+-      0xFF0F0204, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x058, 0x000A7284,
+               0x059, 0x000600EC,
+-      0xFF0F0404, 0xCDEF,
++      0x9000020c,     0x00000000,     0x40000000,     0x00000000,
++              0x058, 0x00081184,
++              0x059, 0x0006016C,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
++              0x058, 0x00081184,
++              0x059, 0x0006016C,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x058, 0x00081184,
++              0x059, 0x0006016C,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
+               0x058, 0x000A7284,
+               0x059, 0x000600EC,
+-      0xCDCDCDCD, 0xCDCD,
++      0xA0000000,     0x00000000,
+               0x058, 0x00081184,
+               0x059, 0x0006016C,
+-      0xFF0F0104, 0xDEAD,
+-      0xFF0F0104, 0xABCD,
++      0xB0000000,     0x00000000,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x061, 0x000E8D73,
+               0x062, 0x00093FC5,
+-      0xFF0F0204, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x061, 0x000E8D73,
+               0x062, 0x00093FC5,
+-      0xFF0F0404, 0xCDEF,
++      0x90000210,     0x00000000,     0x40000000,     0x00000000,
++              0x061, 0x000EFD83,
++              0x062, 0x00093FCC,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
++              0x061, 0x000EAD53,
++              0x062, 0x00093BC4,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x061, 0x000EFD83,
++              0x062, 0x00093FCC,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
+               0x061, 0x000E8D73,
+               0x062, 0x00093FC5,
+-      0xCDCDCDCD, 0xCDCD,
++      0xA0000000,     0x00000000,
+               0x061, 0x000EAD53,
+               0x062, 0x00093BC4,
+-      0xFF0F0104, 0xDEAD,
+-      0xFF0F0104, 0xABCD,
++      0xB0000000,     0x00000000,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
+               0x063, 0x000110E9,
+-      0xFF0F0204, 0xCDEF,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
+               0x063, 0x000110E9,
+-      0xFF0F0404, 0xCDEF,
++      0x90000210,     0x00000000,     0x40000000,     0x00000000,
++              0x063, 0x000110EB,
++      0x9000020c,     0x00000000,     0x40000000,     0x00000000,
+               0x063, 0x000110E9,
+-      0xFF0F0200, 0xCDEF,
+-              0x063, 0x000710E9,
+-      0xFF0F02C0, 0xCDEF,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
+               0x063, 0x000110E9,
+-      0xCDCDCDCD, 0xCDCD,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x063, 0x000110EB,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
++              0x063, 0x000110E9,
++      0xA0000000,     0x00000000,
+               0x063, 0x000714E9,
+-      0xFF0F0104, 0xDEAD,
+-      0xFF0F0104, 0xABCD,
++      0xB0000000,     0x00000000,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
++              0x064, 0x0001C27C,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
++              0x064, 0x0001C27C,
++      0x90000210,     0x00000000,     0x40000000,     0x00000000,
+               0x064, 0x0001C27C,
+-      0xFF0F0204, 0xCDEF,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
++              0x064, 0x0001C67C,
++      0x90000200,     0x00000000,     0x40000000,     0x00000000,
+               0x064, 0x0001C27C,
+-      0xFF0F0404, 0xCDEF,
++      0x90000410,     0x00000000,     0x40000000,     0x00000000,
+               0x064, 0x0001C27C,
+-      0xCDCDCDCD, 0xCDCD,
++      0xA0000000,     0x00000000,
+               0x064, 0x0001C67C,
+-      0xFF0F0104, 0xDEAD,
+-      0xFF0F0200, 0xABCD,
++      0xB0000000,     0x00000000,
++      0x80000111,     0x00000000,     0x40000000,     0x00000000,
++              0x065, 0x00091016,
++      0x90000110,     0x00000000,     0x40000000,     0x00000000,
++              0x065, 0x00091016,
++      0x90000210,     0x00000000,     0x40000000,     0x00000000,
+               0x065, 0x00093016,
+-      0xFF0F02C0, 0xCDEF,
++              0x9000020c,     0x00000000,     0x40000000,     0x00000000,
+               0x065, 0x00093015,
+-      0xCDCDCDCD, 0xCDCD,
++              0x9000040c,     0x00000000,     0x40000000,     0x00000000,
++              0x065, 0x00093015,
++              0x90000200,     0x00000000,     0x40000000,     0x00000000,
++              0x065, 0x00093016,
++              0xA0000000,     0x00000000,
+               0x065, 0x00091016,
+-      0xFF0F0200, 0xDEAD,
++              0xB0000000,     0x00000000,
+               0x018, 0x00000006,
+               0x0EF, 0x00002000,
+               0x03B, 0x0003824B,
+@@ -1895,9 +2074,10 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
+               0x0B4, 0x0001214C,
+               0x0B7, 0x0003000C,
+               0x01C, 0x000539D2,
++              0x0C4, 0x000AFE00,
+               0x018, 0x0001F12A,
+-              0x0FE, 0x00000000,
+-              0x0FE, 0x00000000,
++              0xFFE, 0x00000000,
++              0xFFE, 0x00000000,
+               0x018, 0x0001712A,
+ };
+@@ -2017,6 +2197,7 @@ u32 RTL8812AE_MAC_REG_ARRAY[] = {
+ u32 RTL8812AE_MAC_1T_ARRAYLEN = ARRAY_SIZE(RTL8812AE_MAC_REG_ARRAY);
+ u32 RTL8821AE_MAC_REG_ARRAY[] = {
++              0x421, 0x0000000F,
+               0x428, 0x0000000A,
+               0x429, 0x00000010,
+               0x430, 0x00000000,
+@@ -2485,7 +2666,7 @@ u32 RTL8821AE_AGC_TAB_ARRAY[] = {
+               0x81C, 0xA6360001,
+               0x81C, 0xA5380001,
+               0x81C, 0xA43A0001,
+-              0x81C, 0xA33C0001,
++              0x81C, 0x683C0001,
+               0x81C, 0x673E0001,
+               0x81C, 0x66400001,
+               0x81C, 0x65420001,
+@@ -2519,7 +2700,66 @@ u32 RTL8821AE_AGC_TAB_ARRAY[] = {
+               0x81C, 0x017A0001,
+               0x81C, 0x017C0001,
+               0x81C, 0x017E0001,
+-      0xFF0F02C0, 0xABCD,
++      0x8000020c,     0x00000000,     0x40000000,     0x00000000,
++              0x81C, 0xFB000101,
++              0x81C, 0xFA020101,
++              0x81C, 0xF9040101,
++              0x81C, 0xF8060101,
++              0x81C, 0xF7080101,
++              0x81C, 0xF60A0101,
++              0x81C, 0xF50C0101,
++              0x81C, 0xF40E0101,
++              0x81C, 0xF3100101,
++              0x81C, 0xF2120101,
++              0x81C, 0xF1140101,
++              0x81C, 0xF0160101,
++              0x81C, 0xEF180101,
++              0x81C, 0xEE1A0101,
++              0x81C, 0xED1C0101,
++              0x81C, 0xEC1E0101,
++              0x81C, 0xEB200101,
++              0x81C, 0xEA220101,
++              0x81C, 0xE9240101,
++              0x81C, 0xE8260101,
++              0x81C, 0xE7280101,
++              0x81C, 0xE62A0101,
++              0x81C, 0xE52C0101,
++              0x81C, 0xE42E0101,
++              0x81C, 0xE3300101,
++              0x81C, 0xA5320101,
++              0x81C, 0xA4340101,
++              0x81C, 0xA3360101,
++              0x81C, 0x87380101,
++              0x81C, 0x863A0101,
++              0x81C, 0x853C0101,
++              0x81C, 0x843E0101,
++              0x81C, 0x69400101,
++              0x81C, 0x68420101,
++              0x81C, 0x67440101,
++              0x81C, 0x66460101,
++              0x81C, 0x49480101,
++              0x81C, 0x484A0101,
++              0x81C, 0x474C0101,
++              0x81C, 0x2A4E0101,
++              0x81C, 0x29500101,
++              0x81C, 0x28520101,
++              0x81C, 0x27540101,
++              0x81C, 0x26560101,
++              0x81C, 0x25580101,
++              0x81C, 0x245A0101,
++              0x81C, 0x235C0101,
++              0x81C, 0x055E0101,
++              0x81C, 0x04600101,
++              0x81C, 0x03620101,
++              0x81C, 0x02640101,
++              0x81C, 0x01660101,
++              0x81C, 0x01680101,
++              0x81C, 0x016A0101,
++              0x81C, 0x016C0101,
++              0x81C, 0x016E0101,
++              0x81C, 0x01700101,
++              0x81C, 0x01720101,
++      0x9000040c,     0x00000000,     0x40000000,     0x00000000,
+               0x81C, 0xFB000101,
+               0x81C, 0xFA020101,
+               0x81C, 0xF9040101,
+@@ -2578,7 +2818,7 @@ u32 RTL8821AE_AGC_TAB_ARRAY[] = {
+               0x81C, 0x016E0101,
+               0x81C, 0x01700101,
+               0x81C, 0x01720101,
+-      0xCDCDCDCD, 0xCDCD,
++      0xA0000000,     0x00000000,
+               0x81C, 0xFF000101,
+               0x81C, 0xFF020101,
+               0x81C, 0xFE040101,
+@@ -2637,7 +2877,7 @@ u32 RTL8821AE_AGC_TAB_ARRAY[] = {
+               0x81C, 0x046E0101,
+               0x81C, 0x03700101,
+               0x81C, 0x02720101,
+-      0xFF0F02C0, 0xDEAD,
++      0xB0000000,     0x00000000,
+               0x81C, 0x01740101,
+               0x81C, 0x01760101,
+               0x81C, 0x01780101,