JustOS/linux-6.13/drivers/net/wireless/realtek/rtw88/rtw8821a_table.c
justuser 02e73b8cd9 up
2025-01-24 17:00:19 +03:00

2351 lines
56 KiB
C

// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/* Copyright(c) 2024 Realtek Corporation
*/
#include "main.h"
#include "phy.h"
#include "rtw8821a_table.h"
static const u32 rtw8821a_mac[] = {
0x421, 0x0000000F,
0x428, 0x0000000A,
0x429, 0x00000010,
0x430, 0x00000000,
0x431, 0x00000000,
0x432, 0x00000000,
0x433, 0x00000001,
0x434, 0x00000004,
0x435, 0x00000005,
0x436, 0x00000007,
0x437, 0x00000008,
0x43C, 0x00000004,
0x43D, 0x00000005,
0x43E, 0x00000007,
0x43F, 0x00000008,
0x440, 0x0000005D,
0x441, 0x00000001,
0x442, 0x00000000,
0x444, 0x00000010,
0x445, 0x00000000,
0x446, 0x00000000,
0x447, 0x00000000,
0x448, 0x00000000,
0x449, 0x000000F0,
0x44A, 0x0000000F,
0x44B, 0x0000003E,
0x44C, 0x00000010,
0x44D, 0x00000000,
0x44E, 0x00000000,
0x44F, 0x00000000,
0x450, 0x00000000,
0x451, 0x000000F0,
0x452, 0x0000000F,
0x453, 0x00000000,
0x456, 0x0000005E,
0x460, 0x00000066,
0x461, 0x00000066,
0x4C8, 0x0000003F,
0x4C9, 0x000000FF,
0x4CC, 0x000000FF,
0x4CD, 0x000000FF,
0x4CE, 0x00000001,
0x500, 0x00000026,
0x501, 0x000000A2,
0x502, 0x0000002F,
0x503, 0x00000000,
0x504, 0x00000028,
0x505, 0x000000A3,
0x506, 0x0000005E,
0x507, 0x00000000,
0x508, 0x0000002B,
0x509, 0x000000A4,
0x50A, 0x0000005E,
0x50B, 0x00000000,
0x50C, 0x0000004F,
0x50D, 0x000000A4,
0x50E, 0x00000000,
0x50F, 0x00000000,
0x512, 0x0000001C,
0x514, 0x0000000A,
0x516, 0x0000000A,
0x525, 0x0000004F,
0x550, 0x00000010,
0x551, 0x00000010,
0x559, 0x00000002,
0x55C, 0x00000050,
0x55D, 0x000000FF,
0x605, 0x00000030,
0x607, 0x00000007,
0x608, 0x0000000E,
0x609, 0x0000002A,
0x620, 0x000000FF,
0x621, 0x000000FF,
0x622, 0x000000FF,
0x623, 0x000000FF,
0x624, 0x000000FF,
0x625, 0x000000FF,
0x626, 0x000000FF,
0x627, 0x000000FF,
0x638, 0x00000050,
0x63C, 0x0000000A,
0x63D, 0x0000000A,
0x63E, 0x0000000E,
0x63F, 0x0000000E,
0x640, 0x00000040,
0x642, 0x00000040,
0x643, 0x00000000,
0x652, 0x000000C8,
0x66E, 0x00000005,
0x700, 0x00000021,
0x701, 0x00000043,
0x702, 0x00000065,
0x703, 0x00000087,
0x708, 0x00000021,
0x709, 0x00000043,
0x70A, 0x00000065,
0x70B, 0x00000087,
0x718, 0x00000040,
};
RTW_DECL_TABLE_PHY_COND(rtw8821a_mac, rtw_phy_cfg_mac);
static const u32 rtw8821a_agc[] = {
0x81C, 0xBF000001,
0x81C, 0xBF020001,
0x81C, 0xBF040001,
0x81C, 0xBF060001,
0x81C, 0xBE080001,
0x81C, 0xBD0A0001,
0x81C, 0xBC0C0001,
0x81C, 0xBA0E0001,
0x81C, 0xB9100001,
0x81C, 0xB8120001,
0x81C, 0xB7140001,
0x81C, 0xB6160001,
0x81C, 0xB5180001,
0x81C, 0xB41A0001,
0x81C, 0xB31C0001,
0x81C, 0xB21E0001,
0x81C, 0xB1200001,
0x81C, 0xB0220001,
0x81C, 0xAF240001,
0x81C, 0xAE260001,
0x81C, 0xAD280001,
0x81C, 0xAC2A0001,
0x81C, 0xAB2C0001,
0x81C, 0xAA2E0001,
0x81C, 0xA9300001,
0x81C, 0xA8320001,
0x81C, 0xA7340001,
0x81C, 0xA6360001,
0x81C, 0xA5380001,
0x81C, 0xA43A0001,
0x81C, 0x683C0001,
0x81C, 0x673E0001,
0x81C, 0x66400001,
0x81C, 0x65420001,
0x81C, 0x64440001,
0x81C, 0x63460001,
0x81C, 0x62480001,
0x81C, 0x614A0001,
0x81C, 0x474C0001,
0x81C, 0x464E0001,
0x81C, 0x45500001,
0x81C, 0x44520001,
0x81C, 0x43540001,
0x81C, 0x42560001,
0x81C, 0x41580001,
0x81C, 0x285A0001,
0x81C, 0x275C0001,
0x81C, 0x265E0001,
0x81C, 0x25600001,
0x81C, 0x24620001,
0x81C, 0x0A640001,
0x81C, 0x09660001,
0x81C, 0x08680001,
0x81C, 0x076A0001,
0x81C, 0x066C0001,
0x81C, 0x056E0001,
0x81C, 0x04700001,
0x81C, 0x03720001,
0x81C, 0x02740001,
0x81C, 0x01760001,
0x81C, 0x01780001,
0x81C, 0x017A0001,
0x81C, 0x017C0001,
0x81C, 0x017E0001,
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,
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,
0xA0000000, 0x00000000,
0x81C, 0xFF000101,
0x81C, 0xFF020101,
0x81C, 0xFE040101,
0x81C, 0xFD060101,
0x81C, 0xFC080101,
0x81C, 0xFD0A0101,
0x81C, 0xFC0C0101,
0x81C, 0xFB0E0101,
0x81C, 0xFA100101,
0x81C, 0xF9120101,
0x81C, 0xF8140101,
0x81C, 0xF7160101,
0x81C, 0xF6180101,
0x81C, 0xF51A0101,
0x81C, 0xF41C0101,
0x81C, 0xF31E0101,
0x81C, 0xF2200101,
0x81C, 0xF1220101,
0x81C, 0xF0240101,
0x81C, 0xEF260101,
0x81C, 0xEE280101,
0x81C, 0xED2A0101,
0x81C, 0xEC2C0101,
0x81C, 0xEB2E0101,
0x81C, 0xEA300101,
0x81C, 0xE9320101,
0x81C, 0xE8340101,
0x81C, 0xE7360101,
0x81C, 0xE6380101,
0x81C, 0xE53A0101,
0x81C, 0xE43C0101,
0x81C, 0xE33E0101,
0x81C, 0xA5400101,
0x81C, 0xA4420101,
0x81C, 0xA3440101,
0x81C, 0x87460101,
0x81C, 0x86480101,
0x81C, 0x854A0101,
0x81C, 0x844C0101,
0x81C, 0x694E0101,
0x81C, 0x68500101,
0x81C, 0x67520101,
0x81C, 0x66540101,
0x81C, 0x49560101,
0x81C, 0x48580101,
0x81C, 0x475A0101,
0x81C, 0x2A5C0101,
0x81C, 0x295E0101,
0x81C, 0x28600101,
0x81C, 0x27620101,
0x81C, 0x26640101,
0x81C, 0x25660101,
0x81C, 0x24680101,
0x81C, 0x236A0101,
0x81C, 0x056C0101,
0x81C, 0x046E0101,
0x81C, 0x03700101,
0x81C, 0x02720101,
0xB0000000, 0x00000000,
0x81C, 0x01740101,
0x81C, 0x01760101,
0x81C, 0x01780101,
0x81C, 0x017A0101,
0x81C, 0x017C0101,
0x81C, 0x017E0101,
0xC50, 0x00000022,
0xC50, 0x00000020,
};
RTW_DECL_TABLE_PHY_COND(rtw8821a_agc, rtw_phy_cfg_agc);
static const u32 rtw8821a_bb[] = {
0x800, 0x0020D090,
0x804, 0x080112E0,
0x808, 0x0E028211,
0x80C, 0x92131111,
0x810, 0x20101261,
0x814, 0x020C3D10,
0x818, 0x03A00385,
0x820, 0x00000000,
0x824, 0x00030FE0,
0x828, 0x00000000,
0x82C, 0x002081DD,
0x830, 0x2AAAEEC8,
0x834, 0x0037A706,
0x838, 0x06489B44,
0x83C, 0x0000095B,
0x840, 0xC0000001,
0x844, 0x40003CDE,
0x848, 0x62103F8B,
0x84C, 0x6CFDFFB8,
0x850, 0x28874706,
0x854, 0x0001520C,
0x858, 0x8060E000,
0x85C, 0x74210168,
0x860, 0x6929C321,
0x864, 0x79727432,
0x868, 0x8CA7A314,
0x86C, 0x888C2878,
0x870, 0x08888888,
0x874, 0x31612C2E,
0x878, 0x00000152,
0x87C, 0x000FD000,
0x8A0, 0x00000013,
0x8A4, 0x7F7F7F7F,
0x8A8, 0xA2000338,
0x8AC, 0x0FF0FA0A,
0x8B4, 0x000FC080,
0x8B8, 0x6C10D7FF,
0x8BC, 0x0CA52090,
0x8C0, 0x1BF00020,
0x8C4, 0x00000000,
0x8C8, 0x00013169,
0x8CC, 0x08248492,
0x8D4, 0x940008A0,
0x8D8, 0x290B5612,
0x8F8, 0x400002C0,
0x8FC, 0x00000000,
0x900, 0x00000700,
0x90C, 0x00000000,
0x910, 0x0000FC00,
0x914, 0x00000404,
0x918, 0x1C1028C0,
0x91C, 0x64B11A1C,
0x920, 0xE0767233,
0x924, 0x055AA500,
0x928, 0x00000004,
0x92C, 0xFFFE0000,
0x930, 0xFFFFFFFE,
0x934, 0x001FFFFF,
0x960, 0x00000000,
0x964, 0x00000000,
0x968, 0x00000000,
0x96C, 0x00000000,
0x970, 0x801FFFFF,
0x974, 0x000003FF,
0x978, 0x00000000,
0x97C, 0x00000000,
0x980, 0x00000000,
0x984, 0x00000000,
0x988, 0x00000000,
0x990, 0x27100000,
0x994, 0xFFFF0100,
0x998, 0xFFFFFF5C,
0x99C, 0xFFFFFFFF,
0x9A0, 0x000000FF,
0x9A4, 0x00480080,
0x9A8, 0x00000000,
0x9AC, 0x00000000,
0x9B0, 0x81081008,
0x9B4, 0x01081008,
0x9B8, 0x01081008,
0x9BC, 0x01081008,
0x9D0, 0x00000000,
0x9D4, 0x00000000,
0x9D8, 0x00000000,
0x9DC, 0x00000000,
0x9E0, 0x00005D00,
0x9E4, 0x00000003,
0x9E8, 0x00000001,
0xA00, 0x00D047C8,
0xA04, 0x01FF800C,
0xA08, 0x8C8A8300,
0xA0C, 0x2E68000F,
0xA10, 0x9500BB78,
0xA14, 0x11144028,
0xA18, 0x00881117,
0xA1C, 0x89140F00,
0xA20, 0x1A1B0000,
0xA24, 0x090E1317,
0xA28, 0x00000204,
0xA2C, 0x00900000,
0xA70, 0x101FFF00,
0xA74, 0x00000008,
0xA78, 0x00000900,
0xA7C, 0x225B0606,
0xA80, 0x21805490,
0xA84, 0x001F0000,
0XB00, 0x03100040,
0XB04, 0x0000B000,
0XB08, 0xAE0201EB,
0XB0C, 0x01003207,
0XB10, 0x00009807,
0XB14, 0x01000000,
0XB18, 0x00000002,
0XB1C, 0x00000002,
0XB20, 0x0000001F,
0XB24, 0x03020100,
0XB28, 0x07060504,
0XB2C, 0x0B0A0908,
0XB30, 0x0F0E0D0C,
0XB34, 0x13121110,
0XB38, 0x17161514,
0XB3C, 0x0000003A,
0XB40, 0x00000000,
0XB44, 0x00000000,
0XB48, 0x13000032,
0XB4C, 0x48080000,
0XB50, 0x00000000,
0XB54, 0x00000000,
0XB58, 0x00000000,
0XB5C, 0x00000000,
0xC00, 0x00000007,
0xC04, 0x00042020,
0xC08, 0x80410231,
0xC0C, 0x00000000,
0xC10, 0x00000100,
0xC14, 0x01000000,
0xC1C, 0x40000003,
0xC20, 0x2C2C2C2C,
0xC24, 0x30303030,
0xC28, 0x30303030,
0xC2C, 0x2C2C2C2C,
0xC30, 0x2C2C2C2C,
0xC34, 0x2C2C2C2C,
0xC38, 0x2C2C2C2C,
0xC3C, 0x2A2A2A2A,
0xC40, 0x2A2A2A2A,
0xC44, 0x2A2A2A2A,
0xC48, 0x2A2A2A2A,
0xC4C, 0x2A2A2A2A,
0xC50, 0x00000020,
0xC54, 0x001C1208,
0xC58, 0x30000C1C,
0xC5C, 0x00000058,
0xC60, 0x34344443,
0xC64, 0x07003333,
0xC68, 0x19791979,
0xC6C, 0x19791979,
0xC70, 0x19791979,
0xC74, 0x19791979,
0xC78, 0x19791979,
0xC7C, 0x19791979,
0xC80, 0x19791979,
0xC84, 0x19791979,
0xC94, 0x0100005C,
0xC98, 0x00000000,
0xC9C, 0x00000000,
0xCA0, 0x00000029,
0xCA4, 0x08040201,
0xCA8, 0x80402010,
0xCB0, 0x77775747,
0xCB4, 0x10000077,
0xCB8, 0x00508240,
};
RTW_DECL_TABLE_PHY_COND(rtw8821a_bb, rtw_phy_cfg_bb);
static const struct rtw_phy_pg_cfg_pair rtw8821a_bb_pg[] = {
{ 0, 0, 0, 0x00000c20, 0xffffffff, 0x32343638, },
{ 0, 0, 0, 0x00000c24, 0xffffffff, 0x36363838, },
{ 0, 0, 0, 0x00000c28, 0xffffffff, 0x28303234, },
{ 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34363838, },
{ 0, 0, 0, 0x00000c30, 0xffffffff, 0x26283032, },
{ 0, 0, 0, 0x00000c3c, 0xffffffff, 0x32343636, },
{ 0, 0, 0, 0x00000c40, 0xffffffff, 0x24262830, },
{ 0, 0, 0, 0x00000c44, 0x0000ffff, 0x00002022, },
{ 1, 0, 0, 0x00000c24, 0xffffffff, 0x34343636, },
{ 1, 0, 0, 0x00000c28, 0xffffffff, 0x26283032, },
{ 1, 0, 0, 0x00000c2c, 0xffffffff, 0x32343636, },
{ 1, 0, 0, 0x00000c30, 0xffffffff, 0x24262830, },
{ 1, 0, 0, 0x00000c3c, 0xffffffff, 0x32343636, },
{ 1, 0, 0, 0x00000c40, 0xffffffff, 0x24262830, },
{ 1, 0, 0, 0x00000c44, 0x0000ffff, 0x00002022, },
};
RTW_DECL_TABLE_BB_PG(rtw8821a_bb_pg);
static const u32 rtw8821a_rf_a[] = {
0x018, 0x0001712A,
0x056, 0x00051CF2,
0x066, 0x00040000,
0x000, 0x00010000,
0x01E, 0x00080000,
0x082, 0x00000830,
0x083, 0x00021800,
0x084, 0x00028000,
0x085, 0x00048000,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x086, 0x0009483A,
0xA0000000, 0x00000000,
0x086, 0x00094838,
0xB0000000, 0x00000000,
0x087, 0x00044980,
0x088, 0x00048000,
0x089, 0x0000D480,
0x08A, 0x00042240,
0x08B, 0x000F0380,
0x08C, 0x00090000,
0x08D, 0x00022852,
0x08E, 0x00065540,
0x08F, 0x00088001,
0x0EF, 0x00020000,
0x03E, 0x00000380,
0x03F, 0x00090018,
0x03E, 0x00020380,
0x03F, 0x000A0018,
0x03E, 0x00040308,
0x03F, 0x000A0018,
0x03E, 0x00060018,
0x03F, 0x000A0018,
0x0EF, 0x00000000,
0x018, 0x0001712A,
0x089, 0x00000080,
0x08B, 0x00080180,
0x0EF, 0x00001000,
0x03A, 0x00000244,
0x03B, 0x00038027,
0x03C, 0x00082000,
0x03A, 0x00000244,
0x03B, 0x00030113,
0x03C, 0x00082000,
0x03A, 0x0000014C,
0x03B, 0x00028027,
0x03C, 0x00082000,
0x03A, 0x000000CC,
0x03B, 0x00027027,
0x03C, 0x00042000,
0x03A, 0x0000014C,
0x03B, 0x0001F913,
0x03C, 0x00042000,
0x03A, 0x0000010C,
0x03B, 0x00017F10,
0x03C, 0x00012000,
0x03A, 0x000000D0,
0x03B, 0x00008027,
0x03C, 0x000CA000,
0x03A, 0x00000244,
0x03B, 0x00078027,
0x03C, 0x00082000,
0x03A, 0x00000244,
0x03B, 0x00070113,
0x03C, 0x00082000,
0x03A, 0x0000014C,
0x03B, 0x00068027,
0x03C, 0x00082000,
0x03A, 0x000000CC,
0x03B, 0x00067027,
0x03C, 0x00042000,
0x03A, 0x0000014C,
0x03B, 0x0005F913,
0x03C, 0x00042000,
0x03A, 0x0000010C,
0x03B, 0x00057F10,
0x03C, 0x00012000,
0x03A, 0x000000D0,
0x03B, 0x00048027,
0x03C, 0x000CA000,
0x03A, 0x00000244,
0x03B, 0x000B8027,
0x03C, 0x00082000,
0x03A, 0x00000244,
0x03B, 0x000B0113,
0x03C, 0x00082000,
0x03A, 0x0000014C,
0x03B, 0x000A8027,
0x03C, 0x00082000,
0x03A, 0x000000CC,
0x03B, 0x000A7027,
0x03C, 0x00042000,
0x03A, 0x0000014C,
0x03B, 0x0009F913,
0x03C, 0x00042000,
0x03A, 0x0000010C,
0x03B, 0x00097F10,
0x03C, 0x00012000,
0x03A, 0x000000D0,
0x03B, 0x00088027,
0x03C, 0x000CA000,
0x0EF, 0x00000000,
0x0EF, 0x00001100,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0004ADF3,
0x034, 0x00049DF0,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0004ADF3,
0x034, 0x00049DF0,
0x90000210, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0004ADF5,
0x034, 0x00049DF2,
0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0004A0F3,
0x034, 0x000490B1,
0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0004A0F3,
0x034, 0x000490B1,
0x90000200, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0004ADF5,
0x034, 0x00049DF2,
0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0004ADF3,
0x034, 0x00049DF0,
0xA0000000, 0x00000000,
0x034, 0x0004ADF7,
0x034, 0x00049DF3,
0xB0000000, 0x00000000,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00048DED,
0x034, 0x00047DEA,
0x034, 0x00046DE7,
0x034, 0x00045CE9,
0x034, 0x00044CE6,
0x034, 0x000438C6,
0x034, 0x00042886,
0x034, 0x00041486,
0x034, 0x00040447,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00048DED,
0x034, 0x00047DEA,
0x034, 0x00046DE7,
0x034, 0x00045CE9,
0x034, 0x00044CE6,
0x034, 0x000438C6,
0x034, 0x00042886,
0x034, 0x00041486,
0x034, 0x00040447,
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,
0x034, 0x00045069,
0x034, 0x00044048,
0x034, 0x00043045,
0x034, 0x00042026,
0x034, 0x00041023,
0x034, 0x00040002,
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,
0x034, 0x00045CCB,
0x034, 0x0004488D,
0x034, 0x0004348D,
0x034, 0x0004248A,
0x034, 0x0004108D,
0x034, 0x0004008A,
0xB0000000, 0x00000000,
0x80000210, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0002ADF4,
0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0002A0F3,
0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0002A0F3,
0x90000200, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0002ADF4,
0xA0000000, 0x00000000,
0x034, 0x0002ADF7,
0xB0000000, 0x00000000,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00029DF4,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00029DF4,
0x90000210, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00029DF1,
0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x000290F0,
0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x000290F0,
0x90000200, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00029DF1,
0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00029DF4,
0xA0000000, 0x00000000,
0x034, 0x00029DF2,
0xB0000000, 0x00000000,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00028DF1,
0x034, 0x00027DEE,
0x034, 0x00026DEB,
0x034, 0x00025CEC,
0x034, 0x00024CE9,
0x034, 0x000238CA,
0x034, 0x00022889,
0x034, 0x00021489,
0x034, 0x0002044A,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00028DF1,
0x034, 0x00027DEE,
0x034, 0x00026DEB,
0x034, 0x00025CEC,
0x034, 0x00024CE9,
0x034, 0x000238CA,
0x034, 0x00022889,
0x034, 0x00021489,
0x034, 0x0002044A,
0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x000280AF,
0x034, 0x000270AC,
0x034, 0x0002608B,
0x034, 0x00025069,
0x034, 0x00024048,
0x034, 0x00023045,
0x034, 0x00022026,
0x034, 0x00021023,
0x034, 0x00020002,
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,
0x034, 0x00025CCA,
0x034, 0x0002488C,
0x034, 0x0002384C,
0x034, 0x00022849,
0x034, 0x00021449,
0x034, 0x0002004D,
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,
0xA0000000, 0x00000000,
0x034, 0x0000ADF7,
0x034, 0x00009DF4,
0x034, 0x00008DF1,
0x034, 0x00007DEE,
0xB0000000, 0x00000000,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00006DEB,
0x034, 0x00005CEC,
0x034, 0x00004CE9,
0x034, 0x000038CA,
0x034, 0x00002889,
0x034, 0x00001489,
0x034, 0x0000044A,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00006DEB,
0x034, 0x00005CEC,
0x034, 0x00004CE9,
0x034, 0x000038CA,
0x034, 0x00002889,
0x034, 0x00001489,
0x034, 0x0000044A,
0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0000608D,
0x034, 0x0000506B,
0x034, 0x0000404A,
0x034, 0x00003047,
0x034, 0x00002044,
0x034, 0x00001025,
0x034, 0x00000004,
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,
0x034, 0x0000388C,
0x034, 0x00002888,
0x034, 0x00001488,
0x034, 0x00000486,
0xB0000000, 0x00000000,
0x0EF, 0x00000000,
0x018, 0x0001712A,
0x0EF, 0x00000040,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x035, 0x00000187,
0x035, 0x00008187,
0x035, 0x00010187,
0x035, 0x00020188,
0x035, 0x00028188,
0x035, 0x00030188,
0x035, 0x00040188,
0x035, 0x00048188,
0x035, 0x00050188,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x035, 0x00000187,
0x035, 0x00008187,
0x035, 0x00010187,
0x035, 0x00020188,
0x035, 0x00028188,
0x035, 0x00030188,
0x035, 0x00040188,
0x035, 0x00048188,
0x035, 0x00050188,
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,
0x035, 0x00020188,
0x035, 0x00028188,
0x035, 0x00030188,
0x035, 0x00040188,
0x035, 0x00048188,
0x035, 0x00050188,
0xA0000000, 0x00000000,
0x035, 0x00000145,
0x035, 0x00008145,
0x035, 0x00010145,
0x035, 0x00020196,
0x035, 0x00028196,
0x035, 0x00030196,
0x035, 0x000401C7,
0x035, 0x000481C7,
0x035, 0x000501C7,
0xB0000000, 0x00000000,
0x0EF, 0x00000000,
0x018, 0x0001712A,
0x0EF, 0x00000010,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x036, 0x00085733,
0x036, 0x0008D733,
0x036, 0x00095733,
0x036, 0x0009D733,
0x036, 0x000A64B4,
0x036, 0x000AE4B4,
0x036, 0x000B64B4,
0x036, 0x000BE4B4,
0x036, 0x000C64B4,
0x036, 0x000CE4B4,
0x036, 0x000D64B4,
0x036, 0x000DE4B4,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x036, 0x00085733,
0x036, 0x0008D733,
0x036, 0x00095733,
0x036, 0x0009D733,
0x036, 0x000A64B4,
0x036, 0x000AE4B4,
0x036, 0x000B64B4,
0x036, 0x000BE4B4,
0x036, 0x000C64B4,
0x036, 0x000CE4B4,
0x036, 0x000D64B4,
0x036, 0x000DE4B4,
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,
0x036, 0x0009D733,
0x036, 0x000A64B4,
0x036, 0x000AE4B4,
0x036, 0x000B64B4,
0x036, 0x000BE4B4,
0x036, 0x000C64B4,
0x036, 0x000CE4B4,
0x036, 0x000D64B4,
0x036, 0x000DE4B4,
0xA0000000, 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,
0xB0000000, 0x00000000,
0x0EF, 0x00000000,
0x0EF, 0x00000008,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x000001C8,
0x03C, 0x00000492,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x000001C8,
0x03C, 0x00000492,
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,
0xA0000000, 0x00000000,
0x03C, 0x0000022A,
0x03C, 0x00000594,
0xB0000000, 0x00000000,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x00000800,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x00000800,
0x90000210, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x00000800,
0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x00000820,
0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x00000820,
0x90000200, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x00000800,
0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x00000800,
0xA0000000, 0x00000000,
0x03C, 0x00000900,
0xB0000000, 0x00000000,
0x0EF, 0x00000000,
0x018, 0x0001712A,
0x0EF, 0x00000002,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x008, 0x0004E400,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x008, 0x0004E400,
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,
0xA0000000, 0x00000000,
0x008, 0x00002000,
0xB0000000, 0x00000000,
0x0EF, 0x00000000,
0x0DF, 0x000000C0,
0x01F, 0x00000064,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x058, 0x000A7284,
0x059, 0x000600EC,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x058, 0x000A7284,
0x059, 0x000600EC,
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,
0xA0000000, 0x00000000,
0x058, 0x00081184,
0x059, 0x0006016C,
0xB0000000, 0x00000000,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x061, 0x000E8D73,
0x062, 0x00093FC5,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x061, 0x000E8D73,
0x062, 0x00093FC5,
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,
0xA0000000, 0x00000000,
0x061, 0x000EAD53,
0x062, 0x00093BC4,
0xB0000000, 0x00000000,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x063, 0x000110E9,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x063, 0x000110E9,
0x90000210, 0x00000000, 0x40000000, 0x00000000,
0x063, 0x000110EB,
0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x063, 0x000110E9,
0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x063, 0x000110E9,
0x90000200, 0x00000000, 0x40000000, 0x00000000,
0x063, 0x000110EB,
0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x063, 0x000110E9,
0xA0000000, 0x00000000,
0x063, 0x000714E9,
0xB0000000, 0x00000000,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x064, 0x0001C27C,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x064, 0x0001C27C,
0x90000210, 0x00000000, 0x40000000, 0x00000000,
0x064, 0x0001C27C,
0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x064, 0x0001C67C,
0x90000200, 0x00000000, 0x40000000, 0x00000000,
0x064, 0x0001C27C,
0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x064, 0x0001C27C,
0xA0000000, 0x00000000,
0x064, 0x0001C67C,
0xB0000000, 0x00000000,
0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x065, 0x00091016,
0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x065, 0x00091016,
0x90000210, 0x00000000, 0x40000000, 0x00000000,
0x065, 0x00093016,
0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x065, 0x00093015,
0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x065, 0x00093015,
0x90000200, 0x00000000, 0x40000000, 0x00000000,
0x065, 0x00093016,
0xA0000000, 0x00000000,
0x065, 0x00091016,
0xB0000000, 0x00000000,
0x018, 0x00000006,
0x0EF, 0x00002000,
0x03B, 0x0003824B,
0x03B, 0x0003024B,
0x03B, 0x0002844B,
0x03B, 0x00020F4B,
0x03B, 0x00018F4B,
0x03B, 0x000104B2,
0x03B, 0x00008049,
0x03B, 0x00000148,
0x03B, 0x0007824B,
0x03B, 0x0007024B,
0x03B, 0x0006824B,
0x03B, 0x00060F4B,
0x03B, 0x00058F4B,
0x03B, 0x000504B2,
0x03B, 0x00048049,
0x03B, 0x00040148,
0x0EF, 0x00000000,
0x0EF, 0x00000100,
0x034, 0x0000ADF3,
0x034, 0x00009DF0,
0x034, 0x00008D70,
0x034, 0x00007D6D,
0x034, 0x00006CEE,
0x034, 0x00005CCC,
0x034, 0x000044EC,
0x034, 0x000034AC,
0x034, 0x0000246D,
0x034, 0x0000106F,
0x034, 0x0000006C,
0x0EF, 0x00000000,
0x0ED, 0x00000010,
0x044, 0x0000ADF2,
0x044, 0x00009DEF,
0x044, 0x00008DEC,
0x044, 0x00007DE9,
0x044, 0x00006CEC,
0x044, 0x00005CE9,
0x044, 0x000044EC,
0x044, 0x000034E9,
0x044, 0x0000246C,
0x044, 0x00001469,
0x044, 0x0000006C,
0x0ED, 0x00000000,
0x0ED, 0x00000001,
0x040, 0x00038DA7,
0x040, 0x000300C2,
0x040, 0x000288E2,
0x040, 0x000200B8,
0x040, 0x000188A5,
0x040, 0x00010FBC,
0x040, 0x00008F71,
0x040, 0x00000240,
0x0ED, 0x00000000,
0x0EF, 0x000020A2,
0x0DF, 0x00000080,
0x035, 0x00000120,
0x035, 0x00008120,
0x035, 0x00010120,
0x036, 0x00000085,
0x036, 0x00008085,
0x036, 0x00010085,
0x036, 0x00018085,
0x0EF, 0x00000000,
0x051, 0x00000C31,
0x052, 0x00000622,
0x053, 0x000FC70B,
0x054, 0x0000017E,
0x056, 0x00051DF3,
0x051, 0x00000C01,
0x052, 0x000006D6,
0x053, 0x000FC649,
0x070, 0x00049661,
0x071, 0x0007843E,
0x072, 0x00000382,
0x074, 0x00051400,
0x035, 0x00000160,
0x035, 0x00008160,
0x035, 0x00010160,
0x036, 0x00000124,
0x036, 0x00008124,
0x036, 0x00010124,
0x036, 0x00018124,
0x0ED, 0x0000000C,
0x045, 0x00000140,
0x045, 0x00008140,
0x045, 0x00010140,
0x046, 0x00000124,
0x046, 0x00008124,
0x046, 0x00010124,
0x046, 0x00018124,
0x0DF, 0x00000088,
0x0B3, 0x000F0E18,
0x0B4, 0x0001214C,
0x0B7, 0x0003000C,
0x01C, 0x000539D2,
0x0C4, 0x000AFE00,
0x018, 0x0001F12A,
0xFFE, 0x00000000,
0xFFE, 0x00000000,
0x018, 0x0001712A,
};
RTW_DECL_TABLE_RF_RADIO(rtw8821a_rf_a, A);
static const struct rtw_txpwr_lmt_cfg_pair rtw8821a_txpwr_lmt[] = {
{ 0, 0, 0, 0, 1, 32, },
{ 2, 0, 0, 0, 1, 28, },
{ 1, 0, 0, 0, 1, 32, },
{ 0, 0, 0, 0, 2, 32, },
{ 2, 0, 0, 0, 2, 28, },
{ 1, 0, 0, 0, 2, 32, },
{ 0, 0, 0, 0, 3, 36, },
{ 2, 0, 0, 0, 3, 28, },
{ 1, 0, 0, 0, 3, 32, },
{ 0, 0, 0, 0, 4, 36, },
{ 2, 0, 0, 0, 4, 28, },
{ 1, 0, 0, 0, 4, 32, },
{ 0, 0, 0, 0, 5, 36, },
{ 2, 0, 0, 0, 5, 28, },
{ 1, 0, 0, 0, 5, 32, },
{ 0, 0, 0, 0, 6, 36, },
{ 2, 0, 0, 0, 6, 28, },
{ 1, 0, 0, 0, 6, 32, },
{ 0, 0, 0, 0, 7, 36, },
{ 2, 0, 0, 0, 7, 28, },
{ 1, 0, 0, 0, 7, 32, },
{ 0, 0, 0, 0, 8, 36, },
{ 2, 0, 0, 0, 8, 28, },
{ 1, 0, 0, 0, 8, 32, },
{ 0, 0, 0, 0, 9, 32, },
{ 2, 0, 0, 0, 9, 28, },
{ 1, 0, 0, 0, 9, 32, },
{ 0, 0, 0, 0, 10, 32, },
{ 2, 0, 0, 0, 10, 28, },
{ 1, 0, 0, 0, 10, 32, },
{ 0, 0, 0, 0, 11, 32, },
{ 2, 0, 0, 0, 11, 28, },
{ 1, 0, 0, 0, 11, 32, },
{ 0, 0, 0, 0, 12, 28, },
{ 2, 0, 0, 0, 12, 28, },
{ 1, 0, 0, 0, 12, 32, },
{ 0, 0, 0, 0, 13, 26, },
{ 2, 0, 0, 0, 13, 28, },
{ 1, 0, 0, 0, 13, 32, },
{ 0, 0, 0, 0, 14, 63, },
{ 2, 0, 0, 0, 14, 63, },
{ 1, 0, 0, 0, 14, 32, },
{ 0, 0, 0, 1, 1, 30, },
{ 2, 0, 0, 1, 1, 30, },
{ 1, 0, 0, 1, 1, 32, },
{ 0, 0, 0, 1, 2, 30, },
{ 2, 0, 0, 1, 2, 32, },
{ 1, 0, 0, 1, 2, 32, },
{ 0, 0, 0, 1, 3, 32, },
{ 2, 0, 0, 1, 3, 32, },
{ 1, 0, 0, 1, 3, 32, },
{ 0, 0, 0, 1, 4, 32, },
{ 2, 0, 0, 1, 4, 32, },
{ 1, 0, 0, 1, 4, 32, },
{ 0, 0, 0, 1, 5, 32, },
{ 2, 0, 0, 1, 5, 32, },
{ 1, 0, 0, 1, 5, 32, },
{ 0, 0, 0, 1, 6, 32, },
{ 2, 0, 0, 1, 6, 32, },
{ 1, 0, 0, 1, 6, 32, },
{ 0, 0, 0, 1, 7, 32, },
{ 2, 0, 0, 1, 7, 32, },
{ 1, 0, 0, 1, 7, 32, },
{ 0, 0, 0, 1, 8, 32, },
{ 2, 0, 0, 1, 8, 32, },
{ 1, 0, 0, 1, 8, 32, },
{ 0, 0, 0, 1, 9, 30, },
{ 2, 0, 0, 1, 9, 32, },
{ 1, 0, 0, 1, 9, 32, },
{ 0, 0, 0, 1, 10, 30, },
{ 2, 0, 0, 1, 10, 32, },
{ 1, 0, 0, 1, 10, 32, },
{ 0, 0, 0, 1, 11, 30, },
{ 2, 0, 0, 1, 11, 32, },
{ 1, 0, 0, 1, 11, 32, },
{ 0, 0, 0, 1, 12, 26, },
{ 2, 0, 0, 1, 12, 32, },
{ 1, 0, 0, 1, 12, 32, },
{ 0, 0, 0, 1, 13, 24, },
{ 2, 0, 0, 1, 13, 30, },
{ 1, 0, 0, 1, 13, 32, },
{ 0, 0, 0, 1, 14, 63, },
{ 2, 0, 0, 1, 14, 63, },
{ 1, 0, 0, 1, 14, 63, },
{ 0, 0, 0, 2, 1, 26, },
{ 2, 0, 0, 2, 1, 26, },
{ 1, 0, 0, 2, 1, 32, },
{ 0, 0, 0, 2, 2, 26, },
{ 2, 0, 0, 2, 2, 32, },
{ 1, 0, 0, 2, 2, 32, },
{ 0, 0, 0, 2, 3, 32, },
{ 2, 0, 0, 2, 3, 32, },
{ 1, 0, 0, 2, 3, 32, },
{ 0, 0, 0, 2, 4, 32, },
{ 2, 0, 0, 2, 4, 32, },
{ 1, 0, 0, 2, 4, 32, },
{ 0, 0, 0, 2, 5, 32, },
{ 2, 0, 0, 2, 5, 32, },
{ 1, 0, 0, 2, 5, 32, },
{ 0, 0, 0, 2, 6, 32, },
{ 2, 0, 0, 2, 6, 32, },
{ 1, 0, 0, 2, 6, 32, },
{ 0, 0, 0, 2, 7, 32, },
{ 2, 0, 0, 2, 7, 32, },
{ 1, 0, 0, 2, 7, 32, },
{ 0, 0, 0, 2, 8, 32, },
{ 2, 0, 0, 2, 8, 32, },
{ 1, 0, 0, 2, 8, 32, },
{ 0, 0, 0, 2, 9, 26, },
{ 2, 0, 0, 2, 9, 32, },
{ 1, 0, 0, 2, 9, 32, },
{ 0, 0, 0, 2, 10, 26, },
{ 2, 0, 0, 2, 10, 32, },
{ 1, 0, 0, 2, 10, 32, },
{ 0, 0, 0, 2, 11, 26, },
{ 2, 0, 0, 2, 11, 32, },
{ 1, 0, 0, 2, 11, 32, },
{ 0, 0, 0, 2, 12, 26, },
{ 2, 0, 0, 2, 12, 32, },
{ 1, 0, 0, 2, 12, 32, },
{ 0, 0, 0, 2, 13, 24, },
{ 2, 0, 0, 2, 13, 26, },
{ 1, 0, 0, 2, 13, 32, },
{ 0, 0, 0, 2, 14, 63, },
{ 2, 0, 0, 2, 14, 63, },
{ 1, 0, 0, 2, 14, 63, },
{ 0, 0, 0, 3, 1, 30, },
{ 2, 0, 0, 3, 1, 32, },
{ 1, 0, 0, 3, 1, 32, },
{ 0, 0, 0, 3, 2, 32, },
{ 2, 0, 0, 3, 2, 32, },
{ 1, 0, 0, 3, 2, 32, },
{ 0, 0, 0, 3, 3, 32, },
{ 2, 0, 0, 3, 3, 32, },
{ 1, 0, 0, 3, 3, 32, },
{ 0, 0, 0, 3, 4, 32, },
{ 2, 0, 0, 3, 4, 32, },
{ 1, 0, 0, 3, 4, 32, },
{ 0, 0, 0, 3, 5, 32, },
{ 2, 0, 0, 3, 5, 32, },
{ 1, 0, 0, 3, 5, 32, },
{ 0, 0, 0, 3, 6, 32, },
{ 2, 0, 0, 3, 6, 32, },
{ 1, 0, 0, 3, 6, 32, },
{ 0, 0, 0, 3, 7, 32, },
{ 2, 0, 0, 3, 7, 32, },
{ 1, 0, 0, 3, 7, 32, },
{ 0, 0, 0, 3, 8, 32, },
{ 2, 0, 0, 3, 8, 32, },
{ 1, 0, 0, 3, 8, 32, },
{ 0, 0, 0, 3, 9, 32, },
{ 2, 0, 0, 3, 9, 32, },
{ 1, 0, 0, 3, 9, 32, },
{ 0, 0, 0, 3, 10, 32, },
{ 2, 0, 0, 3, 10, 32, },
{ 1, 0, 0, 3, 10, 32, },
{ 0, 0, 0, 3, 11, 30, },
{ 2, 0, 0, 3, 11, 32, },
{ 1, 0, 0, 3, 11, 32, },
{ 0, 0, 0, 3, 12, 63, },
{ 2, 0, 0, 3, 12, 32, },
{ 1, 0, 0, 3, 12, 32, },
{ 0, 0, 0, 3, 13, 63, },
{ 2, 0, 0, 3, 13, 32, },
{ 1, 0, 0, 3, 13, 32, },
{ 0, 0, 0, 3, 14, 63, },
{ 2, 0, 0, 3, 14, 63, },
{ 1, 0, 0, 3, 14, 63, },
{ 0, 0, 1, 2, 1, 63, },
{ 2, 0, 1, 2, 1, 63, },
{ 1, 0, 1, 2, 1, 63, },
{ 0, 0, 1, 2, 2, 63, },
{ 2, 0, 1, 2, 2, 63, },
{ 1, 0, 1, 2, 2, 63, },
{ 0, 0, 1, 2, 3, 26, },
{ 2, 0, 1, 2, 3, 26, },
{ 1, 0, 1, 2, 3, 32, },
{ 0, 0, 1, 2, 4, 26, },
{ 2, 0, 1, 2, 4, 32, },
{ 1, 0, 1, 2, 4, 32, },
{ 0, 0, 1, 2, 5, 26, },
{ 2, 0, 1, 2, 5, 32, },
{ 1, 0, 1, 2, 5, 32, },
{ 0, 0, 1, 2, 6, 32, },
{ 2, 0, 1, 2, 6, 32, },
{ 1, 0, 1, 2, 6, 32, },
{ 0, 0, 1, 2, 7, 32, },
{ 2, 0, 1, 2, 7, 32, },
{ 1, 0, 1, 2, 7, 32, },
{ 0, 0, 1, 2, 8, 32, },
{ 2, 0, 1, 2, 8, 32, },
{ 1, 0, 1, 2, 8, 32, },
{ 0, 0, 1, 2, 9, 26, },
{ 2, 0, 1, 2, 9, 32, },
{ 1, 0, 1, 2, 9, 32, },
{ 0, 0, 1, 2, 10, 24, },
{ 2, 0, 1, 2, 10, 32, },
{ 1, 0, 1, 2, 10, 32, },
{ 0, 0, 1, 2, 11, 22, },
{ 2, 0, 1, 2, 11, 26, },
{ 1, 0, 1, 2, 11, 32, },
{ 0, 0, 1, 2, 12, 63, },
{ 2, 0, 1, 2, 12, 63, },
{ 1, 0, 1, 2, 12, 63, },
{ 0, 0, 1, 2, 13, 63, },
{ 2, 0, 1, 2, 13, 63, },
{ 1, 0, 1, 2, 13, 63, },
{ 0, 0, 1, 2, 14, 63, },
{ 2, 0, 1, 2, 14, 63, },
{ 1, 0, 1, 2, 14, 63, },
{ 0, 0, 1, 3, 1, 63, },
{ 2, 0, 1, 3, 1, 63, },
{ 1, 0, 1, 3, 1, 63, },
{ 0, 0, 1, 3, 2, 63, },
{ 2, 0, 1, 3, 2, 63, },
{ 1, 0, 1, 3, 2, 63, },
{ 0, 0, 1, 3, 3, 30, },
{ 2, 0, 1, 3, 3, 30, },
{ 1, 0, 1, 3, 3, 30, },
{ 0, 0, 1, 3, 4, 32, },
{ 2, 0, 1, 3, 4, 30, },
{ 1, 0, 1, 3, 4, 30, },
{ 0, 0, 1, 3, 5, 32, },
{ 2, 0, 1, 3, 5, 30, },
{ 1, 0, 1, 3, 5, 30, },
{ 0, 0, 1, 3, 6, 32, },
{ 2, 0, 1, 3, 6, 30, },
{ 1, 0, 1, 3, 6, 30, },
{ 0, 0, 1, 3, 7, 32, },
{ 2, 0, 1, 3, 7, 30, },
{ 1, 0, 1, 3, 7, 30, },
{ 0, 0, 1, 3, 8, 32, },
{ 2, 0, 1, 3, 8, 30, },
{ 1, 0, 1, 3, 8, 30, },
{ 0, 0, 1, 3, 9, 32, },
{ 2, 0, 1, 3, 9, 30, },
{ 1, 0, 1, 3, 9, 30, },
{ 0, 0, 1, 3, 10, 32, },
{ 2, 0, 1, 3, 10, 30, },
{ 1, 0, 1, 3, 10, 30, },
{ 0, 0, 1, 3, 11, 30, },
{ 2, 0, 1, 3, 11, 30, },
{ 1, 0, 1, 3, 11, 30, },
{ 0, 0, 1, 3, 12, 63, },
{ 2, 0, 1, 3, 12, 32, },
{ 1, 0, 1, 3, 12, 32, },
{ 0, 0, 1, 3, 13, 63, },
{ 2, 0, 1, 3, 13, 32, },
{ 1, 0, 1, 3, 13, 32, },
{ 0, 0, 1, 3, 14, 63, },
{ 2, 0, 1, 3, 14, 63, },
{ 1, 0, 1, 3, 14, 63, },
{ 0, 1, 0, 1, 36, 32, },
{ 2, 1, 0, 1, 36, 30, },
{ 1, 1, 0, 1, 36, 30, },
{ 0, 1, 0, 1, 40, 32, },
{ 2, 1, 0, 1, 40, 30, },
{ 1, 1, 0, 1, 40, 30, },
{ 0, 1, 0, 1, 44, 32, },
{ 2, 1, 0, 1, 44, 30, },
{ 1, 1, 0, 1, 44, 30, },
{ 0, 1, 0, 1, 48, 32, },
{ 2, 1, 0, 1, 48, 30, },
{ 1, 1, 0, 1, 48, 30, },
{ 0, 1, 0, 1, 52, 32, },
{ 2, 1, 0, 1, 52, 30, },
{ 1, 1, 0, 1, 52, 30, },
{ 0, 1, 0, 1, 56, 32, },
{ 2, 1, 0, 1, 56, 30, },
{ 1, 1, 0, 1, 56, 30, },
{ 0, 1, 0, 1, 60, 32, },
{ 2, 1, 0, 1, 60, 30, },
{ 1, 1, 0, 1, 60, 30, },
{ 0, 1, 0, 1, 64, 32, },
{ 2, 1, 0, 1, 64, 30, },
{ 1, 1, 0, 1, 64, 30, },
{ 0, 1, 0, 1, 100, 32, },
{ 2, 1, 0, 1, 100, 30, },
{ 1, 1, 0, 1, 100, 30, },
{ 0, 1, 0, 1, 104, 32, },
{ 2, 1, 0, 1, 104, 30, },
{ 1, 1, 0, 1, 104, 30, },
{ 0, 1, 0, 1, 108, 32, },
{ 2, 1, 0, 1, 108, 30, },
{ 1, 1, 0, 1, 108, 30, },
{ 0, 1, 0, 1, 112, 32, },
{ 2, 1, 0, 1, 112, 30, },
{ 1, 1, 0, 1, 112, 30, },
{ 0, 1, 0, 1, 116, 32, },
{ 2, 1, 0, 1, 116, 30, },
{ 1, 1, 0, 1, 116, 30, },
{ 0, 1, 0, 1, 120, 32, },
{ 2, 1, 0, 1, 120, 30, },
{ 1, 1, 0, 1, 120, 30, },
{ 0, 1, 0, 1, 124, 32, },
{ 2, 1, 0, 1, 124, 30, },
{ 1, 1, 0, 1, 124, 30, },
{ 0, 1, 0, 1, 128, 32, },
{ 2, 1, 0, 1, 128, 30, },
{ 1, 1, 0, 1, 128, 30, },
{ 0, 1, 0, 1, 132, 32, },
{ 2, 1, 0, 1, 132, 30, },
{ 1, 1, 0, 1, 132, 30, },
{ 0, 1, 0, 1, 136, 32, },
{ 2, 1, 0, 1, 136, 30, },
{ 1, 1, 0, 1, 136, 30, },
{ 0, 1, 0, 1, 140, 32, },
{ 2, 1, 0, 1, 140, 30, },
{ 1, 1, 0, 1, 140, 30, },
{ 0, 1, 0, 1, 149, 32, },
{ 2, 1, 0, 1, 149, 30, },
{ 1, 1, 0, 1, 149, 63, },
{ 0, 1, 0, 1, 153, 32, },
{ 2, 1, 0, 1, 153, 30, },
{ 1, 1, 0, 1, 153, 63, },
{ 0, 1, 0, 1, 157, 32, },
{ 2, 1, 0, 1, 157, 30, },
{ 1, 1, 0, 1, 157, 63, },
{ 0, 1, 0, 1, 161, 32, },
{ 2, 1, 0, 1, 161, 30, },
{ 1, 1, 0, 1, 161, 63, },
{ 0, 1, 0, 1, 165, 32, },
{ 2, 1, 0, 1, 165, 30, },
{ 1, 1, 0, 1, 165, 63, },
{ 0, 1, 0, 2, 36, 32, },
{ 2, 1, 0, 2, 36, 30, },
{ 1, 1, 0, 2, 36, 30, },
{ 0, 1, 0, 2, 40, 32, },
{ 2, 1, 0, 2, 40, 30, },
{ 1, 1, 0, 2, 40, 30, },
{ 0, 1, 0, 2, 44, 32, },
{ 2, 1, 0, 2, 44, 30, },
{ 1, 1, 0, 2, 44, 30, },
{ 0, 1, 0, 2, 48, 32, },
{ 2, 1, 0, 2, 48, 30, },
{ 1, 1, 0, 2, 48, 30, },
{ 0, 1, 0, 2, 52, 32, },
{ 2, 1, 0, 2, 52, 30, },
{ 1, 1, 0, 2, 52, 30, },
{ 0, 1, 0, 2, 56, 32, },
{ 2, 1, 0, 2, 56, 30, },
{ 1, 1, 0, 2, 56, 30, },
{ 0, 1, 0, 2, 60, 32, },
{ 2, 1, 0, 2, 60, 30, },
{ 1, 1, 0, 2, 60, 30, },
{ 0, 1, 0, 2, 64, 32, },
{ 2, 1, 0, 2, 64, 30, },
{ 1, 1, 0, 2, 64, 30, },
{ 0, 1, 0, 2, 100, 32, },
{ 2, 1, 0, 2, 100, 30, },
{ 1, 1, 0, 2, 100, 30, },
{ 0, 1, 0, 2, 104, 32, },
{ 2, 1, 0, 2, 104, 30, },
{ 1, 1, 0, 2, 104, 30, },
{ 0, 1, 0, 2, 108, 32, },
{ 2, 1, 0, 2, 108, 30, },
{ 1, 1, 0, 2, 108, 30, },
{ 0, 1, 0, 2, 112, 32, },
{ 2, 1, 0, 2, 112, 30, },
{ 1, 1, 0, 2, 112, 30, },
{ 0, 1, 0, 2, 116, 32, },
{ 2, 1, 0, 2, 116, 30, },
{ 1, 1, 0, 2, 116, 30, },
{ 0, 1, 0, 2, 120, 32, },
{ 2, 1, 0, 2, 120, 30, },
{ 1, 1, 0, 2, 120, 30, },
{ 0, 1, 0, 2, 124, 32, },
{ 2, 1, 0, 2, 124, 30, },
{ 1, 1, 0, 2, 124, 30, },
{ 0, 1, 0, 2, 128, 32, },
{ 2, 1, 0, 2, 128, 30, },
{ 1, 1, 0, 2, 128, 30, },
{ 0, 1, 0, 2, 132, 32, },
{ 2, 1, 0, 2, 132, 30, },
{ 1, 1, 0, 2, 132, 30, },
{ 0, 1, 0, 2, 136, 32, },
{ 2, 1, 0, 2, 136, 30, },
{ 1, 1, 0, 2, 136, 30, },
{ 0, 1, 0, 2, 140, 32, },
{ 2, 1, 0, 2, 140, 30, },
{ 1, 1, 0, 2, 140, 30, },
{ 0, 1, 0, 2, 149, 32, },
{ 2, 1, 0, 2, 149, 30, },
{ 1, 1, 0, 2, 149, 63, },
{ 0, 1, 0, 2, 153, 32, },
{ 2, 1, 0, 2, 153, 30, },
{ 1, 1, 0, 2, 153, 63, },
{ 0, 1, 0, 2, 157, 32, },
{ 2, 1, 0, 2, 157, 30, },
{ 1, 1, 0, 2, 157, 63, },
{ 0, 1, 0, 2, 161, 32, },
{ 2, 1, 0, 2, 161, 30, },
{ 1, 1, 0, 2, 161, 63, },
{ 0, 1, 0, 2, 165, 32, },
{ 2, 1, 0, 2, 165, 30, },
{ 1, 1, 0, 2, 165, 63, },
{ 0, 1, 0, 3, 36, 28, },
{ 2, 1, 0, 3, 36, 30, },
{ 1, 1, 0, 3, 36, 30, },
{ 0, 1, 0, 3, 40, 28, },
{ 2, 1, 0, 3, 40, 30, },
{ 1, 1, 0, 3, 40, 30, },
{ 0, 1, 0, 3, 44, 28, },
{ 2, 1, 0, 3, 44, 30, },
{ 1, 1, 0, 3, 44, 30, },
{ 0, 1, 0, 3, 48, 28, },
{ 2, 1, 0, 3, 48, 30, },
{ 1, 1, 0, 3, 48, 30, },
{ 0, 1, 0, 3, 52, 34, },
{ 2, 1, 0, 3, 52, 30, },
{ 1, 1, 0, 3, 52, 30, },
{ 0, 1, 0, 3, 56, 32, },
{ 2, 1, 0, 3, 56, 30, },
{ 1, 1, 0, 3, 56, 30, },
{ 0, 1, 0, 3, 60, 30, },
{ 2, 1, 0, 3, 60, 30, },
{ 1, 1, 0, 3, 60, 30, },
{ 0, 1, 0, 3, 64, 26, },
{ 2, 1, 0, 3, 64, 30, },
{ 1, 1, 0, 3, 64, 30, },
{ 0, 1, 0, 3, 100, 28, },
{ 2, 1, 0, 3, 100, 30, },
{ 1, 1, 0, 3, 100, 30, },
{ 0, 1, 0, 3, 104, 28, },
{ 2, 1, 0, 3, 104, 30, },
{ 1, 1, 0, 3, 104, 30, },
{ 0, 1, 0, 3, 108, 30, },
{ 2, 1, 0, 3, 108, 30, },
{ 1, 1, 0, 3, 108, 30, },
{ 0, 1, 0, 3, 112, 32, },
{ 2, 1, 0, 3, 112, 30, },
{ 1, 1, 0, 3, 112, 30, },
{ 0, 1, 0, 3, 116, 32, },
{ 2, 1, 0, 3, 116, 30, },
{ 1, 1, 0, 3, 116, 30, },
{ 0, 1, 0, 3, 120, 34, },
{ 2, 1, 0, 3, 120, 30, },
{ 1, 1, 0, 3, 120, 30, },
{ 0, 1, 0, 3, 124, 32, },
{ 2, 1, 0, 3, 124, 30, },
{ 1, 1, 0, 3, 124, 30, },
{ 0, 1, 0, 3, 128, 30, },
{ 2, 1, 0, 3, 128, 30, },
{ 1, 1, 0, 3, 128, 30, },
{ 0, 1, 0, 3, 132, 28, },
{ 2, 1, 0, 3, 132, 30, },
{ 1, 1, 0, 3, 132, 30, },
{ 0, 1, 0, 3, 136, 28, },
{ 2, 1, 0, 3, 136, 30, },
{ 1, 1, 0, 3, 136, 30, },
{ 0, 1, 0, 3, 140, 26, },
{ 2, 1, 0, 3, 140, 30, },
{ 1, 1, 0, 3, 140, 30, },
{ 0, 1, 0, 3, 149, 34, },
{ 2, 1, 0, 3, 149, 30, },
{ 1, 1, 0, 3, 149, 63, },
{ 0, 1, 0, 3, 153, 34, },
{ 2, 1, 0, 3, 153, 30, },
{ 1, 1, 0, 3, 153, 63, },
{ 0, 1, 0, 3, 157, 34, },
{ 2, 1, 0, 3, 157, 30, },
{ 1, 1, 0, 3, 157, 63, },
{ 0, 1, 0, 3, 161, 34, },
{ 2, 1, 0, 3, 161, 30, },
{ 1, 1, 0, 3, 161, 63, },
{ 0, 1, 0, 3, 165, 34, },
{ 2, 1, 0, 3, 165, 30, },
{ 1, 1, 0, 3, 165, 63, },
{ 0, 1, 1, 2, 38, 26, },
{ 2, 1, 1, 2, 38, 30, },
{ 1, 1, 1, 2, 38, 30, },
{ 0, 1, 1, 2, 46, 32, },
{ 2, 1, 1, 2, 46, 30, },
{ 1, 1, 1, 2, 46, 30, },
{ 0, 1, 1, 2, 54, 32, },
{ 2, 1, 1, 2, 54, 30, },
{ 1, 1, 1, 2, 54, 30, },
{ 0, 1, 1, 2, 62, 24, },
{ 2, 1, 1, 2, 62, 30, },
{ 1, 1, 1, 2, 62, 30, },
{ 0, 1, 1, 2, 102, 24, },
{ 2, 1, 1, 2, 102, 30, },
{ 1, 1, 1, 2, 102, 30, },
{ 0, 1, 1, 2, 110, 32, },
{ 2, 1, 1, 2, 110, 30, },
{ 1, 1, 1, 2, 110, 30, },
{ 0, 1, 1, 2, 118, 32, },
{ 2, 1, 1, 2, 118, 30, },
{ 1, 1, 1, 2, 118, 30, },
{ 0, 1, 1, 2, 126, 32, },
{ 2, 1, 1, 2, 126, 30, },
{ 1, 1, 1, 2, 126, 30, },
{ 0, 1, 1, 2, 134, 32, },
{ 2, 1, 1, 2, 134, 30, },
{ 1, 1, 1, 2, 134, 30, },
{ 0, 1, 1, 2, 151, 30, },
{ 2, 1, 1, 2, 151, 30, },
{ 1, 1, 1, 2, 151, 63, },
{ 0, 1, 1, 2, 159, 32, },
{ 2, 1, 1, 2, 159, 30, },
{ 1, 1, 1, 2, 159, 63, },
{ 0, 1, 1, 3, 38, 28, },
{ 2, 1, 1, 3, 38, 30, },
{ 1, 1, 1, 3, 38, 30, },
{ 0, 1, 1, 3, 46, 28, },
{ 2, 1, 1, 3, 46, 30, },
{ 1, 1, 1, 3, 46, 30, },
{ 0, 1, 1, 3, 54, 30, },
{ 2, 1, 1, 3, 54, 30, },
{ 1, 1, 1, 3, 54, 30, },
{ 0, 1, 1, 3, 62, 30, },
{ 2, 1, 1, 3, 62, 30, },
{ 1, 1, 1, 3, 62, 30, },
{ 0, 1, 1, 3, 102, 26, },
{ 2, 1, 1, 3, 102, 30, },
{ 1, 1, 1, 3, 102, 30, },
{ 0, 1, 1, 3, 110, 30, },
{ 2, 1, 1, 3, 110, 30, },
{ 1, 1, 1, 3, 110, 30, },
{ 0, 1, 1, 3, 118, 34, },
{ 2, 1, 1, 3, 118, 30, },
{ 1, 1, 1, 3, 118, 30, },
{ 0, 1, 1, 3, 126, 32, },
{ 2, 1, 1, 3, 126, 30, },
{ 1, 1, 1, 3, 126, 30, },
{ 0, 1, 1, 3, 134, 30, },
{ 2, 1, 1, 3, 134, 30, },
{ 1, 1, 1, 3, 134, 30, },
{ 0, 1, 1, 3, 151, 34, },
{ 2, 1, 1, 3, 151, 30, },
{ 1, 1, 1, 3, 151, 63, },
{ 0, 1, 1, 3, 159, 34, },
{ 2, 1, 1, 3, 159, 30, },
{ 1, 1, 1, 3, 159, 63, },
{ 0, 1, 2, 4, 42, 22, },
{ 2, 1, 2, 4, 42, 30, },
{ 1, 1, 2, 4, 42, 30, },
{ 0, 1, 2, 4, 58, 20, },
{ 2, 1, 2, 4, 58, 30, },
{ 1, 1, 2, 4, 58, 30, },
{ 0, 1, 2, 4, 106, 20, },
{ 2, 1, 2, 4, 106, 30, },
{ 1, 1, 2, 4, 106, 30, },
{ 0, 1, 2, 4, 122, 20, },
{ 2, 1, 2, 4, 122, 30, },
{ 1, 1, 2, 4, 122, 30, },
{ 0, 1, 2, 4, 155, 28, },
{ 2, 1, 2, 4, 155, 30, },
{ 1, 1, 2, 4, 155, 63, },
{ 0, 1, 2, 5, 42, 28, },
{ 2, 1, 2, 5, 42, 30, },
{ 1, 1, 2, 5, 42, 30, },
{ 0, 1, 2, 5, 58, 26, },
{ 2, 1, 2, 5, 58, 30, },
{ 1, 1, 2, 5, 58, 30, },
{ 0, 1, 2, 5, 106, 28, },
{ 2, 1, 2, 5, 106, 30, },
{ 1, 1, 2, 5, 106, 30, },
{ 0, 1, 2, 5, 122, 32, },
{ 2, 1, 2, 5, 122, 30, },
{ 1, 1, 2, 5, 122, 30, },
{ 0, 1, 2, 5, 155, 34, },
{ 2, 1, 2, 5, 155, 30, },
{ 1, 1, 2, 5, 155, 63, },
};
RTW_DECL_TABLE_TXPWR_LMT(rtw8821a_txpwr_lmt);
static const struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8821a[] = {
{0x0005,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(3) | BIT(7), 0},
{0x0086,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_SDIO,
RTW_PWR_CMD_WRITE, BIT(0), 0},
{0x0086,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_SDIO,
RTW_PWR_CMD_POLLING, BIT(1), BIT(1)},
{0x004A,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_USB_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), 0},
{0x0005,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(3) | BIT(4), 0},
{0x0023,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(4), 0},
{0x0301,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_PCI_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, 0xFF, 0},
{0xFFFF,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
0,
RTW_PWR_CMD_END, 0, 0},
};
static const struct rtw_pwr_seq_cmd trans_cardemu_to_act_8821a[] = {
{0x0020,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
{0x0067,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(4), 0},
{0x0001,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_DELAY, 1, RTW_PWR_DELAY_MS},
{0x0000,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(5), 0},
{0x0005,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(4) | BIT(3) | BIT(2), 0},
{0x0075,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_PCI_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
{0x0006,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_POLLING, BIT(1), BIT(1)},
{0x0075,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_PCI_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), 0},
{0x0006,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
{0x0005,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(7), 0},
{0x0005,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(4) | BIT(3), 0},
{0x0005,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
{0x0005,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_POLLING, BIT(0), 0},
{0x004F,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
{0x0067,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(5) | BIT(4), BIT(5) | BIT(4)},
{0x0025,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(6), 0},
{0x0049,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
{0x0063,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
{0x0062,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(1), 0},
{0x0058,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
{0x005A,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
{0x002E,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, 0xFF, 0x82},
{0x0010,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(6), BIT(6)},
{0xFFFF,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
0,
RTW_PWR_CMD_END, 0, 0},
};
static const struct rtw_pwr_seq_cmd trans_act_to_lps_8821a[] = {
{0x0301,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_PCI_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, 0xFF, 0xFF},
{0x0522,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, 0xFF, 0xFF},
{0x05F8,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_POLLING, 0xFF, 0},
{0x05F9,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_POLLING, 0xFF, 0},
{0x05FA,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_POLLING, 0xFF, 0},
{0x05FB,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_POLLING, 0xFF, 0},
{0x0002,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), 0},
{0x0002,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_DELAY, 0, RTW_PWR_DELAY_US},
{0x0002,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(1), 0},
{0x0100,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, 0xFF, 0x03},
{0x0101,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(1), 0},
{0x0093,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, 0xFF, 0x00},
{0x0553,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(5), BIT(5)},
{0xFFFF,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
0,
RTW_PWR_CMD_END, 0, 0},
};
static const struct rtw_pwr_seq_cmd trans_act_to_cardemu_8821a[] = {
{0x001F,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, 0xFF, 0},
{0x004F,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), 0},
{0x0049,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(1), 0},
{0x0006,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_USB_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
{0x0005,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
{0x0005,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_POLLING, BIT(1), 0},
{0x0000,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(5), BIT(5)},
{0x0020,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), 0},
{0xFFFF,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
0,
RTW_PWR_CMD_END, 0, 0},
};
static const struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8821a[] = {
{0x0007,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, 0xFF, 0x20},
{0x0005,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)},
{0x0005,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_PCI_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(2), BIT(2)},
{0x004A,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_USB_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(0), 1},
{0x0023,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_MAC,
RTW_PWR_CMD_WRITE, BIT(4), BIT(4)},
{0x0086,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_SDIO,
RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
{0x0086,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_SDIO_MSK,
RTW_PWR_ADDR_SDIO,
RTW_PWR_CMD_POLLING, BIT(1), 0},
{0xFFFF,
RTW_PWR_CUT_ALL_MSK,
RTW_PWR_INTF_ALL_MSK,
0,
RTW_PWR_CMD_END, 0, 0},
};
const struct rtw_pwr_seq_cmd * const card_enable_flow_8821a[] = {
trans_carddis_to_cardemu_8821a,
trans_cardemu_to_act_8821a,
NULL
};
const struct rtw_pwr_seq_cmd * const enter_lps_flow_8821a[] = {
trans_act_to_lps_8821a,
NULL
};
const struct rtw_pwr_seq_cmd * const card_disable_flow_8821a[] = {
trans_act_to_cardemu_8821a,
trans_cardemu_to_carddis_8821a,
NULL
};
static const u8 rtw8821a_pwrtrk_5gb_n[][RTW_PWR_TRK_TBL_SZ] = {
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
};
static const u8 rtw8821a_pwrtrk_5gb_p[][RTW_PWR_TRK_TBL_SZ] = {
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
};
static const u8 rtw8821a_pwrtrk_5ga_n[][RTW_PWR_TRK_TBL_SZ] = {
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
};
static const u8 rtw8821a_pwrtrk_5ga_p[][RTW_PWR_TRK_TBL_SZ] = {
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
{0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15,
15, 16, 16, 16, 16, 16, 16, 16, 16},
};
static const u8 rtw8821a_pwrtrk_2gb_n[] = {
0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6,
6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10
};
static const u8 rtw8821a_pwrtrk_2gb_p[] = {
0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12
};
static const u8 rtw8821a_pwrtrk_2ga_n[] = {
0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6,
6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10
};
static const u8 rtw8821a_pwrtrk_2ga_p[] = {
0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12
};
static const u8 rtw8821a_pwrtrk_2g_cck_b_n[] = {
0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6,
6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10
};
static const u8 rtw8821a_pwrtrk_2g_cck_b_p[] = {
0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12
};
static const u8 rtw8821a_pwrtrk_2g_cck_a_n[] = {
0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6,
6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10
};
static const u8 rtw8821a_pwrtrk_2g_cck_a_p[] = {
0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12
};
const struct rtw_pwr_track_tbl rtw8821a_rtw_pwr_track_tbl = {
.pwrtrk_5gb_n[0] = rtw8821a_pwrtrk_5gb_n[0],
.pwrtrk_5gb_n[1] = rtw8821a_pwrtrk_5gb_n[1],
.pwrtrk_5gb_n[2] = rtw8821a_pwrtrk_5gb_n[2],
.pwrtrk_5gb_p[0] = rtw8821a_pwrtrk_5gb_p[0],
.pwrtrk_5gb_p[1] = rtw8821a_pwrtrk_5gb_p[1],
.pwrtrk_5gb_p[2] = rtw8821a_pwrtrk_5gb_p[2],
.pwrtrk_5ga_n[0] = rtw8821a_pwrtrk_5ga_n[0],
.pwrtrk_5ga_n[1] = rtw8821a_pwrtrk_5ga_n[1],
.pwrtrk_5ga_n[2] = rtw8821a_pwrtrk_5ga_n[2],
.pwrtrk_5ga_p[0] = rtw8821a_pwrtrk_5ga_p[0],
.pwrtrk_5ga_p[1] = rtw8821a_pwrtrk_5ga_p[1],
.pwrtrk_5ga_p[2] = rtw8821a_pwrtrk_5ga_p[2],
.pwrtrk_2gb_n = rtw8821a_pwrtrk_2gb_n,
.pwrtrk_2gb_p = rtw8821a_pwrtrk_2gb_p,
.pwrtrk_2ga_n = rtw8821a_pwrtrk_2ga_n,
.pwrtrk_2ga_p = rtw8821a_pwrtrk_2ga_p,
.pwrtrk_2g_cckb_n = rtw8821a_pwrtrk_2g_cck_b_n,
.pwrtrk_2g_cckb_p = rtw8821a_pwrtrk_2g_cck_b_p,
.pwrtrk_2g_ccka_n = rtw8821a_pwrtrk_2g_cck_a_n,
.pwrtrk_2g_ccka_p = rtw8821a_pwrtrk_2g_cck_a_p,
};