cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

tables_nphy.c (160367B)


      1// SPDX-License-Identifier: GPL-2.0-or-later
      2/*
      3
      4  Broadcom B43 wireless driver
      5  IEEE 802.11n PHY data tables
      6
      7  Copyright (c) 2008 Michael Buesch <m@bues.ch>
      8  Copyright (c) 2010 Rafał Miłecki <zajec5@gmail.com>
      9
     10
     11*/
     12
     13#include "b43.h"
     14#include "tables_nphy.h"
     15#include "phy_common.h"
     16#include "phy_n.h"
     17
     18static const u8 b43_ntab_adjustpower0[] = {
     19	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     20	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     21	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     22	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     23	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     24	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     25	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     26	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     27	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     28	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     29	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     30	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     31	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     32	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     33	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     34	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     35};
     36
     37static const u8 b43_ntab_adjustpower1[] = {
     38	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     39	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     40	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     41	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     42	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     43	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     44	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     45	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     46	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     47	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     48	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     49	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     50	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     51	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     52	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     53	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     54};
     55
     56static const u16 b43_ntab_bdi[] = {
     57	0x0070, 0x0126, 0x012C, 0x0246, 0x048D, 0x04D2,
     58};
     59
     60static const u32 b43_ntab_channelest[] = {
     61	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     62	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     63	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     64	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     65	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     66	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     67	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     68	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     69	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     70	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     71	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     72	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     73	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     74	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     75	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     76	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     77	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     78	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     79	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     80	0x44444444, 0x44444444, 0x44444444, 0x44444444,
     81	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     82	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     83	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     84	0x10101010, 0x10101010, 0x10101010, 0x10101010,
     85};
     86
     87static const u8 b43_ntab_estimatepowerlt0[] = {
     88	0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
     89	0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
     90	0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
     91	0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
     92	0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
     93	0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
     94	0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
     95	0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
     96};
     97
     98static const u8 b43_ntab_estimatepowerlt1[] = {
     99	0x50, 0x4F, 0x4E, 0x4D, 0x4C, 0x4B, 0x4A, 0x49,
    100	0x48, 0x47, 0x46, 0x45, 0x44, 0x43, 0x42, 0x41,
    101	0x40, 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39,
    102	0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
    103	0x30, 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29,
    104	0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21,
    105	0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19,
    106	0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11,
    107};
    108
    109static const u8 b43_ntab_framelookup[] = {
    110	0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
    111	0x0A, 0x0C, 0x1C, 0x1C, 0x0B, 0x0D, 0x1E, 0x1E,
    112	0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1A, 0x1A,
    113	0x0E, 0x10, 0x20, 0x28, 0x0F, 0x11, 0x22, 0x2A,
    114};
    115
    116static const u32 b43_ntab_framestruct[] = {
    117	0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
    118	0x09804506, 0x00100030, 0x09804507, 0x00100030,
    119	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    120	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    121	0x08004A0C, 0x00100004, 0x01000A0D, 0x00100024,
    122	0x0980450E, 0x00100034, 0x0980450F, 0x00100034,
    123	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    124	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    125	0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
    126	0x1980C506, 0x00100030, 0x21810506, 0x00100030,
    127	0x21810506, 0x00100030, 0x01800504, 0x00100030,
    128	0x11808505, 0x00100030, 0x29814507, 0x01100030,
    129	0x00000A04, 0x00100000, 0x11008A05, 0x00100020,
    130	0x21810506, 0x00100030, 0x21810506, 0x00100030,
    131	0x29814507, 0x01100030, 0x00000000, 0x00000000,
    132	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    133	0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
    134	0x1980C50E, 0x00100038, 0x2181050E, 0x00100038,
    135	0x2181050E, 0x00100038, 0x0180050C, 0x00100038,
    136	0x1180850D, 0x00100038, 0x2981450F, 0x01100038,
    137	0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
    138	0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
    139	0x2981450F, 0x01100038, 0x00000000, 0x00000000,
    140	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    141	0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
    142	0x1980C506, 0x00100030, 0x1980C506, 0x00100030,
    143	0x11808504, 0x00100030, 0x3981CA05, 0x00100030,
    144	0x29814507, 0x01100030, 0x00000000, 0x00000000,
    145	0x10008A04, 0x00100000, 0x3981CA05, 0x00100030,
    146	0x1980C506, 0x00100030, 0x29814507, 0x01100030,
    147	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    148	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    149	0x08004A0C, 0x00100008, 0x01000A0D, 0x00100028,
    150	0x1980C50E, 0x00100038, 0x1980C50E, 0x00100038,
    151	0x1180850C, 0x00100038, 0x3981CA0D, 0x00100038,
    152	0x2981450F, 0x01100038, 0x00000000, 0x00000000,
    153	0x10008A0C, 0x00100008, 0x3981CA0D, 0x00100038,
    154	0x1980C50E, 0x00100038, 0x2981450F, 0x01100038,
    155	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    156	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    157	0x40021404, 0x00100000, 0x02001405, 0x00100040,
    158	0x0B004A06, 0x01900060, 0x13008A06, 0x01900060,
    159	0x13008A06, 0x01900060, 0x43020A04, 0x00100060,
    160	0x1B00CA05, 0x00100060, 0x23010A07, 0x01500060,
    161	0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
    162	0x13008A06, 0x01900060, 0x13008A06, 0x01900060,
    163	0x23010A07, 0x01500060, 0x00000000, 0x00000000,
    164	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    165	0x4002140C, 0x00100010, 0x0200140D, 0x00100050,
    166	0x0B004A0E, 0x01900070, 0x13008A0E, 0x01900070,
    167	0x13008A0E, 0x01900070, 0x43020A0C, 0x00100070,
    168	0x1B00CA0D, 0x00100070, 0x23010A0F, 0x01500070,
    169	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
    170	0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
    171	0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
    172	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    173	0x50029404, 0x00100000, 0x32019405, 0x00100040,
    174	0x0B004A06, 0x01900060, 0x0B004A06, 0x01900060,
    175	0x5B02CA04, 0x00100060, 0x3B01D405, 0x00100060,
    176	0x23010A07, 0x01500060, 0x00000000, 0x00000000,
    177	0x5802D404, 0x00100000, 0x3B01D405, 0x00100060,
    178	0x0B004A06, 0x01900060, 0x23010A07, 0x01500060,
    179	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    180	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    181	0x5002940C, 0x00100010, 0x3201940D, 0x00100050,
    182	0x0B004A0E, 0x01900070, 0x0B004A0E, 0x01900070,
    183	0x5B02CA0C, 0x00100070, 0x3B01D40D, 0x00100070,
    184	0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
    185	0x5802D40C, 0x00100010, 0x3B01D40D, 0x00100070,
    186	0x0B004A0E, 0x01900070, 0x23010A0F, 0x01500070,
    187	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    188	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    189	0x40021404, 0x000F4800, 0x62031405, 0x00100040,
    190	0x53028A06, 0x01900060, 0x53028A07, 0x01900060,
    191	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    192	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    193	0x4002140C, 0x000F4808, 0x6203140D, 0x00100048,
    194	0x53028A0E, 0x01900068, 0x53028A0F, 0x01900068,
    195	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    196	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    197	0x00000A0C, 0x00100004, 0x11008A0D, 0x00100024,
    198	0x1980C50E, 0x00100034, 0x2181050E, 0x00100034,
    199	0x2181050E, 0x00100034, 0x0180050C, 0x00100038,
    200	0x1180850D, 0x00100038, 0x1181850D, 0x00100038,
    201	0x2981450F, 0x01100038, 0x00000000, 0x00000000,
    202	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    203	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    204	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    205	0x00000A0C, 0x00100008, 0x11008A0D, 0x00100028,
    206	0x2181050E, 0x00100038, 0x2181050E, 0x00100038,
    207	0x1181850D, 0x00100038, 0x2981450F, 0x01100038,
    208	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    209	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    210	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    211	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    212	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    213	0x08004A04, 0x00100000, 0x01000A05, 0x00100020,
    214	0x0180C506, 0x00100030, 0x0180C506, 0x00100030,
    215	0x2180C50C, 0x00100030, 0x49820A0D, 0x0016A130,
    216	0x41824A0D, 0x0016A130, 0x2981450F, 0x01100030,
    217	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    218	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    219	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    220	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    221	0x2000CA0C, 0x00100000, 0x49820A0D, 0x0016A130,
    222	0x1980C50E, 0x00100030, 0x41824A0D, 0x0016A130,
    223	0x2981450F, 0x01100030, 0x00000000, 0x00000000,
    224	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    225	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    226	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    227	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    228	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    229	0x4002140C, 0x00100008, 0x0200140D, 0x00100048,
    230	0x0B004A0E, 0x01900068, 0x13008A0E, 0x01900068,
    231	0x13008A0E, 0x01900068, 0x43020A0C, 0x00100070,
    232	0x1B00CA0D, 0x00100070, 0x1B014A0D, 0x00100070,
    233	0x23010A0F, 0x01500070, 0x00000000, 0x00000000,
    234	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    235	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    236	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    237	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
    238	0x13008A0E, 0x01900070, 0x13008A0E, 0x01900070,
    239	0x1B014A0D, 0x00100070, 0x23010A0F, 0x01500070,
    240	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    241	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    242	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    243	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    244	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    245	0x50029404, 0x00100000, 0x32019405, 0x00100040,
    246	0x03004A06, 0x01900060, 0x03004A06, 0x01900060,
    247	0x6B030A0C, 0x00100060, 0x4B02140D, 0x0016A160,
    248	0x4302540D, 0x0016A160, 0x23010A0F, 0x01500060,
    249	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    250	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    251	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    252	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    253	0x6B03140C, 0x00100060, 0x4B02140D, 0x0016A160,
    254	0x0B004A0E, 0x01900060, 0x4302540D, 0x0016A160,
    255	0x23010A0F, 0x01500060, 0x00000000, 0x00000000,
    256	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    257	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    258	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    259	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    260	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    261	0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
    262	0x53028A06, 0x01900060, 0x5B02CA06, 0x01900060,
    263	0x5B02CA06, 0x01900060, 0x43020A04, 0x00100060,
    264	0x1B00CA05, 0x00100060, 0x53028A07, 0x0190C060,
    265	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    266	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    267	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    268	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    269	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
    270	0x53028A0E, 0x01900070, 0x5B02CA0E, 0x01900070,
    271	0x5B02CA0E, 0x01900070, 0x43020A0C, 0x00100070,
    272	0x1B00CA0D, 0x00100070, 0x53028A0F, 0x0190C070,
    273	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    274	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    275	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    276	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    277	0x40021404, 0x00100000, 0x1A00D405, 0x00100040,
    278	0x5B02CA06, 0x01900060, 0x5B02CA06, 0x01900060,
    279	0x53028A07, 0x0190C060, 0x00000000, 0x00000000,
    280	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    281	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    282	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    283	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    284	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    285	0x4002140C, 0x00100010, 0x1A00D40D, 0x00100050,
    286	0x5B02CA0E, 0x01900070, 0x5B02CA0E, 0x01900070,
    287	0x53028A0F, 0x0190C070, 0x00000000, 0x00000000,
    288	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    289	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    290	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    291	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    292	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    293	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    294	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    295	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    296	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    297	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    298	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    299	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    300	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    301	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    302	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    303	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    304	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    305	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    306	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    307	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    308	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    309	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    310	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    311	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    312	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    313	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    314	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    315	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    316	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    317	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    318	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    319	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    320	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    321	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    322	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    323	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    324	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    325};
    326
    327static const u32 b43_ntab_gainctl0[] = {
    328	0x03CC2B44, 0x03CC2B42, 0x03CC2B40, 0x03CC2B3E,
    329	0x03CC2B3D, 0x03CC2B3B, 0x03C82B44, 0x03C82B42,
    330	0x03C82B40, 0x03C82B3E, 0x03C82B3D, 0x03C82B3B,
    331	0x03C82B39, 0x03C82B38, 0x03C82B36, 0x03C82B34,
    332	0x03C42B44, 0x03C42B42, 0x03C42B40, 0x03C42B3E,
    333	0x03C42B3D, 0x03C42B3B, 0x03C42B39, 0x03C42B38,
    334	0x03C42B36, 0x03C42B34, 0x03C42B33, 0x03C42B32,
    335	0x03C42B30, 0x03C42B2F, 0x03C42B2D, 0x03C02B44,
    336	0x03C02B42, 0x03C02B40, 0x03C02B3E, 0x03C02B3D,
    337	0x03C02B3B, 0x03C02B39, 0x03C02B38, 0x03C02B36,
    338	0x03C02B34, 0x03B02B44, 0x03B02B42, 0x03B02B40,
    339	0x03B02B3E, 0x03B02B3D, 0x03B02B3B, 0x03B02B39,
    340	0x03B02B38, 0x03B02B36, 0x03B02B34, 0x03B02B33,
    341	0x03B02B32, 0x03B02B30, 0x03B02B2F, 0x03B02B2D,
    342	0x03A02B44, 0x03A02B42, 0x03A02B40, 0x03A02B3E,
    343	0x03A02B3D, 0x03A02B3B, 0x03A02B39, 0x03A02B38,
    344	0x03A02B36, 0x03A02B34, 0x03902B44, 0x03902B42,
    345	0x03902B40, 0x03902B3E, 0x03902B3D, 0x03902B3B,
    346	0x03902B39, 0x03902B38, 0x03902B36, 0x03902B34,
    347	0x03902B33, 0x03902B32, 0x03902B30, 0x03802B44,
    348	0x03802B42, 0x03802B40, 0x03802B3E, 0x03802B3D,
    349	0x03802B3B, 0x03802B39, 0x03802B38, 0x03802B36,
    350	0x03802B34, 0x03802B33, 0x03802B32, 0x03802B30,
    351	0x03802B2F, 0x03802B2D, 0x03802B2C, 0x03802B2B,
    352	0x03802B2A, 0x03802B29, 0x03802B27, 0x03802B26,
    353	0x03802B25, 0x03802B24, 0x03802B23, 0x03802B22,
    354	0x03802B21, 0x03802B20, 0x03802B1F, 0x03802B1E,
    355	0x03802B1E, 0x03802B1D, 0x03802B1C, 0x03802B1B,
    356	0x03802B1A, 0x03802B1A, 0x03802B19, 0x03802B18,
    357	0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
    358	0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
    359	0x03802B18, 0x03802B18, 0x03802B18, 0x00002B00,
    360};
    361
    362static const u32 b43_ntab_gainctl1[] = {
    363	0x03CC2B44, 0x03CC2B42, 0x03CC2B40, 0x03CC2B3E,
    364	0x03CC2B3D, 0x03CC2B3B, 0x03C82B44, 0x03C82B42,
    365	0x03C82B40, 0x03C82B3E, 0x03C82B3D, 0x03C82B3B,
    366	0x03C82B39, 0x03C82B38, 0x03C82B36, 0x03C82B34,
    367	0x03C42B44, 0x03C42B42, 0x03C42B40, 0x03C42B3E,
    368	0x03C42B3D, 0x03C42B3B, 0x03C42B39, 0x03C42B38,
    369	0x03C42B36, 0x03C42B34, 0x03C42B33, 0x03C42B32,
    370	0x03C42B30, 0x03C42B2F, 0x03C42B2D, 0x03C02B44,
    371	0x03C02B42, 0x03C02B40, 0x03C02B3E, 0x03C02B3D,
    372	0x03C02B3B, 0x03C02B39, 0x03C02B38, 0x03C02B36,
    373	0x03C02B34, 0x03B02B44, 0x03B02B42, 0x03B02B40,
    374	0x03B02B3E, 0x03B02B3D, 0x03B02B3B, 0x03B02B39,
    375	0x03B02B38, 0x03B02B36, 0x03B02B34, 0x03B02B33,
    376	0x03B02B32, 0x03B02B30, 0x03B02B2F, 0x03B02B2D,
    377	0x03A02B44, 0x03A02B42, 0x03A02B40, 0x03A02B3E,
    378	0x03A02B3D, 0x03A02B3B, 0x03A02B39, 0x03A02B38,
    379	0x03A02B36, 0x03A02B34, 0x03902B44, 0x03902B42,
    380	0x03902B40, 0x03902B3E, 0x03902B3D, 0x03902B3B,
    381	0x03902B39, 0x03902B38, 0x03902B36, 0x03902B34,
    382	0x03902B33, 0x03902B32, 0x03902B30, 0x03802B44,
    383	0x03802B42, 0x03802B40, 0x03802B3E, 0x03802B3D,
    384	0x03802B3B, 0x03802B39, 0x03802B38, 0x03802B36,
    385	0x03802B34, 0x03802B33, 0x03802B32, 0x03802B30,
    386	0x03802B2F, 0x03802B2D, 0x03802B2C, 0x03802B2B,
    387	0x03802B2A, 0x03802B29, 0x03802B27, 0x03802B26,
    388	0x03802B25, 0x03802B24, 0x03802B23, 0x03802B22,
    389	0x03802B21, 0x03802B20, 0x03802B1F, 0x03802B1E,
    390	0x03802B1E, 0x03802B1D, 0x03802B1C, 0x03802B1B,
    391	0x03802B1A, 0x03802B1A, 0x03802B19, 0x03802B18,
    392	0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
    393	0x03802B18, 0x03802B18, 0x03802B18, 0x03802B18,
    394	0x03802B18, 0x03802B18, 0x03802B18, 0x00002B00,
    395};
    396
    397static const u32 b43_ntab_intlevel[] = {
    398	0x00802070, 0x0671188D, 0x0A60192C, 0x0A300E46,
    399	0x00C1188D, 0x080024D2, 0x00000070,
    400};
    401
    402static const u32 b43_ntab_iqlt0[] = {
    403	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    404	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    405	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    406	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    407	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    408	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    409	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    410	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    411	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    412	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    413	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    414	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    415	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    416	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    417	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    418	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    419	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    420	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    421	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    422	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    423	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    424	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    425	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    426	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    427	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    428	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    429	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    430	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    431	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    432	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    433	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    434	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    435};
    436
    437static const u32 b43_ntab_iqlt1[] = {
    438	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    439	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    440	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    441	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    442	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    443	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    444	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    445	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    446	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    447	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    448	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    449	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    450	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    451	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    452	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    453	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    454	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    455	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    456	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    457	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    458	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    459	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    460	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    461	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    462	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    463	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    464	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    465	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    466	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    467	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    468	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    469	0x0000007F, 0x0000007F, 0x0000007F, 0x0000007F,
    470};
    471
    472static const u16 b43_ntab_loftlt0[] = {
    473	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    474	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    475	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    476	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    477	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    478	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    479	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    480	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    481	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    482	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    483	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    484	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    485	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    486	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    487	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    488	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    489	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    490	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    491	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    492	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    493	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    494	0x0002, 0x0103,
    495};
    496
    497static const u16 b43_ntab_loftlt1[] = {
    498	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    499	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    500	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    501	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    502	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    503	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    504	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    505	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    506	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    507	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    508	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    509	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    510	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    511	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    512	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    513	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    514	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    515	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    516	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    517	0x0002, 0x0103, 0x0000, 0x0101, 0x0002, 0x0103,
    518	0x0000, 0x0101, 0x0002, 0x0103, 0x0000, 0x0101,
    519	0x0002, 0x0103,
    520};
    521
    522static const u8 b43_ntab_mcs[] = {
    523	0x00, 0x08, 0x0A, 0x10, 0x12, 0x19, 0x1A, 0x1C,
    524	0x40, 0x48, 0x4A, 0x50, 0x52, 0x59, 0x5A, 0x5C,
    525	0x80, 0x88, 0x8A, 0x90, 0x92, 0x99, 0x9A, 0x9C,
    526	0xC0, 0xC8, 0xCA, 0xD0, 0xD2, 0xD9, 0xDA, 0xDC,
    527	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    528	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    529	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    530	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    531	0x00, 0x01, 0x02, 0x04, 0x08, 0x09, 0x0A, 0x0C,
    532	0x10, 0x11, 0x12, 0x14, 0x18, 0x19, 0x1A, 0x1C,
    533	0x20, 0x21, 0x22, 0x24, 0x40, 0x41, 0x42, 0x44,
    534	0x48, 0x49, 0x4A, 0x4C, 0x50, 0x51, 0x52, 0x54,
    535	0x58, 0x59, 0x5A, 0x5C, 0x60, 0x61, 0x62, 0x64,
    536	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    537	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    538	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    539};
    540
    541static const u32 b43_ntab_noisevar10[] = {
    542	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    543	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    544	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    545	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    546	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    547	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    548	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    549	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    550	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    551	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    552	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    553	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    554	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    555	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    556	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    557	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    558	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    559	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    560	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    561	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    562	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    563	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    564	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    565	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    566	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    567	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    568	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    569	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    570	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    571	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    572	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    573	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    574	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    575	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    576	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    577	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    578	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    579	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    580	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    581	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    582	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    583	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    584	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    585	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    586	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    587	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    588	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    589	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    590	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    591	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    592	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    593	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    594	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    595	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    596	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    597	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    598	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    599	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    600	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    601	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    602	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    603	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    604	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    605	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    606};
    607
    608static const u32 b43_ntab_noisevar11[] = {
    609	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    610	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    611	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    612	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    613	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    614	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    615	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    616	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    617	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    618	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    619	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    620	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    621	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    622	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    623	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    624	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    625	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    626	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    627	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    628	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    629	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    630	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    631	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    632	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    633	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    634	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    635	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    636	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    637	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    638	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    639	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    640	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    641	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    642	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    643	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    644	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    645	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    646	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    647	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    648	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    649	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    650	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    651	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    652	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    653	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    654	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    655	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    656	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    657	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    658	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    659	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    660	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    661	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    662	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    663	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    664	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    665	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    666	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    667	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    668	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    669	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    670	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    671	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    672	0x020C020C, 0x0000014D, 0x020C020C, 0x0000014D,
    673};
    674
    675static const u16 b43_ntab_pilot[] = {
    676	0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08, 0xFF08,
    677	0xFF08, 0xFF08, 0x80D5, 0x80D5, 0x80D5, 0x80D5,
    678	0x80D5, 0x80D5, 0x80D5, 0x80D5, 0xFF0A, 0xFF82,
    679	0xFFA0, 0xFF28, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
    680	0xFF82, 0xFFA0, 0xFF28, 0xFF0A, 0xFFFF, 0xFFFF,
    681	0xFFFF, 0xFFFF, 0xF83F, 0xFA1F, 0xFA97, 0xFAB5,
    682	0xF2BD, 0xF0BF, 0xFFFF, 0xFFFF, 0xF017, 0xF815,
    683	0xF215, 0xF095, 0xF035, 0xF01D, 0xFFFF, 0xFFFF,
    684	0xFF08, 0xFF02, 0xFF80, 0xFF20, 0xFF08, 0xFF02,
    685	0xFF80, 0xFF20, 0xF01F, 0xF817, 0xFA15, 0xF295,
    686	0xF0B5, 0xF03D, 0xFFFF, 0xFFFF, 0xF82A, 0xFA0A,
    687	0xFA82, 0xFAA0, 0xF2A8, 0xF0AA, 0xFFFF, 0xFFFF,
    688	0xF002, 0xF800, 0xF200, 0xF080, 0xF020, 0xF008,
    689	0xFFFF, 0xFFFF, 0xF00A, 0xF802, 0xFA00, 0xF280,
    690	0xF0A0, 0xF028, 0xFFFF, 0xFFFF,
    691};
    692
    693static const u32 b43_ntab_pilotlt[] = {
    694	0x76540123, 0x62407351, 0x76543201, 0x76540213,
    695	0x76540123, 0x76430521,
    696};
    697
    698static const u32 b43_ntab_tdi20a0[] = {
    699	0x00091226, 0x000A1429, 0x000B56AD, 0x000C58B0,
    700	0x000D5AB3, 0x000E9CB6, 0x000F9EBA, 0x0000C13D,
    701	0x00020301, 0x00030504, 0x00040708, 0x0005090B,
    702	0x00064B8E, 0x00095291, 0x000A5494, 0x000B9718,
    703	0x000C9927, 0x000D9B2A, 0x000EDD2E, 0x000FDF31,
    704	0x000101B4, 0x000243B7, 0x000345BB, 0x000447BE,
    705	0x00058982, 0x00068C05, 0x00099309, 0x000A950C,
    706	0x000BD78F, 0x000CD992, 0x000DDB96, 0x000F1D99,
    707	0x00005FA8, 0x0001422C, 0x0002842F, 0x00038632,
    708	0x00048835, 0x0005CA38, 0x0006CCBC, 0x0009D3BF,
    709	0x000B1603, 0x000C1806, 0x000D1A0A, 0x000E1C0D,
    710	0x000F5E10, 0x00008093, 0x00018297, 0x0002C49A,
    711	0x0003C680, 0x0004C880, 0x00060B00, 0x00070D00,
    712	0x00000000, 0x00000000, 0x00000000,
    713};
    714
    715static const u32 b43_ntab_tdi20a1[] = {
    716	0x00014B26, 0x00028D29, 0x000393AD, 0x00049630,
    717	0x0005D833, 0x0006DA36, 0x00099C3A, 0x000A9E3D,
    718	0x000BC081, 0x000CC284, 0x000DC488, 0x000F068B,
    719	0x0000488E, 0x00018B91, 0x0002D214, 0x0003D418,
    720	0x0004D6A7, 0x000618AA, 0x00071AAE, 0x0009DCB1,
    721	0x000B1EB4, 0x000C0137, 0x000D033B, 0x000E053E,
    722	0x000F4702, 0x00008905, 0x00020C09, 0x0003128C,
    723	0x0004148F, 0x00051712, 0x00065916, 0x00091B19,
    724	0x000A1D28, 0x000B5F2C, 0x000C41AF, 0x000D43B2,
    725	0x000E85B5, 0x000F87B8, 0x0000C9BC, 0x00024CBF,
    726	0x00035303, 0x00045506, 0x0005978A, 0x0006998D,
    727	0x00095B90, 0x000A5D93, 0x000B9F97, 0x000C821A,
    728	0x000D8400, 0x000EC600, 0x000FC800, 0x00010A00,
    729	0x00000000, 0x00000000, 0x00000000,
    730};
    731
    732static const u32 b43_ntab_tdi40a0[] = {
    733	0x0011A346, 0x00136CCF, 0x0014F5D9, 0x001641E2,
    734	0x0017CB6B, 0x00195475, 0x001B2383, 0x001CAD0C,
    735	0x001E7616, 0x0000821F, 0x00020BA8, 0x0003D4B2,
    736	0x00056447, 0x00072DD0, 0x0008B6DA, 0x000A02E3,
    737	0x000B8C6C, 0x000D15F6, 0x0011E484, 0x0013AE0D,
    738	0x00153717, 0x00168320, 0x00180CA9, 0x00199633,
    739	0x001B6548, 0x001CEED1, 0x001EB7DB, 0x0000C3E4,
    740	0x00024D6D, 0x000416F7, 0x0005A585, 0x00076F0F,
    741	0x0008F818, 0x000A4421, 0x000BCDAB, 0x000D9734,
    742	0x00122649, 0x0013EFD2, 0x001578DC, 0x0016C4E5,
    743	0x00184E6E, 0x001A17F8, 0x001BA686, 0x001D3010,
    744	0x001EF999, 0x00010522, 0x00028EAC, 0x00045835,
    745	0x0005E74A, 0x0007B0D3, 0x00093A5D, 0x000A85E6,
    746	0x000C0F6F, 0x000DD8F9, 0x00126787, 0x00143111,
    747	0x0015BA9A, 0x00170623, 0x00188FAD, 0x001A5936,
    748	0x001BE84B, 0x001DB1D4, 0x001F3B5E, 0x000146E7,
    749	0x00031070, 0x000499FA, 0x00062888, 0x0007F212,
    750	0x00097B9B, 0x000AC7A4, 0x000C50AE, 0x000E1A37,
    751	0x0012A94C, 0x001472D5, 0x0015FC5F, 0x00174868,
    752	0x0018D171, 0x001A9AFB, 0x001C2989, 0x001DF313,
    753	0x001F7C9C, 0x000188A5, 0x000351AF, 0x0004DB38,
    754	0x0006AA4D, 0x000833D7, 0x0009BD60, 0x000B0969,
    755	0x000C9273, 0x000E5BFC, 0x00132A8A, 0x0014B414,
    756	0x00163D9D, 0x001789A6, 0x001912B0, 0x001ADC39,
    757	0x001C6BCE, 0x001E34D8, 0x001FBE61, 0x0001CA6A,
    758	0x00039374, 0x00051CFD, 0x0006EC0B, 0x00087515,
    759	0x0009FE9E, 0x000B4AA7, 0x000CD3B1, 0x000E9D3A,
    760	0x00000000, 0x00000000,
    761};
    762
    763static const u32 b43_ntab_tdi40a1[] = {
    764	0x001EDB36, 0x000129CA, 0x0002B353, 0x00047CDD,
    765	0x0005C8E6, 0x000791EF, 0x00091BF9, 0x000AAA07,
    766	0x000C3391, 0x000DFD1A, 0x00120923, 0x0013D22D,
    767	0x00155C37, 0x0016EACB, 0x00187454, 0x001A3DDE,
    768	0x001B89E7, 0x001D12F0, 0x001F1CFA, 0x00016B88,
    769	0x00033492, 0x0004BE1B, 0x00060A24, 0x0007D32E,
    770	0x00095D38, 0x000AEC4C, 0x000C7555, 0x000E3EDF,
    771	0x00124AE8, 0x001413F1, 0x0015A37B, 0x00172C89,
    772	0x0018B593, 0x001A419C, 0x001BCB25, 0x001D942F,
    773	0x001F63B9, 0x0001AD4D, 0x00037657, 0x0004C260,
    774	0x00068BE9, 0x000814F3, 0x0009A47C, 0x000B2D8A,
    775	0x000CB694, 0x000E429D, 0x00128C26, 0x001455B0,
    776	0x0015E4BA, 0x00176E4E, 0x0018F758, 0x001A8361,
    777	0x001C0CEA, 0x001DD674, 0x001FA57D, 0x0001EE8B,
    778	0x0003B795, 0x0005039E, 0x0006CD27, 0x000856B1,
    779	0x0009E5C6, 0x000B6F4F, 0x000CF859, 0x000E8462,
    780	0x00130DEB, 0x00149775, 0x00162603, 0x0017AF8C,
    781	0x00193896, 0x001AC49F, 0x001C4E28, 0x001E17B2,
    782	0x0000A6C7, 0x00023050, 0x0003F9DA, 0x00054563,
    783	0x00070EEC, 0x00089876, 0x000A2704, 0x000BB08D,
    784	0x000D3A17, 0x001185A0, 0x00134F29, 0x0014D8B3,
    785	0x001667C8, 0x0017F151, 0x00197ADB, 0x001B0664,
    786	0x001C8FED, 0x001E5977, 0x0000E805, 0x0002718F,
    787	0x00043B18, 0x000586A1, 0x0007502B, 0x0008D9B4,
    788	0x000A68C9, 0x000BF252, 0x000DBBDC, 0x0011C7E5,
    789	0x001390EE, 0x00151A78, 0x0016A906, 0x00183290,
    790	0x0019BC19, 0x001B4822, 0x001CD12C, 0x001E9AB5,
    791	0x00000000, 0x00000000,
    792};
    793
    794static const u32 b43_ntab_tdtrn[] = {
    795	0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
    796	0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
    797	0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
    798	0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
    799	0x061C061C, 0x0050EE68, 0xF592FE36, 0xFE5212F6,
    800	0x00000C38, 0xFE5212F6, 0xF592FE36, 0x0050EE68,
    801	0x061C061C, 0xEE680050, 0xFE36F592, 0x12F6FE52,
    802	0x0C380000, 0x12F6FE52, 0xFE36F592, 0xEE680050,
    803	0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
    804	0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
    805	0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
    806	0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
    807	0x05E305E3, 0x004DEF0C, 0xF5F3FE47, 0xFE611246,
    808	0x00000BC7, 0xFE611246, 0xF5F3FE47, 0x004DEF0C,
    809	0x05E305E3, 0xEF0C004D, 0xFE47F5F3, 0x1246FE61,
    810	0x0BC70000, 0x1246FE61, 0xFE47F5F3, 0xEF0C004D,
    811	0xFA58FA58, 0xF895043B, 0xFF4C09C0, 0xFBC6FFA8,
    812	0xFB84F384, 0x0798F6F9, 0x05760122, 0x058409F6,
    813	0x0B500000, 0x05B7F542, 0x08860432, 0x06DDFEE7,
    814	0xFB84F384, 0xF9D90664, 0xF7E8025C, 0x00FFF7BD,
    815	0x05A805A8, 0xF7BD00FF, 0x025CF7E8, 0x0664F9D9,
    816	0xF384FB84, 0xFEE706DD, 0x04320886, 0xF54205B7,
    817	0x00000B50, 0x09F60584, 0x01220576, 0xF6F90798,
    818	0xF384FB84, 0xFFA8FBC6, 0x09C0FF4C, 0x043BF895,
    819	0x02D402D4, 0x07DE0270, 0xFC96079C, 0xF90AFE94,
    820	0xFE00FF2C, 0x02D4065D, 0x092A0096, 0x0014FBB8,
    821	0xFD2CFD2C, 0x076AFB3C, 0x0096F752, 0xF991FD87,
    822	0xFB2C0200, 0xFEB8F960, 0x08E0FC96, 0x049802A8,
    823	0xFD2CFD2C, 0x02A80498, 0xFC9608E0, 0xF960FEB8,
    824	0x0200FB2C, 0xFD87F991, 0xF7520096, 0xFB3C076A,
    825	0xFD2CFD2C, 0xFBB80014, 0x0096092A, 0x065D02D4,
    826	0xFF2CFE00, 0xFE94F90A, 0x079CFC96, 0x027007DE,
    827	0x02D402D4, 0x027007DE, 0x079CFC96, 0xFE94F90A,
    828	0xFF2CFE00, 0x065D02D4, 0x0096092A, 0xFBB80014,
    829	0xFD2CFD2C, 0xFB3C076A, 0xF7520096, 0xFD87F991,
    830	0x0200FB2C, 0xF960FEB8, 0xFC9608E0, 0x02A80498,
    831	0xFD2CFD2C, 0x049802A8, 0x08E0FC96, 0xFEB8F960,
    832	0xFB2C0200, 0xF991FD87, 0x0096F752, 0x076AFB3C,
    833	0xFD2CFD2C, 0x0014FBB8, 0x092A0096, 0x02D4065D,
    834	0xFE00FF2C, 0xF90AFE94, 0xFC96079C, 0x07DE0270,
    835	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    836	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    837	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    838	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    839	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    840	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    841	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    842	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    843	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    844	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    845	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    846	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    847	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    848	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    849	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    850	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    851	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    852	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    853	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    854	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    855	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    856	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    857	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    858	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    859	0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
    860	0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
    861	0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
    862	0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
    863	0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
    864	0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
    865	0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
    866	0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
    867	0x062A0000, 0xFEFA0759, 0x08B80908, 0xF396FC2D,
    868	0xF9D6045C, 0xFC4EF608, 0xF748F596, 0x07B207BF,
    869	0x062A062A, 0xF84EF841, 0xF748F596, 0x03B209F8,
    870	0xF9D6045C, 0x0C6A03D3, 0x08B80908, 0x0106F8A7,
    871	0x062A0000, 0xFEFAF8A7, 0x08B8F6F8, 0xF39603D3,
    872	0xF9D6FBA4, 0xFC4E09F8, 0xF7480A6A, 0x07B2F841,
    873	0x062AF9D6, 0xF84E07BF, 0xF7480A6A, 0x03B2F608,
    874	0xF9D6FBA4, 0x0C6AFC2D, 0x08B8F6F8, 0x01060759,
    875	0x061C061C, 0xFF30009D, 0xFFB21141, 0xFD87FB54,
    876	0xF65DFE59, 0x02EEF99E, 0x0166F03C, 0xFFF809B6,
    877	0x000008A4, 0x000AF42B, 0x00EFF577, 0xFA840BF2,
    878	0xFC02FF51, 0x08260F67, 0xFFF0036F, 0x0842F9C3,
    879	0x00000000, 0x063DF7BE, 0xFC910010, 0xF099F7DA,
    880	0x00AF03FE, 0xF40E057C, 0x0A89FF11, 0x0BD5FFF6,
    881	0xF75C0000, 0xF64A0008, 0x0FC4FE9A, 0x0662FD12,
    882	0x01A709A3, 0x04AC0279, 0xEEBF004E, 0xFF6300D0,
    883	0xF9E4F9E4, 0x00D0FF63, 0x004EEEBF, 0x027904AC,
    884	0x09A301A7, 0xFD120662, 0xFE9A0FC4, 0x0008F64A,
    885	0x0000F75C, 0xFFF60BD5, 0xFF110A89, 0x057CF40E,
    886	0x03FE00AF, 0xF7DAF099, 0x0010FC91, 0xF7BE063D,
    887	0x00000000, 0xF9C30842, 0x036FFFF0, 0x0F670826,
    888	0xFF51FC02, 0x0BF2FA84, 0xF57700EF, 0xF42B000A,
    889	0x08A40000, 0x09B6FFF8, 0xF03C0166, 0xF99E02EE,
    890	0xFE59F65D, 0xFB54FD87, 0x1141FFB2, 0x009DFF30,
    891	0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
    892	0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
    893	0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
    894	0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
    895	0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
    896	0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
    897	0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
    898	0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
    899	0x05E30000, 0xFF060705, 0x085408A0, 0xF425FC59,
    900	0xFA1D042A, 0xFC78F67A, 0xF7ACF60E, 0x075A0766,
    901	0x05E305E3, 0xF8A6F89A, 0xF7ACF60E, 0x03880986,
    902	0xFA1D042A, 0x0BDB03A7, 0x085408A0, 0x00FAF8FB,
    903	0x05E30000, 0xFF06F8FB, 0x0854F760, 0xF42503A7,
    904	0xFA1DFBD6, 0xFC780986, 0xF7AC09F2, 0x075AF89A,
    905	0x05E3FA1D, 0xF8A60766, 0xF7AC09F2, 0x0388F67A,
    906	0xFA1DFBD6, 0x0BDBFC59, 0x0854F760, 0x00FA0705,
    907	0xFA58FA58, 0xF8F0FE00, 0x0448073D, 0xFDC9FE46,
    908	0xF9910258, 0x089D0407, 0xFD5CF71A, 0x02AFFDE0,
    909	0x083E0496, 0xFF5A0740, 0xFF7AFD97, 0x00FE01F1,
    910	0x0009082E, 0xFA94FF75, 0xFECDF8EA, 0xFFB0F693,
    911	0xFD2CFA58, 0x0433FF16, 0xFBA405DD, 0xFA610341,
    912	0x06A606CB, 0x0039FD2D, 0x0677FA97, 0x01FA05E0,
    913	0xF896003E, 0x075A068B, 0x012CFC3E, 0xFA23F98D,
    914	0xFC7CFD43, 0xFF90FC0D, 0x01C10982, 0x00C601D6,
    915	0xFD2CFD2C, 0x01D600C6, 0x098201C1, 0xFC0DFF90,
    916	0xFD43FC7C, 0xF98DFA23, 0xFC3E012C, 0x068B075A,
    917	0x003EF896, 0x05E001FA, 0xFA970677, 0xFD2D0039,
    918	0x06CB06A6, 0x0341FA61, 0x05DDFBA4, 0xFF160433,
    919	0xFA58FD2C, 0xF693FFB0, 0xF8EAFECD, 0xFF75FA94,
    920	0x082E0009, 0x01F100FE, 0xFD97FF7A, 0x0740FF5A,
    921	0x0496083E, 0xFDE002AF, 0xF71AFD5C, 0x0407089D,
    922	0x0258F991, 0xFE46FDC9, 0x073D0448, 0xFE00F8F0,
    923	0xFD2CFD2C, 0xFCE00500, 0xFC09FDDC, 0xFE680157,
    924	0x04C70571, 0xFC3AFF21, 0xFCD70228, 0x056D0277,
    925	0x0200FE00, 0x0022F927, 0xFE3C032B, 0xFC44FF3C,
    926	0x03E9FBDB, 0x04570313, 0x04C9FF5C, 0x000D03B8,
    927	0xFA580000, 0xFBE900D2, 0xF9D0FE0B, 0x0125FDF9,
    928	0x042501BF, 0x0328FA2B, 0xFFA902F0, 0xFA250157,
    929	0x0200FE00, 0x03740438, 0xFF0405FD, 0x030CFE52,
    930	0x0037FB39, 0xFF6904C5, 0x04F8FD23, 0xFD31FC1B,
    931	0xFD2CFD2C, 0xFC1BFD31, 0xFD2304F8, 0x04C5FF69,
    932	0xFB390037, 0xFE52030C, 0x05FDFF04, 0x04380374,
    933	0xFE000200, 0x0157FA25, 0x02F0FFA9, 0xFA2B0328,
    934	0x01BF0425, 0xFDF90125, 0xFE0BF9D0, 0x00D2FBE9,
    935	0x0000FA58, 0x03B8000D, 0xFF5C04C9, 0x03130457,
    936	0xFBDB03E9, 0xFF3CFC44, 0x032BFE3C, 0xF9270022,
    937	0xFE000200, 0x0277056D, 0x0228FCD7, 0xFF21FC3A,
    938	0x057104C7, 0x0157FE68, 0xFDDCFC09, 0x0500FCE0,
    939	0xFD2CFD2C, 0x0500FCE0, 0xFDDCFC09, 0x0157FE68,
    940	0x057104C7, 0xFF21FC3A, 0x0228FCD7, 0x0277056D,
    941	0xFE000200, 0xF9270022, 0x032BFE3C, 0xFF3CFC44,
    942	0xFBDB03E9, 0x03130457, 0xFF5C04C9, 0x03B8000D,
    943	0x0000FA58, 0x00D2FBE9, 0xFE0BF9D0, 0xFDF90125,
    944	0x01BF0425, 0xFA2B0328, 0x02F0FFA9, 0x0157FA25,
    945	0xFE000200, 0x04380374, 0x05FDFF04, 0xFE52030C,
    946	0xFB390037, 0x04C5FF69, 0xFD2304F8, 0xFC1BFD31,
    947	0xFD2CFD2C, 0xFD31FC1B, 0x04F8FD23, 0xFF6904C5,
    948	0x0037FB39, 0x030CFE52, 0xFF0405FD, 0x03740438,
    949	0x0200FE00, 0xFA250157, 0xFFA902F0, 0x0328FA2B,
    950	0x042501BF, 0x0125FDF9, 0xF9D0FE0B, 0xFBE900D2,
    951	0xFA580000, 0x000D03B8, 0x04C9FF5C, 0x04570313,
    952	0x03E9FBDB, 0xFC44FF3C, 0xFE3C032B, 0x0022F927,
    953	0x0200FE00, 0x056D0277, 0xFCD70228, 0xFC3AFF21,
    954	0x04C70571, 0xFE680157, 0xFC09FDDC, 0xFCE00500,
    955	0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
    956	0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
    957	0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
    958	0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
    959	0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
    960	0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
    961	0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
    962	0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
    963	0x05A80000, 0xFF1006BE, 0x0800084A, 0xF49CFC7E,
    964	0xFA580400, 0xFC9CF6DA, 0xF800F672, 0x0710071C,
    965	0x05A805A8, 0xF8F0F8E4, 0xF800F672, 0x03640926,
    966	0xFA580400, 0x0B640382, 0x0800084A, 0x00F0F942,
    967	0x05A80000, 0xFF10F942, 0x0800F7B6, 0xF49C0382,
    968	0xFA58FC00, 0xFC9C0926, 0xF800098E, 0x0710F8E4,
    969	0x05A8FA58, 0xF8F0071C, 0xF800098E, 0x0364F6DA,
    970	0xFA58FC00, 0x0B64FC7E, 0x0800F7B6, 0x00F006BE,
    971};
    972
    973static const u32 b43_ntab_tmap[] = {
    974	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
    975	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
    976	0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
    977	0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
    978	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x000AA888,
    979	0x88880000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
    980	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
    981	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
    982	0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
    983	0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
    984	0xF1111110, 0x11111111, 0x11F11111, 0x00011111,
    985	0x11110000, 0x1111F111, 0x11111111, 0x111111F1,
    986	0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00088AAA,
    987	0xAAAA0000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
    988	0xAAA8AAA0, 0x8AAA8AAA, 0xAA8A8A8A, 0x000AAA88,
    989	0x8AAA0000, 0xAAA8A888, 0x8AA88A8A, 0x8A88A888,
    990	0x08080A00, 0x0A08080A, 0x080A0A08, 0x00080808,
    991	0x080A0000, 0x080A0808, 0x080A0808, 0x0A0A0A08,
    992	0xA0A0A0A0, 0x80A0A080, 0x8080A0A0, 0x00008080,
    993	0x80A00000, 0x80A080A0, 0xA080A0A0, 0x8080A0A0,
    994	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    995	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    996	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    997	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    998	0x00000000, 0x00000000, 0x00000000, 0x00000000,
    999	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1000	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1001	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1002	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1003	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1004	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1005	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1006	0x99999000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
   1007	0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
   1008	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
   1009	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
   1010	0x22000000, 0x2222B222, 0x22222222, 0x222222B2,
   1011	0xB2222220, 0x22222222, 0x22D22222, 0x00000222,
   1012	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
   1013	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
   1014	0x33000000, 0x3333B333, 0x33333333, 0x333333B3,
   1015	0xB3333330, 0x33333333, 0x33D33333, 0x00000333,
   1016	0x22000000, 0x2222A222, 0x22222222, 0x222222A2,
   1017	0xA2222220, 0x22222222, 0x22C22222, 0x00000222,
   1018	0x99B99B00, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
   1019	0x9B99BB99, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
   1020	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
   1021	0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
   1022	0x22222200, 0x2222F222, 0x22222222, 0x222222F2,
   1023	0x22222222, 0x22222222, 0x22F22222, 0x00000222,
   1024	0x11000000, 0x1111F111, 0x11111111, 0x11111111,
   1025	0xF1111111, 0x11111111, 0x11F11111, 0x01111111,
   1026	0xBB9BB900, 0xB9B9BB99, 0xB99BBBBB, 0xBBBB9B9B,
   1027	0xB9BB99BB, 0xB99999B9, 0xB9B9B99B, 0x00000BBB,
   1028	0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
   1029	0xA8AA88AA, 0xA88888A8, 0xA8A8A88A, 0x0A888AAA,
   1030	0xAA000000, 0xA8A8AA88, 0xA88AAAAA, 0xAAAA8A8A,
   1031	0xA8AA88A0, 0xA88888A8, 0xA8A8A88A, 0x00000AAA,
   1032	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
   1033	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
   1034	0xBBBBBB00, 0x999BBBBB, 0x9BB99B9B, 0xB9B9B9BB,
   1035	0xB9B99BBB, 0xB9B9B9BB, 0xB9BB9B99, 0x00000999,
   1036	0x8A000000, 0xAA88A888, 0xA88888AA, 0xA88A8A88,
   1037	0xA88AA88A, 0x88A8AAAA, 0xA8AA8AAA, 0x0888A88A,
   1038	0x0B0B0B00, 0x090B0B0B, 0x0B090B0B, 0x0909090B,
   1039	0x09090B0B, 0x09090B0B, 0x09090B09, 0x00000909,
   1040	0x0A000000, 0x0A080808, 0x080A080A, 0x080A0A08,
   1041	0x080A080A, 0x0808080A, 0x0A0A0A08, 0x0808080A,
   1042	0xB0B0B000, 0x9090B0B0, 0x90B09090, 0xB0B0B090,
   1043	0xB0B090B0, 0x90B0B0B0, 0xB0B09090, 0x00000090,
   1044	0x80000000, 0xA080A080, 0xA08080A0, 0xA0808080,
   1045	0xA080A080, 0x80A0A0A0, 0xA0A080A0, 0x00A0A0A0,
   1046	0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
   1047	0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
   1048	0x11000000, 0x1111F111, 0x11111111, 0x111111F1,
   1049	0xF1111110, 0x11111111, 0x11F11111, 0x00000111,
   1050	0x33000000, 0x3333F333, 0x33333333, 0x333333F3,
   1051	0xF3333330, 0x33333333, 0x33F33333, 0x00000333,
   1052	0x22000000, 0x2222F222, 0x22222222, 0x222222F2,
   1053	0xF2222220, 0x22222222, 0x22F22222, 0x00000222,
   1054	0x99000000, 0x9B9B99BB, 0x9BB99999, 0x9999B9B9,
   1055	0x9B99BB90, 0x9BBBBB9B, 0x9B9B9BB9, 0x00000999,
   1056	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
   1057	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
   1058	0x88888000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
   1059	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
   1060	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
   1061	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00AAA888,
   1062	0x88A88A00, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
   1063	0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
   1064	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
   1065	0x8A88AA88, 0x8AAAAA8A, 0x8A8A8AA8, 0x08AAA888,
   1066	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
   1067	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
   1068	0x11000000, 0x1111A111, 0x11111111, 0x111111A1,
   1069	0xA1111110, 0x11111111, 0x11C11111, 0x00000111,
   1070	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
   1071	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
   1072	0x88000000, 0x8A8A88AA, 0x8AA88888, 0x8888A8A8,
   1073	0x8A88AA80, 0x8AAAAA8A, 0x8A8A8AA8, 0x00000888,
   1074	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1075	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1076	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1077	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1078	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1079	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1080	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1081	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1082	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1083	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1084	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1085	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1086};
   1087
   1088/* static tables, PHY revision >= 3 */
   1089static const u32 b43_ntab_framestruct_r3[] = {
   1090	0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
   1091	0x09804506, 0x00100030, 0x09804507, 0x00100030,
   1092	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1093	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1094	0x08004a0c, 0x00100004, 0x01000a0d, 0x00100024,
   1095	0x0980450e, 0x00100034, 0x0980450f, 0x00100034,
   1096	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1097	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1098	0x00000a04, 0x00100000, 0x11008a05, 0x00100020,
   1099	0x1980c506, 0x00100030, 0x21810506, 0x00100030,
   1100	0x21810506, 0x00100030, 0x01800504, 0x00100030,
   1101	0x11808505, 0x00100030, 0x29814507, 0x01100030,
   1102	0x00000a04, 0x00100000, 0x11008a05, 0x00100020,
   1103	0x21810506, 0x00100030, 0x21810506, 0x00100030,
   1104	0x29814507, 0x01100030, 0x00000000, 0x00000000,
   1105	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1106	0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
   1107	0x1980c50e, 0x00100038, 0x2181050e, 0x00100038,
   1108	0x2181050e, 0x00100038, 0x0180050c, 0x00100038,
   1109	0x1180850d, 0x00100038, 0x2981450f, 0x01100038,
   1110	0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
   1111	0x2181050e, 0x00100038, 0x2181050e, 0x00100038,
   1112	0x2981450f, 0x01100038, 0x00000000, 0x00000000,
   1113	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1114	0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
   1115	0x1980c506, 0x00100030, 0x1980c506, 0x00100030,
   1116	0x11808504, 0x00100030, 0x3981ca05, 0x00100030,
   1117	0x29814507, 0x01100030, 0x00000000, 0x00000000,
   1118	0x10008a04, 0x00100000, 0x3981ca05, 0x00100030,
   1119	0x1980c506, 0x00100030, 0x29814507, 0x01100030,
   1120	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1121	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1122	0x08004a0c, 0x00100008, 0x01000a0d, 0x00100028,
   1123	0x1980c50e, 0x00100038, 0x1980c50e, 0x00100038,
   1124	0x1180850c, 0x00100038, 0x3981ca0d, 0x00100038,
   1125	0x2981450f, 0x01100038, 0x00000000, 0x00000000,
   1126	0x10008a0c, 0x00100008, 0x3981ca0d, 0x00100038,
   1127	0x1980c50e, 0x00100038, 0x2981450f, 0x01100038,
   1128	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1129	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1130	0x40021404, 0x00100000, 0x02001405, 0x00100040,
   1131	0x0b004a06, 0x01900060, 0x13008a06, 0x01900060,
   1132	0x13008a06, 0x01900060, 0x43020a04, 0x00100060,
   1133	0x1b00ca05, 0x00100060, 0x23010a07, 0x01500060,
   1134	0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
   1135	0x13008a06, 0x01900060, 0x13008a06, 0x01900060,
   1136	0x23010a07, 0x01500060, 0x00000000, 0x00000000,
   1137	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1138	0x4002140c, 0x00100010, 0x0200140d, 0x00100050,
   1139	0x0b004a0e, 0x01900070, 0x13008a0e, 0x01900070,
   1140	0x13008a0e, 0x01900070, 0x43020a0c, 0x00100070,
   1141	0x1b00ca0d, 0x00100070, 0x23010a0f, 0x01500070,
   1142	0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
   1143	0x13008a0e, 0x01900070, 0x13008a0e, 0x01900070,
   1144	0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
   1145	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1146	0x50029404, 0x00100000, 0x32019405, 0x00100040,
   1147	0x0b004a06, 0x01900060, 0x0b004a06, 0x01900060,
   1148	0x5b02ca04, 0x00100060, 0x3b01d405, 0x00100060,
   1149	0x23010a07, 0x01500060, 0x00000000, 0x00000000,
   1150	0x5802d404, 0x00100000, 0x3b01d405, 0x00100060,
   1151	0x0b004a06, 0x01900060, 0x23010a07, 0x01500060,
   1152	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1153	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1154	0x5002940c, 0x00100010, 0x3201940d, 0x00100050,
   1155	0x0b004a0e, 0x01900070, 0x0b004a0e, 0x01900070,
   1156	0x5b02ca0c, 0x00100070, 0x3b01d40d, 0x00100070,
   1157	0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
   1158	0x5802d40c, 0x00100010, 0x3b01d40d, 0x00100070,
   1159	0x0b004a0e, 0x01900070, 0x23010a0f, 0x01500070,
   1160	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1161	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1162	0x40021404, 0x000f4800, 0x62031405, 0x00100040,
   1163	0x53028a06, 0x01900060, 0x53028a07, 0x01900060,
   1164	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1165	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1166	0x4002140c, 0x000f4808, 0x6203140d, 0x00100048,
   1167	0x53028a0e, 0x01900068, 0x53028a0f, 0x01900068,
   1168	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1169	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1170	0x00000a0c, 0x00100004, 0x11008a0d, 0x00100024,
   1171	0x1980c50e, 0x00100034, 0x2181050e, 0x00100034,
   1172	0x2181050e, 0x00100034, 0x0180050c, 0x00100038,
   1173	0x1180850d, 0x00100038, 0x1181850d, 0x00100038,
   1174	0x2981450f, 0x01100038, 0x00000000, 0x00000000,
   1175	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1176	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1177	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1178	0x00000a0c, 0x00100008, 0x11008a0d, 0x00100028,
   1179	0x2181050e, 0x00100038, 0x2181050e, 0x00100038,
   1180	0x1181850d, 0x00100038, 0x2981450f, 0x01100038,
   1181	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1182	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1183	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1184	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1185	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1186	0x08004a04, 0x00100000, 0x01000a05, 0x00100020,
   1187	0x0180c506, 0x00100030, 0x0180c506, 0x00100030,
   1188	0x2180c50c, 0x00100030, 0x49820a0d, 0x0016a130,
   1189	0x41824a0d, 0x0016a130, 0x2981450f, 0x01100030,
   1190	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1191	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1192	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1193	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1194	0x2000ca0c, 0x00100000, 0x49820a0d, 0x0016a130,
   1195	0x1980c50e, 0x00100030, 0x41824a0d, 0x0016a130,
   1196	0x2981450f, 0x01100030, 0x00000000, 0x00000000,
   1197	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1198	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1199	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1200	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1201	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1202	0x4002140c, 0x00100008, 0x0200140d, 0x00100048,
   1203	0x0b004a0e, 0x01900068, 0x13008a0e, 0x01900068,
   1204	0x13008a0e, 0x01900068, 0x43020a0c, 0x00100070,
   1205	0x1b00ca0d, 0x00100070, 0x1b014a0d, 0x00100070,
   1206	0x23010a0f, 0x01500070, 0x00000000, 0x00000000,
   1207	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1208	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1209	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1210	0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
   1211	0x13008a0e, 0x01900070, 0x13008a0e, 0x01900070,
   1212	0x1b014a0d, 0x00100070, 0x23010a0f, 0x01500070,
   1213	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1214	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1215	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1216	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1217	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1218	0x50029404, 0x00100000, 0x32019405, 0x00100040,
   1219	0x03004a06, 0x01900060, 0x03004a06, 0x01900060,
   1220	0x6b030a0c, 0x00100060, 0x4b02140d, 0x0016a160,
   1221	0x4302540d, 0x0016a160, 0x23010a0f, 0x01500060,
   1222	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1223	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1224	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1225	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1226	0x6b03140c, 0x00100060, 0x4b02140d, 0x0016a160,
   1227	0x0b004a0e, 0x01900060, 0x4302540d, 0x0016a160,
   1228	0x23010a0f, 0x01500060, 0x00000000, 0x00000000,
   1229	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1230	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1231	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1232	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1233	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1234	0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
   1235	0x53028a06, 0x01900060, 0x5b02ca06, 0x01900060,
   1236	0x5b02ca06, 0x01900060, 0x43020a04, 0x00100060,
   1237	0x1b00ca05, 0x00100060, 0x53028a07, 0x0190c060,
   1238	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1239	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1240	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1241	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1242	0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
   1243	0x53028a0e, 0x01900070, 0x5b02ca0e, 0x01900070,
   1244	0x5b02ca0e, 0x01900070, 0x43020a0c, 0x00100070,
   1245	0x1b00ca0d, 0x00100070, 0x53028a0f, 0x0190c070,
   1246	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1247	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1248	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1249	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1250	0x40021404, 0x00100000, 0x1a00d405, 0x00100040,
   1251	0x5b02ca06, 0x01900060, 0x5b02ca06, 0x01900060,
   1252	0x53028a07, 0x0190c060, 0x00000000, 0x00000000,
   1253	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1254	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1255	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1256	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1257	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1258	0x4002140c, 0x00100010, 0x1a00d40d, 0x00100050,
   1259	0x5b02ca0e, 0x01900070, 0x5b02ca0e, 0x01900070,
   1260	0x53028a0f, 0x0190c070, 0x00000000, 0x00000000,
   1261	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1262	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1263	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1264	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1265	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1266	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1267	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1268	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1269	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1270	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1271	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1272	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1273	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1274	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1275	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1276	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1277	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1278	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1279	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1280	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1281	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1282	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1283	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1284	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1285	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1286	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1287	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1288	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1289	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1290	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1291	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1292	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1293	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1294	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1295	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1296	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1297	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1298};
   1299
   1300static const u16 b43_ntab_pilot_r3[] = {
   1301	0xff08, 0xff08, 0xff08, 0xff08, 0xff08, 0xff08,
   1302	0xff08, 0xff08, 0x80d5, 0x80d5, 0x80d5, 0x80d5,
   1303	0x80d5, 0x80d5, 0x80d5, 0x80d5, 0xff0a, 0xff82,
   1304	0xffa0, 0xff28, 0xffff, 0xffff, 0xffff, 0xffff,
   1305	0xff82, 0xffa0, 0xff28, 0xff0a, 0xffff, 0xffff,
   1306	0xffff, 0xffff, 0xf83f, 0xfa1f, 0xfa97, 0xfab5,
   1307	0xf2bd, 0xf0bf, 0xffff, 0xffff, 0xf017, 0xf815,
   1308	0xf215, 0xf095, 0xf035, 0xf01d, 0xffff, 0xffff,
   1309	0xff08, 0xff02, 0xff80, 0xff20, 0xff08, 0xff02,
   1310	0xff80, 0xff20, 0xf01f, 0xf817, 0xfa15, 0xf295,
   1311	0xf0b5, 0xf03d, 0xffff, 0xffff, 0xf82a, 0xfa0a,
   1312	0xfa82, 0xfaa0, 0xf2a8, 0xf0aa, 0xffff, 0xffff,
   1313	0xf002, 0xf800, 0xf200, 0xf080, 0xf020, 0xf008,
   1314	0xffff, 0xffff, 0xf00a, 0xf802, 0xfa00, 0xf280,
   1315	0xf0a0, 0xf028, 0xffff, 0xffff,
   1316};
   1317
   1318static const u32 b43_ntab_tmap_r3[] = {
   1319	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   1320	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1321	0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
   1322	0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
   1323	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x000aa888,
   1324	0x88880000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1325	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
   1326	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
   1327	0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
   1328	0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
   1329	0xf1111110, 0x11111111, 0x11f11111, 0x00011111,
   1330	0x11110000, 0x1111f111, 0x11111111, 0x111111f1,
   1331	0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00088aaa,
   1332	0xaaaa0000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
   1333	0xaaa8aaa0, 0x8aaa8aaa, 0xaa8a8a8a, 0x000aaa88,
   1334	0x8aaa0000, 0xaaa8a888, 0x8aa88a8a, 0x8a88a888,
   1335	0x08080a00, 0x0a08080a, 0x080a0a08, 0x00080808,
   1336	0x080a0000, 0x080a0808, 0x080a0808, 0x0a0a0a08,
   1337	0xa0a0a0a0, 0x80a0a080, 0x8080a0a0, 0x00008080,
   1338	0x80a00000, 0x80a080a0, 0xa080a0a0, 0x8080a0a0,
   1339	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1340	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1341	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1342	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1343	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1344	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1345	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1346	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1347	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1348	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1349	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1350	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1351	0x99999000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
   1352	0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
   1353	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1354	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
   1355	0x22000000, 0x2222b222, 0x22222222, 0x222222b2,
   1356	0xb2222220, 0x22222222, 0x22d22222, 0x00000222,
   1357	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
   1358	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
   1359	0x33000000, 0x3333b333, 0x33333333, 0x333333b3,
   1360	0xb3333330, 0x33333333, 0x33d33333, 0x00000333,
   1361	0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
   1362	0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
   1363	0x99b99b00, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
   1364	0x9b99bb99, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
   1365	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1366	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
   1367	0x22222200, 0x2222f222, 0x22222222, 0x222222f2,
   1368	0x22222222, 0x22222222, 0x22f22222, 0x00000222,
   1369	0x11000000, 0x1111f111, 0x11111111, 0x11111111,
   1370	0xf1111111, 0x11111111, 0x11f11111, 0x01111111,
   1371	0xbb9bb900, 0xb9b9bb99, 0xb99bbbbb, 0xbbbb9b9b,
   1372	0xb9bb99bb, 0xb99999b9, 0xb9b9b99b, 0x00000bbb,
   1373	0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
   1374	0xa8aa88aa, 0xa88888a8, 0xa8a8a88a, 0x0a888aaa,
   1375	0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
   1376	0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00000aaa,
   1377	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1378	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   1379	0xbbbbbb00, 0x999bbbbb, 0x9bb99b9b, 0xb9b9b9bb,
   1380	0xb9b99bbb, 0xb9b9b9bb, 0xb9bb9b99, 0x00000999,
   1381	0x8a000000, 0xaa88a888, 0xa88888aa, 0xa88a8a88,
   1382	0xa88aa88a, 0x88a8aaaa, 0xa8aa8aaa, 0x0888a88a,
   1383	0x0b0b0b00, 0x090b0b0b, 0x0b090b0b, 0x0909090b,
   1384	0x09090b0b, 0x09090b0b, 0x09090b09, 0x00000909,
   1385	0x0a000000, 0x0a080808, 0x080a080a, 0x080a0a08,
   1386	0x080a080a, 0x0808080a, 0x0a0a0a08, 0x0808080a,
   1387	0xb0b0b000, 0x9090b0b0, 0x90b09090, 0xb0b0b090,
   1388	0xb0b090b0, 0x90b0b0b0, 0xb0b09090, 0x00000090,
   1389	0x80000000, 0xa080a080, 0xa08080a0, 0xa0808080,
   1390	0xa080a080, 0x80a0a0a0, 0xa0a080a0, 0x00a0a0a0,
   1391	0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
   1392	0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
   1393	0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
   1394	0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
   1395	0x33000000, 0x3333f333, 0x33333333, 0x333333f3,
   1396	0xf3333330, 0x33333333, 0x33f33333, 0x00000333,
   1397	0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
   1398	0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
   1399	0x99000000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
   1400	0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
   1401	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1402	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   1403	0x88888000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1404	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   1405	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1406	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
   1407	0x88a88a00, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1408	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   1409	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1410	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
   1411	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
   1412	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
   1413	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
   1414	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
   1415	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1416	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   1417	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   1418	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   1419	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1420	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1421	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1422	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1423	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1424	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1425	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1426	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1427	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1428	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1429	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1430	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1431};
   1432
   1433static const u32 b43_ntab_intlevel_r3[] = {
   1434	0x00802070, 0x0671188d, 0x0a60192c, 0x0a300e46,
   1435	0x00c1188d, 0x080024d2, 0x00000070,
   1436};
   1437
   1438static const u32 b43_ntab_tdtrn_r3[] = {
   1439	0x061c061c, 0x0050ee68, 0xf592fe36, 0xfe5212f6,
   1440	0x00000c38, 0xfe5212f6, 0xf592fe36, 0x0050ee68,
   1441	0x061c061c, 0xee680050, 0xfe36f592, 0x12f6fe52,
   1442	0x0c380000, 0x12f6fe52, 0xfe36f592, 0xee680050,
   1443	0x061c061c, 0x0050ee68, 0xf592fe36, 0xfe5212f6,
   1444	0x00000c38, 0xfe5212f6, 0xf592fe36, 0x0050ee68,
   1445	0x061c061c, 0xee680050, 0xfe36f592, 0x12f6fe52,
   1446	0x0c380000, 0x12f6fe52, 0xfe36f592, 0xee680050,
   1447	0x05e305e3, 0x004def0c, 0xf5f3fe47, 0xfe611246,
   1448	0x00000bc7, 0xfe611246, 0xf5f3fe47, 0x004def0c,
   1449	0x05e305e3, 0xef0c004d, 0xfe47f5f3, 0x1246fe61,
   1450	0x0bc70000, 0x1246fe61, 0xfe47f5f3, 0xef0c004d,
   1451	0x05e305e3, 0x004def0c, 0xf5f3fe47, 0xfe611246,
   1452	0x00000bc7, 0xfe611246, 0xf5f3fe47, 0x004def0c,
   1453	0x05e305e3, 0xef0c004d, 0xfe47f5f3, 0x1246fe61,
   1454	0x0bc70000, 0x1246fe61, 0xfe47f5f3, 0xef0c004d,
   1455	0xfa58fa58, 0xf895043b, 0xff4c09c0, 0xfbc6ffa8,
   1456	0xfb84f384, 0x0798f6f9, 0x05760122, 0x058409f6,
   1457	0x0b500000, 0x05b7f542, 0x08860432, 0x06ddfee7,
   1458	0xfb84f384, 0xf9d90664, 0xf7e8025c, 0x00fff7bd,
   1459	0x05a805a8, 0xf7bd00ff, 0x025cf7e8, 0x0664f9d9,
   1460	0xf384fb84, 0xfee706dd, 0x04320886, 0xf54205b7,
   1461	0x00000b50, 0x09f60584, 0x01220576, 0xf6f90798,
   1462	0xf384fb84, 0xffa8fbc6, 0x09c0ff4c, 0x043bf895,
   1463	0x02d402d4, 0x07de0270, 0xfc96079c, 0xf90afe94,
   1464	0xfe00ff2c, 0x02d4065d, 0x092a0096, 0x0014fbb8,
   1465	0xfd2cfd2c, 0x076afb3c, 0x0096f752, 0xf991fd87,
   1466	0xfb2c0200, 0xfeb8f960, 0x08e0fc96, 0x049802a8,
   1467	0xfd2cfd2c, 0x02a80498, 0xfc9608e0, 0xf960feb8,
   1468	0x0200fb2c, 0xfd87f991, 0xf7520096, 0xfb3c076a,
   1469	0xfd2cfd2c, 0xfbb80014, 0x0096092a, 0x065d02d4,
   1470	0xff2cfe00, 0xfe94f90a, 0x079cfc96, 0x027007de,
   1471	0x02d402d4, 0x027007de, 0x079cfc96, 0xfe94f90a,
   1472	0xff2cfe00, 0x065d02d4, 0x0096092a, 0xfbb80014,
   1473	0xfd2cfd2c, 0xfb3c076a, 0xf7520096, 0xfd87f991,
   1474	0x0200fb2c, 0xf960feb8, 0xfc9608e0, 0x02a80498,
   1475	0xfd2cfd2c, 0x049802a8, 0x08e0fc96, 0xfeb8f960,
   1476	0xfb2c0200, 0xf991fd87, 0x0096f752, 0x076afb3c,
   1477	0xfd2cfd2c, 0x0014fbb8, 0x092a0096, 0x02d4065d,
   1478	0xfe00ff2c, 0xf90afe94, 0xfc96079c, 0x07de0270,
   1479	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1480	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1481	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1482	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1483	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1484	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1485	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1486	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1487	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1488	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1489	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1490	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1491	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1492	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1493	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1494	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1495	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1496	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1497	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1498	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1499	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1500	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1501	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1502	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1503	0x062a0000, 0xfefa0759, 0x08b80908, 0xf396fc2d,
   1504	0xf9d6045c, 0xfc4ef608, 0xf748f596, 0x07b207bf,
   1505	0x062a062a, 0xf84ef841, 0xf748f596, 0x03b209f8,
   1506	0xf9d6045c, 0x0c6a03d3, 0x08b80908, 0x0106f8a7,
   1507	0x062a0000, 0xfefaf8a7, 0x08b8f6f8, 0xf39603d3,
   1508	0xf9d6fba4, 0xfc4e09f8, 0xf7480a6a, 0x07b2f841,
   1509	0x062af9d6, 0xf84e07bf, 0xf7480a6a, 0x03b2f608,
   1510	0xf9d6fba4, 0x0c6afc2d, 0x08b8f6f8, 0x01060759,
   1511	0x062a0000, 0xfefa0759, 0x08b80908, 0xf396fc2d,
   1512	0xf9d6045c, 0xfc4ef608, 0xf748f596, 0x07b207bf,
   1513	0x062a062a, 0xf84ef841, 0xf748f596, 0x03b209f8,
   1514	0xf9d6045c, 0x0c6a03d3, 0x08b80908, 0x0106f8a7,
   1515	0x062a0000, 0xfefaf8a7, 0x08b8f6f8, 0xf39603d3,
   1516	0xf9d6fba4, 0xfc4e09f8, 0xf7480a6a, 0x07b2f841,
   1517	0x062af9d6, 0xf84e07bf, 0xf7480a6a, 0x03b2f608,
   1518	0xf9d6fba4, 0x0c6afc2d, 0x08b8f6f8, 0x01060759,
   1519	0x061c061c, 0xff30009d, 0xffb21141, 0xfd87fb54,
   1520	0xf65dfe59, 0x02eef99e, 0x0166f03c, 0xfff809b6,
   1521	0x000008a4, 0x000af42b, 0x00eff577, 0xfa840bf2,
   1522	0xfc02ff51, 0x08260f67, 0xfff0036f, 0x0842f9c3,
   1523	0x00000000, 0x063df7be, 0xfc910010, 0xf099f7da,
   1524	0x00af03fe, 0xf40e057c, 0x0a89ff11, 0x0bd5fff6,
   1525	0xf75c0000, 0xf64a0008, 0x0fc4fe9a, 0x0662fd12,
   1526	0x01a709a3, 0x04ac0279, 0xeebf004e, 0xff6300d0,
   1527	0xf9e4f9e4, 0x00d0ff63, 0x004eeebf, 0x027904ac,
   1528	0x09a301a7, 0xfd120662, 0xfe9a0fc4, 0x0008f64a,
   1529	0x0000f75c, 0xfff60bd5, 0xff110a89, 0x057cf40e,
   1530	0x03fe00af, 0xf7daf099, 0x0010fc91, 0xf7be063d,
   1531	0x00000000, 0xf9c30842, 0x036ffff0, 0x0f670826,
   1532	0xff51fc02, 0x0bf2fa84, 0xf57700ef, 0xf42b000a,
   1533	0x08a40000, 0x09b6fff8, 0xf03c0166, 0xf99e02ee,
   1534	0xfe59f65d, 0xfb54fd87, 0x1141ffb2, 0x009dff30,
   1535	0x05e30000, 0xff060705, 0x085408a0, 0xf425fc59,
   1536	0xfa1d042a, 0xfc78f67a, 0xf7acf60e, 0x075a0766,
   1537	0x05e305e3, 0xf8a6f89a, 0xf7acf60e, 0x03880986,
   1538	0xfa1d042a, 0x0bdb03a7, 0x085408a0, 0x00faf8fb,
   1539	0x05e30000, 0xff06f8fb, 0x0854f760, 0xf42503a7,
   1540	0xfa1dfbd6, 0xfc780986, 0xf7ac09f2, 0x075af89a,
   1541	0x05e3fa1d, 0xf8a60766, 0xf7ac09f2, 0x0388f67a,
   1542	0xfa1dfbd6, 0x0bdbfc59, 0x0854f760, 0x00fa0705,
   1543	0x05e30000, 0xff060705, 0x085408a0, 0xf425fc59,
   1544	0xfa1d042a, 0xfc78f67a, 0xf7acf60e, 0x075a0766,
   1545	0x05e305e3, 0xf8a6f89a, 0xf7acf60e, 0x03880986,
   1546	0xfa1d042a, 0x0bdb03a7, 0x085408a0, 0x00faf8fb,
   1547	0x05e30000, 0xff06f8fb, 0x0854f760, 0xf42503a7,
   1548	0xfa1dfbd6, 0xfc780986, 0xf7ac09f2, 0x075af89a,
   1549	0x05e3fa1d, 0xf8a60766, 0xf7ac09f2, 0x0388f67a,
   1550	0xfa1dfbd6, 0x0bdbfc59, 0x0854f760, 0x00fa0705,
   1551	0xfa58fa58, 0xf8f0fe00, 0x0448073d, 0xfdc9fe46,
   1552	0xf9910258, 0x089d0407, 0xfd5cf71a, 0x02affde0,
   1553	0x083e0496, 0xff5a0740, 0xff7afd97, 0x00fe01f1,
   1554	0x0009082e, 0xfa94ff75, 0xfecdf8ea, 0xffb0f693,
   1555	0xfd2cfa58, 0x0433ff16, 0xfba405dd, 0xfa610341,
   1556	0x06a606cb, 0x0039fd2d, 0x0677fa97, 0x01fa05e0,
   1557	0xf896003e, 0x075a068b, 0x012cfc3e, 0xfa23f98d,
   1558	0xfc7cfd43, 0xff90fc0d, 0x01c10982, 0x00c601d6,
   1559	0xfd2cfd2c, 0x01d600c6, 0x098201c1, 0xfc0dff90,
   1560	0xfd43fc7c, 0xf98dfa23, 0xfc3e012c, 0x068b075a,
   1561	0x003ef896, 0x05e001fa, 0xfa970677, 0xfd2d0039,
   1562	0x06cb06a6, 0x0341fa61, 0x05ddfba4, 0xff160433,
   1563	0xfa58fd2c, 0xf693ffb0, 0xf8eafecd, 0xff75fa94,
   1564	0x082e0009, 0x01f100fe, 0xfd97ff7a, 0x0740ff5a,
   1565	0x0496083e, 0xfde002af, 0xf71afd5c, 0x0407089d,
   1566	0x0258f991, 0xfe46fdc9, 0x073d0448, 0xfe00f8f0,
   1567	0xfd2cfd2c, 0xfce00500, 0xfc09fddc, 0xfe680157,
   1568	0x04c70571, 0xfc3aff21, 0xfcd70228, 0x056d0277,
   1569	0x0200fe00, 0x0022f927, 0xfe3c032b, 0xfc44ff3c,
   1570	0x03e9fbdb, 0x04570313, 0x04c9ff5c, 0x000d03b8,
   1571	0xfa580000, 0xfbe900d2, 0xf9d0fe0b, 0x0125fdf9,
   1572	0x042501bf, 0x0328fa2b, 0xffa902f0, 0xfa250157,
   1573	0x0200fe00, 0x03740438, 0xff0405fd, 0x030cfe52,
   1574	0x0037fb39, 0xff6904c5, 0x04f8fd23, 0xfd31fc1b,
   1575	0xfd2cfd2c, 0xfc1bfd31, 0xfd2304f8, 0x04c5ff69,
   1576	0xfb390037, 0xfe52030c, 0x05fdff04, 0x04380374,
   1577	0xfe000200, 0x0157fa25, 0x02f0ffa9, 0xfa2b0328,
   1578	0x01bf0425, 0xfdf90125, 0xfe0bf9d0, 0x00d2fbe9,
   1579	0x0000fa58, 0x03b8000d, 0xff5c04c9, 0x03130457,
   1580	0xfbdb03e9, 0xff3cfc44, 0x032bfe3c, 0xf9270022,
   1581	0xfe000200, 0x0277056d, 0x0228fcd7, 0xff21fc3a,
   1582	0x057104c7, 0x0157fe68, 0xfddcfc09, 0x0500fce0,
   1583	0xfd2cfd2c, 0x0500fce0, 0xfddcfc09, 0x0157fe68,
   1584	0x057104c7, 0xff21fc3a, 0x0228fcd7, 0x0277056d,
   1585	0xfe000200, 0xf9270022, 0x032bfe3c, 0xff3cfc44,
   1586	0xfbdb03e9, 0x03130457, 0xff5c04c9, 0x03b8000d,
   1587	0x0000fa58, 0x00d2fbe9, 0xfe0bf9d0, 0xfdf90125,
   1588	0x01bf0425, 0xfa2b0328, 0x02f0ffa9, 0x0157fa25,
   1589	0xfe000200, 0x04380374, 0x05fdff04, 0xfe52030c,
   1590	0xfb390037, 0x04c5ff69, 0xfd2304f8, 0xfc1bfd31,
   1591	0xfd2cfd2c, 0xfd31fc1b, 0x04f8fd23, 0xff6904c5,
   1592	0x0037fb39, 0x030cfe52, 0xff0405fd, 0x03740438,
   1593	0x0200fe00, 0xfa250157, 0xffa902f0, 0x0328fa2b,
   1594	0x042501bf, 0x0125fdf9, 0xf9d0fe0b, 0xfbe900d2,
   1595	0xfa580000, 0x000d03b8, 0x04c9ff5c, 0x04570313,
   1596	0x03e9fbdb, 0xfc44ff3c, 0xfe3c032b, 0x0022f927,
   1597	0x0200fe00, 0x056d0277, 0xfcd70228, 0xfc3aff21,
   1598	0x04c70571, 0xfe680157, 0xfc09fddc, 0xfce00500,
   1599	0x05a80000, 0xff1006be, 0x0800084a, 0xf49cfc7e,
   1600	0xfa580400, 0xfc9cf6da, 0xf800f672, 0x0710071c,
   1601	0x05a805a8, 0xf8f0f8e4, 0xf800f672, 0x03640926,
   1602	0xfa580400, 0x0b640382, 0x0800084a, 0x00f0f942,
   1603	0x05a80000, 0xff10f942, 0x0800f7b6, 0xf49c0382,
   1604	0xfa58fc00, 0xfc9c0926, 0xf800098e, 0x0710f8e4,
   1605	0x05a8fa58, 0xf8f0071c, 0xf800098e, 0x0364f6da,
   1606	0xfa58fc00, 0x0b64fc7e, 0x0800f7b6, 0x00f006be,
   1607	0x05a80000, 0xff1006be, 0x0800084a, 0xf49cfc7e,
   1608	0xfa580400, 0xfc9cf6da, 0xf800f672, 0x0710071c,
   1609	0x05a805a8, 0xf8f0f8e4, 0xf800f672, 0x03640926,
   1610	0xfa580400, 0x0b640382, 0x0800084a, 0x00f0f942,
   1611	0x05a80000, 0xff10f942, 0x0800f7b6, 0xf49c0382,
   1612	0xfa58fc00, 0xfc9c0926, 0xf800098e, 0x0710f8e4,
   1613	0x05a8fa58, 0xf8f0071c, 0xf800098e, 0x0364f6da,
   1614	0xfa58fc00, 0x0b64fc7e, 0x0800f7b6, 0x00f006be,
   1615};
   1616
   1617static const u32 b43_ntab_noisevar_r3[] = {
   1618	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1619	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1620	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1621	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1622	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1623	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1624	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1625	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1626	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1627	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1628	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1629	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1630	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1631	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1632	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1633	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1634	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1635	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1636	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1637	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1638	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1639	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1640	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1641	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1642	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1643	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1644	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1645	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1646	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1647	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1648	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1649	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1650	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1651	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1652	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1653	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1654	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1655	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1656	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1657	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1658	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1659	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1660	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1661	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1662	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1663	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1664	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1665	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1666	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1667	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1668	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1669	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1670	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1671	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1672	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1673	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1674	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1675	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1676	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1677	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1678	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1679	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1680	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1681	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
   1682};
   1683
   1684static const u16 b43_ntab_mcs_r3[] = {
   1685	0x0000, 0x0008, 0x000a, 0x0010, 0x0012, 0x0019,
   1686	0x001a, 0x001c, 0x0080, 0x0088, 0x008a, 0x0090,
   1687	0x0092, 0x0099, 0x009a, 0x009c, 0x0100, 0x0108,
   1688	0x010a, 0x0110, 0x0112, 0x0119, 0x011a, 0x011c,
   1689	0x0180, 0x0188, 0x018a, 0x0190, 0x0192, 0x0199,
   1690	0x019a, 0x019c, 0x0000, 0x0098, 0x00a0, 0x00a8,
   1691	0x009a, 0x00a2, 0x00aa, 0x0120, 0x0128, 0x0128,
   1692	0x0130, 0x0138, 0x0138, 0x0140, 0x0122, 0x012a,
   1693	0x012a, 0x0132, 0x013a, 0x013a, 0x0142, 0x01a8,
   1694	0x01b0, 0x01b8, 0x01b0, 0x01b8, 0x01c0, 0x01c8,
   1695	0x01c0, 0x01c8, 0x01d0, 0x01d0, 0x01d8, 0x01aa,
   1696	0x01b2, 0x01ba, 0x01b2, 0x01ba, 0x01c2, 0x01ca,
   1697	0x01c2, 0x01ca, 0x01d2, 0x01d2, 0x01da, 0x0001,
   1698	0x0002, 0x0004, 0x0009, 0x000c, 0x0011, 0x0014,
   1699	0x0018, 0x0020, 0x0021, 0x0022, 0x0024, 0x0081,
   1700	0x0082, 0x0084, 0x0089, 0x008c, 0x0091, 0x0094,
   1701	0x0098, 0x00a0, 0x00a1, 0x00a2, 0x00a4, 0x0007,
   1702	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
   1703	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
   1704	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
   1705	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
   1706	0x0007, 0x0007,
   1707};
   1708
   1709static const u32 b43_ntab_tdi20a0_r3[] = {
   1710	0x00091226, 0x000a1429, 0x000b56ad, 0x000c58b0,
   1711	0x000d5ab3, 0x000e9cb6, 0x000f9eba, 0x0000c13d,
   1712	0x00020301, 0x00030504, 0x00040708, 0x0005090b,
   1713	0x00064b8e, 0x00095291, 0x000a5494, 0x000b9718,
   1714	0x000c9927, 0x000d9b2a, 0x000edd2e, 0x000fdf31,
   1715	0x000101b4, 0x000243b7, 0x000345bb, 0x000447be,
   1716	0x00058982, 0x00068c05, 0x00099309, 0x000a950c,
   1717	0x000bd78f, 0x000cd992, 0x000ddb96, 0x000f1d99,
   1718	0x00005fa8, 0x0001422c, 0x0002842f, 0x00038632,
   1719	0x00048835, 0x0005ca38, 0x0006ccbc, 0x0009d3bf,
   1720	0x000b1603, 0x000c1806, 0x000d1a0a, 0x000e1c0d,
   1721	0x000f5e10, 0x00008093, 0x00018297, 0x0002c49a,
   1722	0x0003c680, 0x0004c880, 0x00060b00, 0x00070d00,
   1723	0x00000000, 0x00000000, 0x00000000,
   1724};
   1725
   1726static const u32 b43_ntab_tdi20a1_r3[] = {
   1727	0x00014b26, 0x00028d29, 0x000393ad, 0x00049630,
   1728	0x0005d833, 0x0006da36, 0x00099c3a, 0x000a9e3d,
   1729	0x000bc081, 0x000cc284, 0x000dc488, 0x000f068b,
   1730	0x0000488e, 0x00018b91, 0x0002d214, 0x0003d418,
   1731	0x0004d6a7, 0x000618aa, 0x00071aae, 0x0009dcb1,
   1732	0x000b1eb4, 0x000c0137, 0x000d033b, 0x000e053e,
   1733	0x000f4702, 0x00008905, 0x00020c09, 0x0003128c,
   1734	0x0004148f, 0x00051712, 0x00065916, 0x00091b19,
   1735	0x000a1d28, 0x000b5f2c, 0x000c41af, 0x000d43b2,
   1736	0x000e85b5, 0x000f87b8, 0x0000c9bc, 0x00024cbf,
   1737	0x00035303, 0x00045506, 0x0005978a, 0x0006998d,
   1738	0x00095b90, 0x000a5d93, 0x000b9f97, 0x000c821a,
   1739	0x000d8400, 0x000ec600, 0x000fc800, 0x00010a00,
   1740	0x00000000, 0x00000000, 0x00000000,
   1741};
   1742
   1743static const u32 b43_ntab_tdi40a0_r3[] = {
   1744	0x0011a346, 0x00136ccf, 0x0014f5d9, 0x001641e2,
   1745	0x0017cb6b, 0x00195475, 0x001b2383, 0x001cad0c,
   1746	0x001e7616, 0x0000821f, 0x00020ba8, 0x0003d4b2,
   1747	0x00056447, 0x00072dd0, 0x0008b6da, 0x000a02e3,
   1748	0x000b8c6c, 0x000d15f6, 0x0011e484, 0x0013ae0d,
   1749	0x00153717, 0x00168320, 0x00180ca9, 0x00199633,
   1750	0x001b6548, 0x001ceed1, 0x001eb7db, 0x0000c3e4,
   1751	0x00024d6d, 0x000416f7, 0x0005a585, 0x00076f0f,
   1752	0x0008f818, 0x000a4421, 0x000bcdab, 0x000d9734,
   1753	0x00122649, 0x0013efd2, 0x001578dc, 0x0016c4e5,
   1754	0x00184e6e, 0x001a17f8, 0x001ba686, 0x001d3010,
   1755	0x001ef999, 0x00010522, 0x00028eac, 0x00045835,
   1756	0x0005e74a, 0x0007b0d3, 0x00093a5d, 0x000a85e6,
   1757	0x000c0f6f, 0x000dd8f9, 0x00126787, 0x00143111,
   1758	0x0015ba9a, 0x00170623, 0x00188fad, 0x001a5936,
   1759	0x001be84b, 0x001db1d4, 0x001f3b5e, 0x000146e7,
   1760	0x00031070, 0x000499fa, 0x00062888, 0x0007f212,
   1761	0x00097b9b, 0x000ac7a4, 0x000c50ae, 0x000e1a37,
   1762	0x0012a94c, 0x001472d5, 0x0015fc5f, 0x00174868,
   1763	0x0018d171, 0x001a9afb, 0x001c2989, 0x001df313,
   1764	0x001f7c9c, 0x000188a5, 0x000351af, 0x0004db38,
   1765	0x0006aa4d, 0x000833d7, 0x0009bd60, 0x000b0969,
   1766	0x000c9273, 0x000e5bfc, 0x00132a8a, 0x0014b414,
   1767	0x00163d9d, 0x001789a6, 0x001912b0, 0x001adc39,
   1768	0x001c6bce, 0x001e34d8, 0x001fbe61, 0x0001ca6a,
   1769	0x00039374, 0x00051cfd, 0x0006ec0b, 0x00087515,
   1770	0x0009fe9e, 0x000b4aa7, 0x000cd3b1, 0x000e9d3a,
   1771	0x00000000, 0x00000000,
   1772};
   1773
   1774static const u32 b43_ntab_tdi40a1_r3[] = {
   1775	0x001edb36, 0x000129ca, 0x0002b353, 0x00047cdd,
   1776	0x0005c8e6, 0x000791ef, 0x00091bf9, 0x000aaa07,
   1777	0x000c3391, 0x000dfd1a, 0x00120923, 0x0013d22d,
   1778	0x00155c37, 0x0016eacb, 0x00187454, 0x001a3dde,
   1779	0x001b89e7, 0x001d12f0, 0x001f1cfa, 0x00016b88,
   1780	0x00033492, 0x0004be1b, 0x00060a24, 0x0007d32e,
   1781	0x00095d38, 0x000aec4c, 0x000c7555, 0x000e3edf,
   1782	0x00124ae8, 0x001413f1, 0x0015a37b, 0x00172c89,
   1783	0x0018b593, 0x001a419c, 0x001bcb25, 0x001d942f,
   1784	0x001f63b9, 0x0001ad4d, 0x00037657, 0x0004c260,
   1785	0x00068be9, 0x000814f3, 0x0009a47c, 0x000b2d8a,
   1786	0x000cb694, 0x000e429d, 0x00128c26, 0x001455b0,
   1787	0x0015e4ba, 0x00176e4e, 0x0018f758, 0x001a8361,
   1788	0x001c0cea, 0x001dd674, 0x001fa57d, 0x0001ee8b,
   1789	0x0003b795, 0x0005039e, 0x0006cd27, 0x000856b1,
   1790	0x0009e5c6, 0x000b6f4f, 0x000cf859, 0x000e8462,
   1791	0x00130deb, 0x00149775, 0x00162603, 0x0017af8c,
   1792	0x00193896, 0x001ac49f, 0x001c4e28, 0x001e17b2,
   1793	0x0000a6c7, 0x00023050, 0x0003f9da, 0x00054563,
   1794	0x00070eec, 0x00089876, 0x000a2704, 0x000bb08d,
   1795	0x000d3a17, 0x001185a0, 0x00134f29, 0x0014d8b3,
   1796	0x001667c8, 0x0017f151, 0x00197adb, 0x001b0664,
   1797	0x001c8fed, 0x001e5977, 0x0000e805, 0x0002718f,
   1798	0x00043b18, 0x000586a1, 0x0007502b, 0x0008d9b4,
   1799	0x000a68c9, 0x000bf252, 0x000dbbdc, 0x0011c7e5,
   1800	0x001390ee, 0x00151a78, 0x0016a906, 0x00183290,
   1801	0x0019bc19, 0x001b4822, 0x001cd12c, 0x001e9ab5,
   1802	0x00000000, 0x00000000,
   1803};
   1804
   1805static const u32 b43_ntab_pilotlt_r3[] = {
   1806	0x76540213, 0x62407351, 0x76543210, 0x76540213,
   1807	0x76540213, 0x76430521,
   1808};
   1809
   1810static const u32 b43_ntab_channelest_r3[] = {
   1811	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1812	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1813	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1814	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1815	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1816	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1817	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1818	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1819	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1820	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1821	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1822	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1823	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1824	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1825	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1826	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1827	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1828	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1829	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1830	0x44444444, 0x44444444, 0x44444444, 0x44444444,
   1831	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1832	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1833	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1834	0x10101010, 0x10101010, 0x10101010, 0x10101010,
   1835};
   1836
   1837static const u8 b43_ntab_framelookup_r3[] = {
   1838	0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
   1839	0x0a, 0x0c, 0x1c, 0x1c, 0x0b, 0x0d, 0x1e, 0x1e,
   1840	0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1a, 0x1a,
   1841	0x0e, 0x10, 0x20, 0x28, 0x0f, 0x11, 0x22, 0x2a,
   1842};
   1843
   1844static const u8 b43_ntab_estimatepowerlt0_r3[] = {
   1845	0x55, 0x54, 0x54, 0x53, 0x52, 0x52, 0x51, 0x51,
   1846	0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0x4d, 0x4c, 0x4c,
   1847	0x4b, 0x4a, 0x49, 0x49, 0x48, 0x47, 0x46, 0x46,
   1848	0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 0x40, 0x3f,
   1849	0x3e, 0x3d, 0x3c, 0x3a, 0x39, 0x38, 0x37, 0x36,
   1850	0x35, 0x33, 0x32, 0x31, 0x2f, 0x2e, 0x2c, 0x2b,
   1851	0x29, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1a,
   1852	0x18, 0x15, 0x12, 0x0e, 0x0b, 0x07, 0x02, 0xfd,
   1853};
   1854
   1855static const u8 b43_ntab_estimatepowerlt1_r3[] = {
   1856	0x55, 0x54, 0x54, 0x53, 0x52, 0x52, 0x51, 0x51,
   1857	0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0x4d, 0x4c, 0x4c,
   1858	0x4b, 0x4a, 0x49, 0x49, 0x48, 0x47, 0x46, 0x46,
   1859	0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 0x40, 0x3f,
   1860	0x3e, 0x3d, 0x3c, 0x3a, 0x39, 0x38, 0x37, 0x36,
   1861	0x35, 0x33, 0x32, 0x31, 0x2f, 0x2e, 0x2c, 0x2b,
   1862	0x29, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1a,
   1863	0x18, 0x15, 0x12, 0x0e, 0x0b, 0x07, 0x02, 0xfd,
   1864};
   1865
   1866static const u8 b43_ntab_adjustpower0_r3[] = {
   1867	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1868	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1869	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1870	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1871	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1872	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1873	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1874	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1875	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1876	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1877	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1878	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1879	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1880	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1881	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1882	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1883};
   1884
   1885static const u8 b43_ntab_adjustpower1_r3[] = {
   1886	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1887	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1888	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1889	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1890	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1891	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1892	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1893	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1894	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1895	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1896	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1897	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1898	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1899	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1900	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1901	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   1902};
   1903
   1904static const u32 b43_ntab_gainctl0_r3[] = {
   1905	0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
   1906	0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
   1907	0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
   1908	0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
   1909	0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
   1910	0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
   1911	0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
   1912	0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
   1913	0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
   1914	0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
   1915	0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
   1916	0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
   1917	0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
   1918	0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
   1919	0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
   1920	0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
   1921	0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
   1922	0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
   1923	0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
   1924	0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
   1925	0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
   1926	0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
   1927	0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
   1928	0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
   1929	0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
   1930	0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
   1931	0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
   1932	0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
   1933	0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
   1934	0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
   1935	0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
   1936	0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
   1937};
   1938
   1939static const u32 b43_ntab_gainctl1_r3[] = {
   1940	0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
   1941	0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
   1942	0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
   1943	0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
   1944	0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
   1945	0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
   1946	0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
   1947	0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
   1948	0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
   1949	0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
   1950	0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
   1951	0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
   1952	0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
   1953	0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
   1954	0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
   1955	0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
   1956	0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
   1957	0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
   1958	0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
   1959	0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
   1960	0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
   1961	0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
   1962	0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
   1963	0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
   1964	0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
   1965	0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
   1966	0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
   1967	0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
   1968	0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
   1969	0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
   1970	0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
   1971	0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
   1972};
   1973
   1974static const u32 b43_ntab_iqlt0_r3[] = {
   1975	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1976	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1977	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1978	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1979	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1980	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1981	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1982	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1983	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1984	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1985	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1986	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1987	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1988	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1989	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1990	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1991	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1992	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1993	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1994	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1995	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1996	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1997	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1998	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   1999	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2000	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2001	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2002	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2003	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2004	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2005	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2006	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2007};
   2008
   2009static const u32 b43_ntab_iqlt1_r3[] = {
   2010	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2011	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2012	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2013	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2014	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2015	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2016	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2017	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2018	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2019	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2020	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2021	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2022	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2023	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2024	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2025	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2026	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2027	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2028	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2029	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2030	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2031	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2032	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2033	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2034	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2035	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2036	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2037	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2038	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2039	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2040	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2041	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2042};
   2043
   2044static const u16 b43_ntab_loftlt0_r3[] = {
   2045	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2046	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2047	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2048	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2049	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2050	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2051	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2052	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2053	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2054	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2055	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2056	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2057	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2058	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2059	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2060	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2061	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2062	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2063	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2064	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2065	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2066	0x0000, 0x0000,
   2067};
   2068
   2069static const u16 b43_ntab_loftlt1_r3[] = {
   2070	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2071	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2072	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2073	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2074	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2075	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2076	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2077	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2078	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2079	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2080	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2081	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2082	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2083	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2084	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2085	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2086	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2087	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2088	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2089	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2090	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
   2091	0x0000, 0x0000,
   2092};
   2093
   2094/* volatile  tables, PHY revision >= 3 */
   2095
   2096/* indexed by antswctl2g */
   2097static const u16 b43_ntab_antswctl_r3[4][32] = {
   2098	{
   2099		0x0082, 0x0082, 0x0211, 0x0222, 0x0328,
   2100		0x0000, 0x0000, 0x0000, 0x0144, 0x0000,
   2101		0x0000, 0x0000, 0x0188, 0x0000, 0x0000,
   2102		0x0000, 0x0082, 0x0082, 0x0211, 0x0222,
   2103		0x0328, 0x0000, 0x0000, 0x0000, 0x0144,
   2104		0x0000, 0x0000, 0x0000, 0x0188, 0x0000,
   2105		0x0000, 0x0000,
   2106	},
   2107	{
   2108		0x0022, 0x0022, 0x0011, 0x0022, 0x0022,
   2109		0x0000, 0x0000, 0x0000, 0x0011, 0x0000,
   2110		0x0000, 0x0000, 0x0022, 0x0000, 0x0000,
   2111		0x0000, 0x0022, 0x0022, 0x0011, 0x0022,
   2112		0x0022, 0x0000, 0x0000, 0x0000, 0x0011,
   2113		0x0000, 0x0000, 0x0000, 0x0022, 0x0000,
   2114		0x0000, 0x0000,
   2115	},
   2116	{
   2117		0x0088, 0x0088, 0x0044, 0x0088, 0x0088,
   2118		0x0000, 0x0000, 0x0000, 0x0044, 0x0000,
   2119		0x0000, 0x0000, 0x0088, 0x0000, 0x0000,
   2120		0x0000, 0x0088, 0x0088, 0x0044, 0x0088,
   2121		0x0088, 0x0000, 0x0000, 0x0000, 0x0044,
   2122		0x0000, 0x0000, 0x0000, 0x0088, 0x0000,
   2123		0x0000, 0x0000,
   2124	},
   2125	{
   2126		0x0022, 0x0022, 0x0011, 0x0022, 0x0000,
   2127		0x0000, 0x0000, 0x0000, 0x0011, 0x0000,
   2128		0x0000, 0x0000, 0x0022, 0x0000, 0x0000,
   2129		0x03cc, 0x0022, 0x0022, 0x0011, 0x0022,
   2130		0x0000, 0x0000, 0x0000, 0x0000, 0x0011,
   2131		0x0000, 0x0000, 0x0000, 0x0022, 0x0000,
   2132		0x0000, 0x03cc,
   2133	}
   2134};
   2135
   2136/* static tables, PHY revision >= 7 */
   2137
   2138/* Copied from brcmsmac (5.75.11) */
   2139static const u32 b43_ntab_tmap_r7[] = {
   2140	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   2141	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2142	0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
   2143	0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
   2144	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x000aa888,
   2145	0x88880000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2146	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
   2147	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
   2148	0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
   2149	0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
   2150	0xf1111110, 0x11111111, 0x11f11111, 0x00011111,
   2151	0x11110000, 0x1111f111, 0x11111111, 0x111111f1,
   2152	0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00088aaa,
   2153	0xaaaa0000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
   2154	0xaaa8aaa0, 0x8aaa8aaa, 0xaa8a8a8a, 0x000aaa88,
   2155	0x8aaa0000, 0xaaa8a888, 0x8aa88a8a, 0x8a88a888,
   2156	0x08080a00, 0x0a08080a, 0x080a0a08, 0x00080808,
   2157	0x080a0000, 0x080a0808, 0x080a0808, 0x0a0a0a08,
   2158	0xa0a0a0a0, 0x80a0a080, 0x8080a0a0, 0x00008080,
   2159	0x80a00000, 0x80a080a0, 0xa080a0a0, 0x8080a0a0,
   2160	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2161	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2162	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2163	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2164	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2165	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2166	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2167	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2168	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2169	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2170	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2171	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2172	0x99999000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
   2173	0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
   2174	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2175	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
   2176	0x22000000, 0x2222b222, 0x22222222, 0x222222b2,
   2177	0xb2222220, 0x22222222, 0x22d22222, 0x00000222,
   2178	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
   2179	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
   2180	0x33000000, 0x3333b333, 0x33333333, 0x333333b3,
   2181	0xb3333330, 0x33333333, 0x33d33333, 0x00000333,
   2182	0x22000000, 0x2222a222, 0x22222222, 0x222222a2,
   2183	0xa2222220, 0x22222222, 0x22c22222, 0x00000222,
   2184	0x99b99b00, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
   2185	0x9b99bb99, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
   2186	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2187	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
   2188	0x22222200, 0x2222f222, 0x22222222, 0x222222f2,
   2189	0x22222222, 0x22222222, 0x22f22222, 0x00000222,
   2190	0x11000000, 0x1111f111, 0x11111111, 0x11111111,
   2191	0xf1111111, 0x11111111, 0x11f11111, 0x01111111,
   2192	0xbb9bb900, 0xb9b9bb99, 0xb99bbbbb, 0xbbbb9b9b,
   2193	0xb9bb99bb, 0xb99999b9, 0xb9b9b99b, 0x00000bbb,
   2194	0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
   2195	0xa8aa88aa, 0xa88888a8, 0xa8a8a88a, 0x0a888aaa,
   2196	0xaa000000, 0xa8a8aa88, 0xa88aaaaa, 0xaaaa8a8a,
   2197	0xa8aa88a0, 0xa88888a8, 0xa8a8a88a, 0x00000aaa,
   2198	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2199	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   2200	0xbbbbbb00, 0x999bbbbb, 0x9bb99b9b, 0xb9b9b9bb,
   2201	0xb9b99bbb, 0xb9b9b9bb, 0xb9bb9b99, 0x00000999,
   2202	0x8a000000, 0xaa88a888, 0xa88888aa, 0xa88a8a88,
   2203	0xa88aa88a, 0x88a8aaaa, 0xa8aa8aaa, 0x0888a88a,
   2204	0x0b0b0b00, 0x090b0b0b, 0x0b090b0b, 0x0909090b,
   2205	0x09090b0b, 0x09090b0b, 0x09090b09, 0x00000909,
   2206	0x0a000000, 0x0a080808, 0x080a080a, 0x080a0a08,
   2207	0x080a080a, 0x0808080a, 0x0a0a0a08, 0x0808080a,
   2208	0xb0b0b000, 0x9090b0b0, 0x90b09090, 0xb0b0b090,
   2209	0xb0b090b0, 0x90b0b0b0, 0xb0b09090, 0x00000090,
   2210	0x80000000, 0xa080a080, 0xa08080a0, 0xa0808080,
   2211	0xa080a080, 0x80a0a0a0, 0xa0a080a0, 0x00a0a0a0,
   2212	0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
   2213	0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
   2214	0x11000000, 0x1111f111, 0x11111111, 0x111111f1,
   2215	0xf1111110, 0x11111111, 0x11f11111, 0x00000111,
   2216	0x33000000, 0x3333f333, 0x33333333, 0x333333f3,
   2217	0xf3333330, 0x33333333, 0x33f33333, 0x00000333,
   2218	0x22000000, 0x2222f222, 0x22222222, 0x222222f2,
   2219	0xf2222220, 0x22222222, 0x22f22222, 0x00000222,
   2220	0x99000000, 0x9b9b99bb, 0x9bb99999, 0x9999b9b9,
   2221	0x9b99bb90, 0x9bbbbb9b, 0x9b9b9bb9, 0x00000999,
   2222	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2223	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   2224	0x88888000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2225	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   2226	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2227	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00aaa888,
   2228	0x88a88a00, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2229	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x000aa888,
   2230	0x88880000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2231	0x8a88aa88, 0x8aaaaa8a, 0x8a8a8aa8, 0x08aaa888,
   2232	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
   2233	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
   2234	0x11000000, 0x1111a111, 0x11111111, 0x111111a1,
   2235	0xa1111110, 0x11111111, 0x11c11111, 0x00000111,
   2236	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2237	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   2238	0x88000000, 0x8a8a88aa, 0x8aa88888, 0x8888a8a8,
   2239	0x8a88aa80, 0x8aaaaa8a, 0x8a8a8aa8, 0x00000888,
   2240	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2241	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2242	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2243	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2244	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2245	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2246	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2247	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2248	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2249	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2250	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2251	0x00000000, 0x00000000, 0x00000000, 0x00000000,
   2252};
   2253
   2254/* Extracted from MMIO dump of 6.30.223.141 */
   2255static const u32 b43_ntab_noisevar_r7[] = {
   2256	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2257	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2258	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2259	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2260	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2261	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2262	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2263	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2264	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2265	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2266	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2267	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2268	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2269	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2270	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2271	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2272	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2273	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2274	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2275	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2276	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2277	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2278	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2279	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2280	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2281	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2282	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2283	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2284	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2285	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2286	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2287	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2288	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2289	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2290	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2291	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2292	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2293	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2294	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2295	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2296	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2297	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2298	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2299	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2300	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2301	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2302	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2303	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2304	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2305	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2306	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2307	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2308	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2309	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2310	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2311	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2312	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2313	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2314	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2315	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2316	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2317	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2318	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2319	0x020c020c, 0x0000014d, 0x020c020c, 0x0000014d,
   2320};
   2321
   2322/**************************************************
   2323 * TX gain tables
   2324 **************************************************/
   2325
   2326static const u32 b43_ntab_tx_gain_rev0_1_2[] = {
   2327	0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
   2328	0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
   2329	0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
   2330	0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
   2331	0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
   2332	0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
   2333	0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
   2334	0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
   2335	0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
   2336	0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
   2337	0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
   2338	0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
   2339	0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
   2340	0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
   2341	0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
   2342	0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
   2343	0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
   2344	0x03902942, 0x03902844, 0x03902842, 0x03902744,
   2345	0x03902742, 0x03902644, 0x03902642, 0x03902544,
   2346	0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
   2347	0x03802a42, 0x03802944, 0x03802942, 0x03802844,
   2348	0x03802842, 0x03802744, 0x03802742, 0x03802644,
   2349	0x03802642, 0x03802544, 0x03802542, 0x03802444,
   2350	0x03802442, 0x03802344, 0x03802342, 0x03802244,
   2351	0x03802242, 0x03802144, 0x03802142, 0x03802044,
   2352	0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
   2353	0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
   2354	0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
   2355	0x03801a42, 0x03801944, 0x03801942, 0x03801844,
   2356	0x03801842, 0x03801744, 0x03801742, 0x03801644,
   2357	0x03801642, 0x03801544, 0x03801542, 0x03801444,
   2358	0x03801442, 0x03801344, 0x03801342, 0x00002b00,
   2359};
   2360
   2361/* EPA 2 GHz */
   2362
   2363static const u32 b43_ntab_tx_gain_epa_rev3_2g[] = {
   2364	0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
   2365	0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
   2366	0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
   2367	0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
   2368	0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
   2369	0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
   2370	0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
   2371	0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
   2372	0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
   2373	0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
   2374	0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
   2375	0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
   2376	0x19410044, 0x19410042, 0x19410040, 0x1941003e,
   2377	0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
   2378	0x18410044, 0x18410042, 0x18410040, 0x1841003e,
   2379	0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
   2380	0x17410044, 0x17410042, 0x17410040, 0x1741003e,
   2381	0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
   2382	0x16410044, 0x16410042, 0x16410040, 0x1641003e,
   2383	0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
   2384	0x15410044, 0x15410042, 0x15410040, 0x1541003e,
   2385	0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
   2386	0x14410044, 0x14410042, 0x14410040, 0x1441003e,
   2387	0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
   2388	0x13410044, 0x13410042, 0x13410040, 0x1341003e,
   2389	0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
   2390	0x12410044, 0x12410042, 0x12410040, 0x1241003e,
   2391	0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
   2392	0x11410044, 0x11410042, 0x11410040, 0x1141003e,
   2393	0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
   2394	0x10410044, 0x10410042, 0x10410040, 0x1041003e,
   2395	0x1041003c, 0x1041003b, 0x10410039, 0x10410037,
   2396};
   2397
   2398static const u32 b43_ntab_tx_gain_epa_rev3_hi_pwr_2g[] = {
   2399	0x0f410044, 0x0f410042, 0x0f410040, 0x0f41003e,
   2400	0x0f41003c, 0x0f41003b, 0x0f410039, 0x0f410037,
   2401	0x0e410044, 0x0e410042, 0x0e410040, 0x0e41003e,
   2402	0x0e41003c, 0x0e41003b, 0x0e410039, 0x0e410037,
   2403	0x0d410044, 0x0d410042, 0x0d410040, 0x0d41003e,
   2404	0x0d41003c, 0x0d41003b, 0x0d410039, 0x0d410037,
   2405	0x0c410044, 0x0c410042, 0x0c410040, 0x0c41003e,
   2406	0x0c41003c, 0x0c41003b, 0x0c410039, 0x0c410037,
   2407	0x0b410044, 0x0b410042, 0x0b410040, 0x0b41003e,
   2408	0x0b41003c, 0x0b41003b, 0x0b410039, 0x0b410037,
   2409	0x0a410044, 0x0a410042, 0x0a410040, 0x0a41003e,
   2410	0x0a41003c, 0x0a41003b, 0x0a410039, 0x0a410037,
   2411	0x09410044, 0x09410042, 0x09410040, 0x0941003e,
   2412	0x0941003c, 0x0941003b, 0x09410039, 0x09410037,
   2413	0x08410044, 0x08410042, 0x08410040, 0x0841003e,
   2414	0x0841003c, 0x0841003b, 0x08410039, 0x08410037,
   2415	0x07410044, 0x07410042, 0x07410040, 0x0741003e,
   2416	0x0741003c, 0x0741003b, 0x07410039, 0x07410037,
   2417	0x06410044, 0x06410042, 0x06410040, 0x0641003e,
   2418	0x0641003c, 0x0641003b, 0x06410039, 0x06410037,
   2419	0x05410044, 0x05410042, 0x05410040, 0x0541003e,
   2420	0x0541003c, 0x0541003b, 0x05410039, 0x05410037,
   2421	0x04410044, 0x04410042, 0x04410040, 0x0441003e,
   2422	0x0441003c, 0x0441003b, 0x04410039, 0x04410037,
   2423	0x03410044, 0x03410042, 0x03410040, 0x0341003e,
   2424	0x0341003c, 0x0341003b, 0x03410039, 0x03410037,
   2425	0x02410044, 0x02410042, 0x02410040, 0x0241003e,
   2426	0x0241003c, 0x0241003b, 0x02410039, 0x02410037,
   2427	0x01410044, 0x01410042, 0x01410040, 0x0141003e,
   2428	0x0141003c, 0x0141003b, 0x01410039, 0x01410037,
   2429	0x00410044, 0x00410042, 0x00410040, 0x0041003e,
   2430	0x0041003c, 0x0041003b, 0x00410039, 0x00410037
   2431};
   2432
   2433/* EPA 5 GHz */
   2434
   2435static const u32 b43_ntab_tx_gain_epa_rev3_5g[] = {
   2436	0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
   2437	0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
   2438	0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
   2439	0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
   2440	0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
   2441	0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
   2442	0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
   2443	0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
   2444	0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
   2445	0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
   2446	0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
   2447	0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
   2448	0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
   2449	0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
   2450	0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
   2451	0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
   2452	0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
   2453	0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
   2454	0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
   2455	0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
   2456	0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
   2457	0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
   2458	0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
   2459	0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
   2460	0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
   2461	0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
   2462	0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
   2463	0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
   2464	0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
   2465	0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
   2466	0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
   2467	0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037,
   2468};
   2469
   2470static const u32 b43_ntab_tx_gain_epa_rev4_5g[] = {
   2471	0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
   2472	0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
   2473	0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
   2474	0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
   2475	0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
   2476	0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
   2477	0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
   2478	0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
   2479	0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
   2480	0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
   2481	0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
   2482	0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
   2483	0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
   2484	0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
   2485	0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
   2486	0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
   2487	0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
   2488	0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
   2489	0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
   2490	0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
   2491	0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
   2492	0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
   2493	0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
   2494	0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
   2495	0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
   2496	0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
   2497	0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
   2498	0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
   2499	0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
   2500	0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
   2501	0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
   2502	0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034,
   2503};
   2504
   2505static const u32 b43_ntab_tx_gain_epa_rev4_hi_pwr_5g[] = {
   2506	0x2ff10044, 0x2ff10042, 0x2ff10040, 0x2ff1003e,
   2507	0x2ff1003c, 0x2ff1003b, 0x2ff10039, 0x2ff10037,
   2508	0x2ef10044, 0x2ef10042, 0x2ef10040, 0x2ef1003e,
   2509	0x2ef1003c, 0x2ef1003b, 0x2ef10039, 0x2ef10037,
   2510	0x2df10044, 0x2df10042, 0x2df10040, 0x2df1003e,
   2511	0x2df1003c, 0x2df1003b, 0x2df10039, 0x2df10037,
   2512	0x2cf10044, 0x2cf10042, 0x2cf10040, 0x2cf1003e,
   2513	0x2cf1003c, 0x2cf1003b, 0x2cf10039, 0x2cf10037,
   2514	0x2bf10044, 0x2bf10042, 0x2bf10040, 0x2bf1003e,
   2515	0x2bf1003c, 0x2bf1003b, 0x2bf10039, 0x2bf10037,
   2516	0x2af10044, 0x2af10042, 0x2af10040, 0x2af1003e,
   2517	0x2af1003c, 0x2af1003b, 0x2af10039, 0x2af10037,
   2518	0x29f10044, 0x29f10042, 0x29f10040, 0x29f1003e,
   2519	0x29f1003c, 0x29f1003b, 0x29f10039, 0x29f10037,
   2520	0x28f10044, 0x28f10042, 0x28f10040, 0x28f1003e,
   2521	0x28f1003c, 0x28f1003b, 0x28f10039, 0x28f10037,
   2522	0x27f10044, 0x27f10042, 0x27f10040, 0x27f1003e,
   2523	0x27f1003c, 0x27f1003b, 0x27f10039, 0x27f10037,
   2524	0x26f10044, 0x26f10042, 0x26f10040, 0x26f1003e,
   2525	0x26f1003c, 0x26f1003b, 0x26f10039, 0x26f10037,
   2526	0x25f10044, 0x25f10042, 0x25f10040, 0x25f1003e,
   2527	0x25f1003c, 0x25f1003b, 0x25f10039, 0x25f10037,
   2528	0x24f10044, 0x24f10042, 0x24f10040, 0x24f1003e,
   2529	0x24f1003c, 0x24f1003b, 0x24f10039, 0x24f10038,
   2530	0x23f10041, 0x23f10040, 0x23f1003f, 0x23f1003e,
   2531	0x23f1003c, 0x23f1003b, 0x23f10039, 0x23f10037,
   2532	0x22f10044, 0x22f10042, 0x22f10040, 0x22f1003e,
   2533	0x22f1003c, 0x22f1003b, 0x22f10039, 0x22f10037,
   2534	0x21f10044, 0x21f10042, 0x21f10040, 0x21f1003e,
   2535	0x21f1003c, 0x21f1003b, 0x21f10039, 0x21f10037,
   2536	0x20d10043, 0x20d10041, 0x20d1003e, 0x20d1003c,
   2537	0x20d1003a, 0x20d10038, 0x20d10036, 0x20d10034
   2538};
   2539
   2540static const u32 b43_ntab_tx_gain_epa_rev5_5g[] = {
   2541	0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
   2542	0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
   2543	0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
   2544	0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
   2545	0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
   2546	0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
   2547	0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
   2548	0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
   2549	0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
   2550	0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
   2551	0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
   2552	0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
   2553	0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
   2554	0x09620039, 0x09620037, 0x09620035, 0x09620033,
   2555	0x08620044, 0x08620042, 0x08620040, 0x0862003e,
   2556	0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
   2557	0x07620043, 0x07620042, 0x07620040, 0x0762003f,
   2558	0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
   2559	0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
   2560	0x06620039, 0x06620037, 0x06620035, 0x06620033,
   2561	0x05620046, 0x05620044, 0x05620042, 0x05620040,
   2562	0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
   2563	0x04620044, 0x04620042, 0x04620040, 0x0462003e,
   2564	0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
   2565	0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
   2566	0x03620038, 0x03620037, 0x03620035, 0x03620033,
   2567	0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
   2568	0x02620046, 0x02620044, 0x02620043, 0x02620042,
   2569	0x0162004a, 0x01620048, 0x01620046, 0x01620044,
   2570	0x01620043, 0x01620042, 0x01620041, 0x01620040,
   2571	0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
   2572	0x0062003b, 0x00620039, 0x00620037, 0x00620035,
   2573};
   2574
   2575/* IPA 2 GHz */
   2576
   2577static const u32 b43_ntab_tx_gain_ipa_rev3_2g[] = {
   2578	0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
   2579	0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
   2580	0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
   2581	0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
   2582	0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
   2583	0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
   2584	0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
   2585	0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
   2586	0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
   2587	0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
   2588	0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
   2589	0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
   2590	0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
   2591	0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
   2592	0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
   2593	0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
   2594	0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
   2595	0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
   2596	0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
   2597	0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
   2598	0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
   2599	0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
   2600	0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
   2601	0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
   2602	0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
   2603	0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
   2604	0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
   2605	0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
   2606	0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
   2607	0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
   2608	0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
   2609	0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025,
   2610};
   2611
   2612static const u32 b43_ntab_tx_gain_ipa_rev5_2g[] = {
   2613	0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
   2614	0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
   2615	0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
   2616	0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
   2617	0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
   2618	0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
   2619	0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
   2620	0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
   2621	0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
   2622	0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
   2623	0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
   2624	0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
   2625	0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
   2626	0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
   2627	0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
   2628	0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
   2629	0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
   2630	0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
   2631	0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
   2632	0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
   2633	0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
   2634	0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
   2635	0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
   2636	0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
   2637	0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
   2638	0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
   2639	0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
   2640	0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
   2641	0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
   2642	0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
   2643	0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
   2644	0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025,
   2645};
   2646
   2647static const u32 b43_ntab_tx_gain_ipa_rev6_2g[] = {
   2648	0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
   2649	0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
   2650	0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
   2651	0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
   2652	0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
   2653	0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
   2654	0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
   2655	0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
   2656	0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
   2657	0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
   2658	0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
   2659	0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
   2660	0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
   2661	0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
   2662	0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
   2663	0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
   2664	0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
   2665	0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
   2666	0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
   2667	0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
   2668	0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
   2669	0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
   2670	0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
   2671	0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
   2672	0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
   2673	0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
   2674	0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
   2675	0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
   2676	0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
   2677	0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
   2678	0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
   2679	0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025,
   2680};
   2681
   2682/* Copied from brcmsmac (5.75.11): nphy_tpc_txgain_ipa_2g_2057rev5 */
   2683static const u32 b43_ntab_tx_gain_ipa_2057_rev5_2g[] = {
   2684	0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
   2685	0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
   2686	0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
   2687	0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
   2688	0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
   2689	0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
   2690	0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
   2691	0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
   2692	0x30270027, 0x30270025, 0x30270023, 0x301f002c,
   2693	0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
   2694	0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
   2695	0x30170028, 0x30170026, 0x30170024, 0x30170022,
   2696	0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
   2697	0x3017001a, 0x30170018, 0x30170017, 0x30170015,
   2698	0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
   2699	0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
   2700	0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
   2701	0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
   2702	0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
   2703	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2704	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2705	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2706	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2707	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2708	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2709	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2710	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2711	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2712	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2713	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2714	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2715	0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
   2716};
   2717
   2718/* Extracted from MMIO dump of 6.30.223.141 */
   2719static const u32 b43_ntab_tx_gain_ipa_2057_rev9_2g[] = {
   2720	0x60ff0031, 0x60e7002c, 0x60cf002a, 0x60c70029,
   2721	0x60b70029, 0x60a70029, 0x609f002a, 0x6097002b,
   2722	0x6087002e, 0x60770031, 0x606f0032, 0x60670034,
   2723	0x60670031, 0x605f0033, 0x605f0031, 0x60570033,
   2724	0x60570030, 0x6057002d, 0x6057002b, 0x604f002d,
   2725	0x604f002b, 0x604f0029, 0x604f0026, 0x60470029,
   2726	0x60470027, 0x603f0029, 0x603f0027, 0x603f0025,
   2727	0x60370029, 0x60370027, 0x60370024, 0x602f002a,
   2728	0x602f0028, 0x602f0026, 0x602f0024, 0x6027002a,
   2729	0x60270028, 0x60270026, 0x60270024, 0x60270022,
   2730	0x601f002b, 0x601f0029, 0x601f0027, 0x601f0024,
   2731	0x601f0022, 0x601f0020, 0x601f001f, 0x601f001d,
   2732	0x60170029, 0x60170027, 0x60170025, 0x60170023,
   2733	0x60170021, 0x6017001f, 0x6017001d, 0x6017001c,
   2734	0x6017001a, 0x60170018, 0x60170018, 0x60170016,
   2735	0x60170015, 0x600f0029, 0x600f0027, 0x600f0025,
   2736	0x600f0023, 0x600f0021, 0x600f001f, 0x600f001d,
   2737	0x600f001c, 0x600f001a, 0x600f0019, 0x600f0018,
   2738	0x600f0016, 0x600f0015, 0x600f0115, 0x600f0215,
   2739	0x600f0315, 0x600f0415, 0x600f0515, 0x600f0615,
   2740	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2741	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2742	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2743	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2744	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2745	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2746	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2747	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2748	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2749	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2750	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2751	0x600f0715, 0x600f0715, 0x600f0715, 0x600f0715,
   2752};
   2753
   2754/* Extracted from MMIO dump of 6.30.223.248 */
   2755static const u32 b43_ntab_tx_gain_ipa_2057_rev14_2g[] = {
   2756	0x50df002e, 0x50cf002d, 0x50bf002c, 0x50b7002b,
   2757	0x50af002a, 0x50a70029, 0x509f0029, 0x50970028,
   2758	0x508f0027, 0x50870027, 0x507f0027, 0x50770027,
   2759	0x506f0027, 0x50670027, 0x505f0028, 0x50570029,
   2760	0x504f002b, 0x5047002e, 0x5047002b, 0x50470029,
   2761	0x503f002c, 0x503f0029, 0x5037002c, 0x5037002a,
   2762	0x50370028, 0x502f002d, 0x502f002b, 0x502f0028,
   2763	0x502f0026, 0x5027002d, 0x5027002a, 0x50270028,
   2764	0x50270026, 0x50270024, 0x501f002e, 0x501f002b,
   2765	0x501f0029, 0x501f0027, 0x501f0024, 0x501f0022,
   2766	0x501f0020, 0x501f001f, 0x5017002c, 0x50170029,
   2767	0x50170027, 0x50170024, 0x50170022, 0x50170021,
   2768	0x5017001f, 0x5017001d, 0x5017001b, 0x5017001a,
   2769	0x50170018, 0x50170017, 0x50170015, 0x500f002c,
   2770	0x500f002a, 0x500f0027, 0x500f0025, 0x500f0023,
   2771	0x500f0022, 0x500f001f, 0x500f001e, 0x500f001c,
   2772	0x500f001a, 0x500f0019, 0x500f0018, 0x500f0016,
   2773	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2774	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2775	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2776	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2777	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2778	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2779	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2780	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2781	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2782	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2783	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2784	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2785	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2786	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2787	0x500f0015, 0x500f0015, 0x500f0015, 0x500f0015,
   2788};
   2789
   2790/* IPA 2 5Hz */
   2791
   2792static const u32 b43_ntab_tx_gain_ipa_rev3_5g[] = {
   2793	0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
   2794	0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
   2795	0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
   2796	0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
   2797	0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
   2798	0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
   2799	0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
   2800	0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
   2801	0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
   2802	0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
   2803	0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
   2804	0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
   2805	0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
   2806	0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
   2807	0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
   2808	0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
   2809	0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
   2810	0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
   2811	0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
   2812	0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
   2813	0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
   2814	0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
   2815	0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
   2816	0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
   2817	0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
   2818	0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
   2819	0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
   2820	0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
   2821	0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
   2822	0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
   2823	0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
   2824	0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f,
   2825};
   2826
   2827/* Extracted from MMIO dump of 6.30.223.141 */
   2828static const u32 b43_ntab_tx_gain_ipa_2057_rev9_5g[] = {
   2829	0x7f7f0053, 0x7f7f004b, 0x7f7f0044, 0x7f7f003f,
   2830	0x7f7f0039, 0x7f7f0035, 0x7f7f0032, 0x7f7f0030,
   2831	0x7f7f002d, 0x7e7f0030, 0x7e7f002d, 0x7d7f0032,
   2832	0x7d7f002f, 0x7d7f002c, 0x7c7f0032, 0x7c7f0030,
   2833	0x7c7f002d, 0x7b7f0030, 0x7b7f002e, 0x7b7f002b,
   2834	0x7a7f0032, 0x7a7f0030, 0x7a7f002d, 0x7a7f002b,
   2835	0x797f0030, 0x797f002e, 0x797f002b, 0x797f0029,
   2836	0x787f0030, 0x787f002d, 0x787f002b, 0x777f0032,
   2837	0x777f0030, 0x777f002d, 0x777f002b, 0x767f0031,
   2838	0x767f002f, 0x767f002c, 0x767f002a, 0x757f0031,
   2839	0x757f002f, 0x757f002c, 0x757f002a, 0x747f0030,
   2840	0x747f002d, 0x747f002b, 0x737f0032, 0x737f002f,
   2841	0x737f002c, 0x737f002a, 0x727f0030, 0x727f002d,
   2842	0x727f002b, 0x727f0029, 0x717f0030, 0x717f002d,
   2843	0x717f002b, 0x707f0031, 0x707f002f, 0x707f002c,
   2844	0x707f002a, 0x707f0027, 0x707f0025, 0x707f0023,
   2845	0x707f0021, 0x707f001f, 0x707f001d, 0x707f001c,
   2846	0x707f001a, 0x707f0019, 0x707f0017, 0x707f0016,
   2847	0x707f0015, 0x707f0014, 0x707f0012, 0x707f0012,
   2848	0x707f0011, 0x707f0010, 0x707f000f, 0x707f000e,
   2849	0x707f000d, 0x707f000d, 0x707f000c, 0x707f000b,
   2850	0x707f000a, 0x707f000a, 0x707f0009, 0x707f0008,
   2851	0x707f0008, 0x707f0008, 0x707f0008, 0x707f0007,
   2852	0x707f0007, 0x707f0006, 0x707f0006, 0x707f0006,
   2853	0x707f0005, 0x707f0005, 0x707f0005, 0x707f0004,
   2854	0x707f0004, 0x707f0004, 0x707f0003, 0x707f0003,
   2855	0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
   2856	0x707f0003, 0x707f0003, 0x707f0003, 0x707f0003,
   2857	0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
   2858	0x707f0002, 0x707f0002, 0x707f0002, 0x707f0002,
   2859	0x707f0002, 0x707f0001, 0x707f0001, 0x707f0001,
   2860	0x707f0001, 0x707f0001, 0x707f0001, 0x707f0001,
   2861};
   2862
   2863const s8 b43_ntab_papd_pga_gain_delta_ipa_2g[] = {
   2864	-114, -108, -98, -91, -84, -78, -70, -62,
   2865	-54, -46, -39, -31, -23, -15, -8, 0
   2866};
   2867
   2868/* Extracted from MMIO dump of 6.30.223.248
   2869 * Entries: 0, 15, 17, 21, 24, 26, 27, 29, 30 were guessed
   2870 */
   2871static const s16 b43_ntab_rf_pwr_offset_2057_rev9_2g[] = {
   2872	-133, -133, -107, -92, -81,
   2873	-73, -66, -61, -56, -52,
   2874	-48, -44, -41, -37, -34,
   2875	-31, -28, -25, -22, -19,
   2876	-17, -14, -12, -10, -9,
   2877	-7, -5, -4, -3, -2,
   2878	-1, 0,
   2879};
   2880
   2881/* Extracted from MMIO dump of 6.30.223.248 */
   2882static const s16 b43_ntab_rf_pwr_offset_2057_rev9_5g[] = {
   2883	-101, -94, -86, -79, -72,
   2884	-65, -57, -50, -42, -35,
   2885	-28, -21, -16, -9, -4,
   2886	0,
   2887};
   2888
   2889/* Extracted from MMIO dump of 6.30.223.248
   2890 * Entries: 0, 26, 28, 29, 30, 31 were guessed
   2891 */
   2892static const s16 b43_ntab_rf_pwr_offset_2057_rev14_2g[] = {
   2893	-111, -111, -111, -84, -70,
   2894	-59, -52, -45, -40, -36,
   2895	-32, -29, -26, -23, -21,
   2896	-18, -16, -15, -13, -11,
   2897	-10, -8, -7, -6, -5,
   2898	-4, -4, -3, -3, -2,
   2899	-2, -1,
   2900};
   2901
   2902const u16 tbl_iqcal_gainparams[2][9][8] = {
   2903	{
   2904		{ 0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69 },
   2905		{ 0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69 },
   2906		{ 0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68 },
   2907		{ 0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67 },
   2908		{ 0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66 },
   2909		{ 0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65 },
   2910		{ 0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65 },
   2911		{ 0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65 },
   2912		{ 0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65 }
   2913	},
   2914	{
   2915		{ 0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
   2916		{ 0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
   2917		{ 0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79 },
   2918		{ 0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78 },
   2919		{ 0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78 },
   2920		{ 0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78 },
   2921		{ 0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78 },
   2922		{ 0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78 },
   2923		{ 0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78 }
   2924	}
   2925};
   2926
   2927const struct nphy_txiqcal_ladder ladder_lo[] = {
   2928	{ 3, 0 },
   2929	{ 4, 0 },
   2930	{ 6, 0 },
   2931	{ 9, 0 },
   2932	{ 13, 0 },
   2933	{ 18, 0 },
   2934	{ 25, 0 },
   2935	{ 25, 1 },
   2936	{ 25, 2 },
   2937	{ 25, 3 },
   2938	{ 25, 4 },
   2939	{ 25, 5 },
   2940	{ 25, 6 },
   2941	{ 25, 7 },
   2942	{ 35, 7 },
   2943	{ 50, 7 },
   2944	{ 71, 7 },
   2945	{ 100, 7 }
   2946};
   2947
   2948const struct nphy_txiqcal_ladder ladder_iq[] = {
   2949	{ 3, 0 },
   2950	{ 4, 0 },
   2951	{ 6, 0 },
   2952	{ 9, 0 },
   2953	{ 13, 0 },
   2954	{ 18, 0 },
   2955	{ 25, 0 },
   2956	{ 35, 0 },
   2957	{ 50, 0 },
   2958	{ 71, 0 },
   2959	{ 100, 0 },
   2960	{ 100, 1 },
   2961	{ 100, 2 },
   2962	{ 100, 3 },
   2963	{ 100, 4 },
   2964	{ 100, 5 },
   2965	{ 100, 6 },
   2966	{ 100, 7 }
   2967};
   2968
   2969const u16 loscale[] = {
   2970	256, 256, 271, 271,
   2971	287, 256, 256, 271,
   2972	271, 287, 287, 304,
   2973	304, 256, 256, 271,
   2974	271, 287, 287, 304,
   2975	304, 322, 322, 341,
   2976	341, 362, 362, 383,
   2977	383, 256, 256, 271,
   2978	271, 287, 287, 304,
   2979	304, 322, 322, 256,
   2980	256, 271, 271, 287,
   2981	287, 304, 304, 322,
   2982	322, 341, 341, 362,
   2983	362, 256, 256, 271,
   2984	271, 287, 287, 304,
   2985	304, 322, 322, 256,
   2986	256, 271, 271, 287,
   2987	287, 304, 304, 322,
   2988	322, 341, 341, 362,
   2989	362, 256, 256, 271,
   2990	271, 287, 287, 304,
   2991	304, 322, 322, 341,
   2992	341, 362, 362, 383,
   2993	383, 406, 406, 430,
   2994	430, 455, 455, 482,
   2995	482, 511, 511, 541,
   2996	541, 573, 573, 607,
   2997	607, 643, 643, 681,
   2998	681, 722, 722, 764,
   2999	764, 810, 810, 858,
   3000	858, 908, 908, 962,
   3001	962, 1019, 1019, 256
   3002};
   3003
   3004const u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
   3005	0x0200, 0x0300, 0x0400, 0x0700,
   3006	0x0900, 0x0c00, 0x1200, 0x1201,
   3007	0x1202, 0x1203, 0x1204, 0x1205,
   3008	0x1206, 0x1207, 0x1907, 0x2307,
   3009	0x3207, 0x4707
   3010};
   3011
   3012const u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
   3013	0x0300, 0x0500, 0x0700, 0x0900,
   3014	0x0d00, 0x1100, 0x1900, 0x1901,
   3015	0x1902, 0x1903, 0x1904, 0x1905,
   3016	0x1906, 0x1907, 0x2407, 0x3207,
   3017	0x4607, 0x6407
   3018};
   3019
   3020const u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
   3021	0x0100, 0x0200, 0x0400, 0x0700,
   3022	0x0900, 0x0c00, 0x1200, 0x1900,
   3023	0x2300, 0x3200, 0x4700, 0x4701,
   3024	0x4702, 0x4703, 0x4704, 0x4705,
   3025	0x4706, 0x4707
   3026};
   3027
   3028const u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
   3029	0x0200, 0x0300, 0x0600, 0x0900,
   3030	0x0d00, 0x1100, 0x1900, 0x2400,
   3031	0x3200, 0x4600, 0x6400, 0x6401,
   3032	0x6402, 0x6403, 0x6404, 0x6405,
   3033	0x6406, 0x6407
   3034};
   3035
   3036const u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[B43_NTAB_TX_IQLO_CAL_STARTCOEFS_REV3] = { };
   3037
   3038const u16 tbl_tx_iqlo_cal_startcoefs[B43_NTAB_TX_IQLO_CAL_STARTCOEFS] = { };
   3039
   3040const u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
   3041	0x8423, 0x8323, 0x8073, 0x8256,
   3042	0x8045, 0x8223, 0x9423, 0x9323,
   3043	0x9073, 0x9256, 0x9045, 0x9223
   3044};
   3045
   3046const u16 tbl_tx_iqlo_cal_cmds_recal[] = {
   3047	0x8101, 0x8253, 0x8053, 0x8234,
   3048	0x8034, 0x9101, 0x9253, 0x9053,
   3049	0x9234, 0x9034
   3050};
   3051
   3052const u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
   3053	0x8123, 0x8264, 0x8086, 0x8245,
   3054	0x8056, 0x9123, 0x9264, 0x9086,
   3055	0x9245, 0x9056
   3056};
   3057
   3058const u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
   3059	0x8434, 0x8334, 0x8084, 0x8267,
   3060	0x8056, 0x8234, 0x9434, 0x9334,
   3061	0x9084, 0x9267, 0x9056, 0x9234
   3062};
   3063
   3064const s16 tbl_tx_filter_coef_rev4[7][15] = {
   3065	{  -377,   137,  -407,   208, -1527,
   3066	    956,    93,   186,    93,   230,
   3067	    -44,   230,   201,  -191,   201 },
   3068	{   -77,    20,   -98,    49,   -93,
   3069	     60,    56,   111,    56,    26,
   3070	     -5,    26,    34,   -32,    34 },
   3071	{  -360,   164,  -376,   164, -1533,
   3072	    576,   308,  -314,   308,   121,
   3073	    -73,   121,    91,   124,    91 },
   3074	{  -295,   200,  -363,   142, -1391,
   3075	    826,   151,   301,   151,   151,
   3076	    301,   151,   602,  -752,   602 },
   3077	{   -92,    58,   -96,    49,  -104,
   3078	     44,    17,    35,    17,    12,
   3079	     25,    12,    13,    27,    13 },
   3080	{  -375,   136,  -399,   209, -1479,
   3081	    949,   130,   260,   130,   230,
   3082	    -44,   230,   201,  -191,   201 },
   3083	{ 0xed9,  0xc8, 0xe95,  0x8e, 0xa91,
   3084	  0x33a,  0x97, 0x12d,  0x97,  0x97,
   3085	  0x12d,  0x97, 0x25a, 0xd10, 0x25a }
   3086};
   3087
   3088/* addr0,  addr1,  bmask,  shift */
   3089const struct nphy_rf_control_override_rev2 tbl_rf_control_override_rev2[] = {
   3090	{ 0x78, 0x78, 0x0038,  3 }, /* for field == 0x0002 (fls == 2) */
   3091	{ 0x7A, 0x7D, 0x0001,  0 }, /* for field == 0x0004 (fls == 3) */
   3092	{ 0x7A, 0x7D, 0x0002,  1 }, /* for field == 0x0008 (fls == 4) */
   3093	{ 0x7A, 0x7D, 0x0004,  2 }, /* for field == 0x0010 (fls == 5) */
   3094	{ 0x7A, 0x7D, 0x0030,  4 }, /* for field == 0x0020 (fls == 6) */
   3095	{ 0x7A, 0x7D, 0x00C0,  6 }, /* for field == 0x0040 (fls == 7) */
   3096	{ 0x7A, 0x7D, 0x0100,  8 }, /* for field == 0x0080 (fls == 8) */
   3097	{ 0x7A, 0x7D, 0x0200,  9 }, /* for field == 0x0100 (fls == 9) */
   3098	{ 0x78, 0x78, 0x0004,  2 }, /* for field == 0x0200 (fls == 10) */
   3099	{ 0x7B, 0x7E, 0x01FF,  0 }, /* for field == 0x0400 (fls == 11) */
   3100	{ 0x7C, 0x7F, 0x01FF,  0 }, /* for field == 0x0800 (fls == 12) */
   3101	{ 0x78, 0x78, 0x0100,  8 }, /* for field == 0x1000 (fls == 13) */
   3102	{ 0x78, 0x78, 0x0200,  9 }, /* for field == 0x2000 (fls == 14) */
   3103	{ 0x78, 0x78, 0xF000, 12 }  /* for field == 0x4000 (fls == 15) */
   3104};
   3105
   3106/* val_mask, val_shift, en_addr0, val_addr0, en_addr1, val_addr1 */
   3107const struct nphy_rf_control_override_rev3 tbl_rf_control_override_rev3[] = {
   3108	{ 0x8000, 15, 0xE5, 0xF9, 0xE6, 0xFB }, /* field == 0x0001 (fls 1) */
   3109	{ 0x0001,  0, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0002 (fls 2) */
   3110	{ 0x0002,  1, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0004 (fls 3) */
   3111	{ 0x0004,  2, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0008 (fls 4) */
   3112	{ 0x0010,  4, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0010 (fls 5) */
   3113	{ 0x0020,  5, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0020 (fls 6) */
   3114	{ 0x0040,  6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0040 (fls 7) */
   3115	{ 0x0080,  7, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0080 (fls 8) */
   3116	{ 0x0100,  8, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0100 (fls 9) */
   3117	{ 0x0007,  0, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0200 (fls 10) */
   3118	{ 0x0070,  4, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0400 (fls 11) */
   3119	{ 0xE000, 13, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0800 (fls 12) */
   3120	{ 0xFFFF,  0, 0xE7, 0x7B, 0xEC, 0x7E }, /* field == 0x1000 (fls 13) */
   3121	{ 0xFFFF,  0, 0xE7, 0x7C, 0xEC, 0x7F }, /* field == 0x2000 (fls 14) */
   3122	{ 0x00C0,  6, 0xE7, 0xF9, 0xEC, 0xFB }  /* field == 0x4000 (fls 15) */
   3123};
   3124
   3125/* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
   3126static const struct nphy_rf_control_override_rev7
   3127			tbl_rf_control_override_rev7_over0[] = {
   3128	{ 0x0004, 0x07A, 0x07D, 0x0002, 1 },
   3129	{ 0x0008, 0x07A, 0x07D, 0x0004, 2 },
   3130	{ 0x0010, 0x07A, 0x07D, 0x0010, 4 },
   3131	{ 0x0020, 0x07A, 0x07D, 0x0020, 5 },
   3132	{ 0x0040, 0x07A, 0x07D, 0x0040, 6 },
   3133	{ 0x0080, 0x07A, 0x07D, 0x0080, 7 },
   3134	{ 0x0400, 0x0F8, 0x0FA, 0x0070, 4 },
   3135	{ 0x0800, 0x07B, 0x07E, 0xFFFF, 0 },
   3136	{ 0x1000, 0x07C, 0x07F, 0xFFFF, 0 },
   3137	{ 0x6000, 0x348, 0x349, 0x00FF, 0 },
   3138	{ 0x2000, 0x348, 0x349, 0x000F, 0 },
   3139};
   3140
   3141/* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
   3142static const struct nphy_rf_control_override_rev7
   3143			tbl_rf_control_override_rev7_over1[] = {
   3144	{ 0x0002, 0x340, 0x341, 0x0002, 1 },
   3145	{ 0x0008, 0x340, 0x341, 0x0008, 3 },
   3146	{ 0x0020, 0x340, 0x341, 0x0020, 5 },
   3147	{ 0x0010, 0x340, 0x341, 0x0010, 4 },
   3148	{ 0x0004, 0x340, 0x341, 0x0004, 2 },
   3149	{ 0x0080, 0x340, 0x341, 0x0700, 8 },
   3150	{ 0x0800, 0x340, 0x341, 0x4000, 14 },
   3151	{ 0x0400, 0x340, 0x341, 0x2000, 13 },
   3152	{ 0x0200, 0x340, 0x341, 0x0800, 12 },
   3153	{ 0x0100, 0x340, 0x341, 0x0100, 11 },
   3154	{ 0x0040, 0x340, 0x341, 0x0040, 6 },
   3155	{ 0x0001, 0x340, 0x341, 0x0001, 0 },
   3156};
   3157
   3158/* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
   3159static const struct nphy_rf_control_override_rev7
   3160			tbl_rf_control_override_rev7_over2[] = {
   3161	{ 0x0008, 0x344, 0x345, 0x0008, 3 },
   3162	{ 0x0002, 0x344, 0x345, 0x0002, 1 },
   3163	{ 0x0001, 0x344, 0x345, 0x0001, 0 },
   3164	{ 0x0004, 0x344, 0x345, 0x0004, 2 },
   3165	{ 0x0010, 0x344, 0x345, 0x0010, 4 },
   3166};
   3167
   3168static struct nphy_gain_ctl_workaround_entry nphy_gain_ctl_wa_phy6_radio11_ghz2 = {
   3169	{ 10, 14, 19, 27 },
   3170	{ -5, 6, 10, 15 },
   3171	{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
   3172	{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
   3173	0x427E,
   3174	{ 0x413F, 0x413F, 0x413F, 0x413F },
   3175	0x007E, 0x0066, 0x1074,
   3176	0x18, 0x18, 0x18,
   3177	0x01D0, 0x5,
   3178};
   3179static struct nphy_gain_ctl_workaround_entry nphy_gain_ctl_workaround[2][4] = {
   3180	{ /* 2GHz */
   3181		{ /* PHY rev 3 */
   3182			{ 7, 11, 16, 23 },
   3183			{ -5, 6, 10, 14 },
   3184			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
   3185			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
   3186			0x627E,
   3187			{ 0x613F, 0x613F, 0x613F, 0x613F },
   3188			0x107E, 0x0066, 0x0074,
   3189			0x18, 0x18, 0x18,
   3190			0x020D, 0x5,
   3191		},
   3192		{ /* PHY rev 4 */
   3193			{ 8, 12, 17, 25 },
   3194			{ -5, 6, 10, 14 },
   3195			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
   3196			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
   3197			0x527E,
   3198			{ 0x513F, 0x513F, 0x513F, 0x513F },
   3199			0x007E, 0x0066, 0x0074,
   3200			0x18, 0x18, 0x18,
   3201			0x01A1, 0x5,
   3202		},
   3203		{ /* PHY rev 5 */
   3204			{ 9, 13, 18, 26 },
   3205			{ -3, 7, 11, 16 },
   3206			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
   3207			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
   3208			0x427E, /* invalid for external LNA! */
   3209			{ 0x413F, 0x413F, 0x413F, 0x413F }, /* invalid for external LNA! */
   3210			0x1076, 0x0066, 0x0000, /* low is invalid (the last one) */
   3211			0x18, 0x18, 0x18,
   3212			0x01D0, 0x9,
   3213		},
   3214		{ /* PHY rev 6+ */
   3215			{ 8, 13, 18, 25 },
   3216			{ -5, 6, 10, 14 },
   3217			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
   3218			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
   3219			0x527E, /* invalid for external LNA! */
   3220			{ 0x513F, 0x513F, 0x513F, 0x513F }, /* invalid for external LNA! */
   3221			0x007E, 0x0066, 0x0000, /* low is invalid (the last one) */
   3222			0x18, 0x18, 0x18,
   3223			0x01D0, 0x5,
   3224		},
   3225	},
   3226	{ /* 5GHz */
   3227		{ /* PHY rev 3 */
   3228			{ 7, 11, 17, 23 },
   3229			{ -6, 2, 6, 10 },
   3230			{ 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 },
   3231			{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
   3232			0x52DE,
   3233			{ 0x516F, 0x516F, 0x516F, 0x516F },
   3234			0x00DE, 0x00CA, 0x00CC,
   3235			0x1E, 0x1E, 0x1E,
   3236			0x01A1, 25,
   3237		},
   3238		{ /* PHY rev 4 */
   3239			{ 8, 12, 18, 23 },
   3240			{ -5, 2, 6, 10 },
   3241			{ 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
   3242			{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
   3243			0x629E,
   3244			{ 0x614F, 0x614F, 0x614F, 0x614F },
   3245			0x029E, 0x1084, 0x0086,
   3246			0x24, 0x24, 0x24,
   3247			0x0107, 25,
   3248		},
   3249		{ /* PHY rev 5 */
   3250			{ 6, 10, 16, 21 },
   3251			{ -7, 0, 4, 8 },
   3252			{ 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
   3253			{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
   3254			0x729E,
   3255			{ 0x714F, 0x714F, 0x714F, 0x714F },
   3256			0x029E, 0x2084, 0x2086,
   3257			0x24, 0x24, 0x24,
   3258			0x00A9, 25,
   3259		},
   3260		{ /* PHY rev 6+ */
   3261			{ 6, 10, 16, 21 },
   3262			{ -7, 0, 4, 8 },
   3263			{ 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
   3264			{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
   3265			0x729E,
   3266			{ 0x714F, 0x714F, 0x714F, 0x714F },
   3267			0x029E, 0x2084, 0x2086,
   3268			0x24, 0x24, 0x24, /* low is invalid for radio rev 11! */
   3269			0x00F0, 25,
   3270		},
   3271	},
   3272};
   3273
   3274static inline void assert_ntab_array_sizes(void)
   3275{
   3276#undef check
   3277#define check(table, size)	\
   3278	BUILD_BUG_ON(ARRAY_SIZE(b43_ntab_##table) != B43_NTAB_##size##_SIZE)
   3279
   3280	check(adjustpower0, C0_ADJPLT);
   3281	check(adjustpower1, C1_ADJPLT);
   3282	check(bdi, BDI);
   3283	check(channelest, CHANEST);
   3284	check(estimatepowerlt0, C0_ESTPLT);
   3285	check(estimatepowerlt1, C1_ESTPLT);
   3286	check(framelookup, FRAMELT);
   3287	check(framestruct, FRAMESTRUCT);
   3288	check(gainctl0, C0_GAINCTL);
   3289	check(gainctl1, C1_GAINCTL);
   3290	check(intlevel, INTLEVEL);
   3291	check(iqlt0, C0_IQLT);
   3292	check(iqlt1, C1_IQLT);
   3293	check(loftlt0, C0_LOFEEDTH);
   3294	check(loftlt1, C1_LOFEEDTH);
   3295	check(mcs, MCS);
   3296	check(noisevar10, NOISEVAR10);
   3297	check(noisevar11, NOISEVAR11);
   3298	check(pilot, PILOT);
   3299	check(pilotlt, PILOTLT);
   3300	check(tdi20a0, TDI20A0);
   3301	check(tdi20a1, TDI20A1);
   3302	check(tdi40a0, TDI40A0);
   3303	check(tdi40a1, TDI40A1);
   3304	check(tdtrn, TDTRN);
   3305	check(tmap, TMAP);
   3306
   3307#undef check
   3308}
   3309
   3310u32 b43_ntab_read(struct b43_wldev *dev, u32 offset)
   3311{
   3312	u32 type, value;
   3313
   3314	type = offset & B43_NTAB_TYPEMASK;
   3315	offset &= ~B43_NTAB_TYPEMASK;
   3316	B43_WARN_ON(offset > 0xFFFF);
   3317
   3318	switch (type) {
   3319	case B43_NTAB_8BIT:
   3320		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
   3321		value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF;
   3322		break;
   3323	case B43_NTAB_16BIT:
   3324		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
   3325		value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
   3326		break;
   3327	case B43_NTAB_32BIT:
   3328		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
   3329		value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
   3330		value |= b43_phy_read(dev, B43_NPHY_TABLE_DATAHI) << 16;
   3331		break;
   3332	default:
   3333		B43_WARN_ON(1);
   3334		value = 0;
   3335	}
   3336
   3337	return value;
   3338}
   3339
   3340void b43_ntab_read_bulk(struct b43_wldev *dev, u32 offset,
   3341			 unsigned int nr_elements, void *_data)
   3342{
   3343	u32 type;
   3344	u8 *data = _data;
   3345	unsigned int i;
   3346
   3347	type = offset & B43_NTAB_TYPEMASK;
   3348	offset &= ~B43_NTAB_TYPEMASK;
   3349	B43_WARN_ON(offset > 0xFFFF);
   3350
   3351	b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
   3352
   3353	for (i = 0; i < nr_elements; i++) {
   3354		/* Auto increment broken + caching issue on BCM43224? */
   3355		if (dev->dev->chip_id == 43224 && dev->dev->chip_rev == 1) {
   3356			b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
   3357			b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset + i);
   3358		}
   3359
   3360		switch (type) {
   3361		case B43_NTAB_8BIT:
   3362			*data = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF;
   3363			data++;
   3364			break;
   3365		case B43_NTAB_16BIT:
   3366			*((u16 *)data) = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
   3367			data += 2;
   3368			break;
   3369		case B43_NTAB_32BIT:
   3370			*((u32 *)data) =
   3371				b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
   3372			*((u32 *)data) |=
   3373				b43_phy_read(dev, B43_NPHY_TABLE_DATAHI) << 16;
   3374			data += 4;
   3375			break;
   3376		default:
   3377			B43_WARN_ON(1);
   3378		}
   3379	}
   3380}
   3381
   3382void b43_ntab_write(struct b43_wldev *dev, u32 offset, u32 value)
   3383{
   3384	u32 type;
   3385
   3386	type = offset & B43_NTAB_TYPEMASK;
   3387	offset &= 0xFFFF;
   3388
   3389	switch (type) {
   3390	case B43_NTAB_8BIT:
   3391		B43_WARN_ON(value & ~0xFF);
   3392		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
   3393		b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
   3394		break;
   3395	case B43_NTAB_16BIT:
   3396		B43_WARN_ON(value & ~0xFFFF);
   3397		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
   3398		b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
   3399		break;
   3400	case B43_NTAB_32BIT:
   3401		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
   3402		b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16);
   3403		b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value & 0xFFFF);
   3404		break;
   3405	default:
   3406		B43_WARN_ON(1);
   3407	}
   3408
   3409	return;
   3410
   3411	/* Some compiletime assertions... */
   3412	assert_ntab_array_sizes();
   3413}
   3414
   3415void b43_ntab_write_bulk(struct b43_wldev *dev, u32 offset,
   3416			  unsigned int nr_elements, const void *_data)
   3417{
   3418	u32 type, value;
   3419	const u8 *data = _data;
   3420	unsigned int i;
   3421
   3422	type = offset & B43_NTAB_TYPEMASK;
   3423	offset &= ~B43_NTAB_TYPEMASK;
   3424	B43_WARN_ON(offset > 0xFFFF);
   3425
   3426	b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
   3427
   3428	for (i = 0; i < nr_elements; i++) {
   3429		/* Auto increment broken + caching issue on BCM43224? */
   3430		if ((offset >> 10) == 9 && dev->dev->chip_id == 43224 &&
   3431		    dev->dev->chip_rev == 1) {
   3432			b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
   3433			b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset + i);
   3434		}
   3435
   3436		switch (type) {
   3437		case B43_NTAB_8BIT:
   3438			value = *data;
   3439			data++;
   3440			B43_WARN_ON(value & ~0xFF);
   3441			b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
   3442			break;
   3443		case B43_NTAB_16BIT:
   3444			value = *((u16 *)data);
   3445			data += 2;
   3446			B43_WARN_ON(value & ~0xFFFF);
   3447			b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
   3448			break;
   3449		case B43_NTAB_32BIT:
   3450			value = *((u32 *)data);
   3451			data += 4;
   3452			b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16);
   3453			b43_phy_write(dev, B43_NPHY_TABLE_DATALO,
   3454					value & 0xFFFF);
   3455			break;
   3456		default:
   3457			B43_WARN_ON(1);
   3458		}
   3459	}
   3460}
   3461
   3462#define ntab_upload(dev, offset, data) do { \
   3463		b43_ntab_write_bulk(dev, offset, ARRAY_SIZE(data), data); \
   3464	} while (0)
   3465
   3466static void b43_nphy_tables_init_shared_lut(struct b43_wldev *dev)
   3467{
   3468	ntab_upload(dev, B43_NTAB_C0_ESTPLT_R3, b43_ntab_estimatepowerlt0_r3);
   3469	ntab_upload(dev, B43_NTAB_C1_ESTPLT_R3, b43_ntab_estimatepowerlt1_r3);
   3470	ntab_upload(dev, B43_NTAB_C0_ADJPLT_R3, b43_ntab_adjustpower0_r3);
   3471	ntab_upload(dev, B43_NTAB_C1_ADJPLT_R3, b43_ntab_adjustpower1_r3);
   3472	ntab_upload(dev, B43_NTAB_C0_GAINCTL_R3, b43_ntab_gainctl0_r3);
   3473	ntab_upload(dev, B43_NTAB_C1_GAINCTL_R3, b43_ntab_gainctl1_r3);
   3474	ntab_upload(dev, B43_NTAB_C0_IQLT_R3, b43_ntab_iqlt0_r3);
   3475	ntab_upload(dev, B43_NTAB_C1_IQLT_R3, b43_ntab_iqlt1_r3);
   3476	ntab_upload(dev, B43_NTAB_C0_LOFEEDTH_R3, b43_ntab_loftlt0_r3);
   3477	ntab_upload(dev, B43_NTAB_C1_LOFEEDTH_R3, b43_ntab_loftlt1_r3);
   3478}
   3479
   3480static void b43_nphy_tables_init_rev7_volatile(struct b43_wldev *dev)
   3481{
   3482	struct ssb_sprom *sprom = dev->dev->bus_sprom;
   3483	u8 antswlut;
   3484	int core, offset, i;
   3485
   3486	const int antswlut0_offsets[] = { 0, 4, 8, }; /* Offsets for values */
   3487	const u8 antswlut0_values[][3] = {
   3488		{ 0x2, 0x12, 0x8 }, /* Core 0 */
   3489		{ 0x2, 0x18, 0x2 }, /* Core 1 */
   3490	};
   3491
   3492	if (b43_current_band(dev->wl) == NL80211_BAND_5GHZ)
   3493		antswlut = sprom->fem.ghz5.antswlut;
   3494	else
   3495		antswlut = sprom->fem.ghz2.antswlut;
   3496
   3497	switch (antswlut) {
   3498	case 0:
   3499		for (core = 0; core < 2; core++) {
   3500			for (i = 0; i < ARRAY_SIZE(antswlut0_values[0]); i++) {
   3501				offset = core ? 0x20 : 0x00;
   3502				offset += antswlut0_offsets[i];
   3503				b43_ntab_write(dev, B43_NTAB8(9, offset),
   3504					       antswlut0_values[core][i]);
   3505			}
   3506		}
   3507		break;
   3508	default:
   3509		b43err(dev->wl, "Unsupported antswlut: %d\n", antswlut);
   3510		break;
   3511	}
   3512}
   3513
   3514static void b43_nphy_tables_init_rev16(struct b43_wldev *dev)
   3515{
   3516	/* Static tables */
   3517	if (dev->phy.do_full_init) {
   3518		ntab_upload(dev, B43_NTAB_NOISEVAR_R7, b43_ntab_noisevar_r7);
   3519		b43_nphy_tables_init_shared_lut(dev);
   3520	}
   3521
   3522	/* Volatile tables */
   3523	b43_nphy_tables_init_rev7_volatile(dev);
   3524}
   3525
   3526static void b43_nphy_tables_init_rev7(struct b43_wldev *dev)
   3527{
   3528	/* Static tables */
   3529	if (dev->phy.do_full_init) {
   3530		ntab_upload(dev, B43_NTAB_FRAMESTRUCT_R3, b43_ntab_framestruct_r3);
   3531		ntab_upload(dev, B43_NTAB_PILOT_R3, b43_ntab_pilot_r3);
   3532		ntab_upload(dev, B43_NTAB_TMAP_R7, b43_ntab_tmap_r7);
   3533		ntab_upload(dev, B43_NTAB_INTLEVEL_R3, b43_ntab_intlevel_r3);
   3534		ntab_upload(dev, B43_NTAB_TDTRN_R3, b43_ntab_tdtrn_r3);
   3535		ntab_upload(dev, B43_NTAB_NOISEVAR_R7, b43_ntab_noisevar_r7);
   3536		ntab_upload(dev, B43_NTAB_MCS_R3, b43_ntab_mcs_r3);
   3537		ntab_upload(dev, B43_NTAB_TDI20A0_R3, b43_ntab_tdi20a0_r3);
   3538		ntab_upload(dev, B43_NTAB_TDI20A1_R3, b43_ntab_tdi20a1_r3);
   3539		ntab_upload(dev, B43_NTAB_TDI40A0_R3, b43_ntab_tdi40a0_r3);
   3540		ntab_upload(dev, B43_NTAB_TDI40A1_R3, b43_ntab_tdi40a1_r3);
   3541		ntab_upload(dev, B43_NTAB_PILOTLT_R3, b43_ntab_pilotlt_r3);
   3542		ntab_upload(dev, B43_NTAB_CHANEST_R3, b43_ntab_channelest_r3);
   3543		ntab_upload(dev, B43_NTAB_FRAMELT_R3, b43_ntab_framelookup_r3);
   3544		b43_nphy_tables_init_shared_lut(dev);
   3545	}
   3546
   3547	/* Volatile tables */
   3548	b43_nphy_tables_init_rev7_volatile(dev);
   3549}
   3550
   3551static void b43_nphy_tables_init_rev3(struct b43_wldev *dev)
   3552{
   3553	struct ssb_sprom *sprom = dev->dev->bus_sprom;
   3554	u8 antswlut;
   3555
   3556	if (b43_current_band(dev->wl) == NL80211_BAND_5GHZ)
   3557		antswlut = sprom->fem.ghz5.antswlut;
   3558	else
   3559		antswlut = sprom->fem.ghz2.antswlut;
   3560
   3561	/* Static tables */
   3562	if (dev->phy.do_full_init) {
   3563		ntab_upload(dev, B43_NTAB_FRAMESTRUCT_R3, b43_ntab_framestruct_r3);
   3564		ntab_upload(dev, B43_NTAB_PILOT_R3, b43_ntab_pilot_r3);
   3565		ntab_upload(dev, B43_NTAB_TMAP_R3, b43_ntab_tmap_r3);
   3566		ntab_upload(dev, B43_NTAB_INTLEVEL_R3, b43_ntab_intlevel_r3);
   3567		ntab_upload(dev, B43_NTAB_TDTRN_R3, b43_ntab_tdtrn_r3);
   3568		ntab_upload(dev, B43_NTAB_NOISEVAR_R3, b43_ntab_noisevar_r3);
   3569		ntab_upload(dev, B43_NTAB_MCS_R3, b43_ntab_mcs_r3);
   3570		ntab_upload(dev, B43_NTAB_TDI20A0_R3, b43_ntab_tdi20a0_r3);
   3571		ntab_upload(dev, B43_NTAB_TDI20A1_R3, b43_ntab_tdi20a1_r3);
   3572		ntab_upload(dev, B43_NTAB_TDI40A0_R3, b43_ntab_tdi40a0_r3);
   3573		ntab_upload(dev, B43_NTAB_TDI40A1_R3, b43_ntab_tdi40a1_r3);
   3574		ntab_upload(dev, B43_NTAB_PILOTLT_R3, b43_ntab_pilotlt_r3);
   3575		ntab_upload(dev, B43_NTAB_CHANEST_R3, b43_ntab_channelest_r3);
   3576		ntab_upload(dev, B43_NTAB_FRAMELT_R3, b43_ntab_framelookup_r3);
   3577		b43_nphy_tables_init_shared_lut(dev);
   3578	}
   3579
   3580	/* Volatile tables */
   3581	if (antswlut < ARRAY_SIZE(b43_ntab_antswctl_r3))
   3582		ntab_upload(dev, B43_NTAB_ANT_SW_CTL_R3,
   3583			    b43_ntab_antswctl_r3[antswlut]);
   3584	else
   3585		B43_WARN_ON(1);
   3586}
   3587
   3588static void b43_nphy_tables_init_rev0(struct b43_wldev *dev)
   3589{
   3590	/* Static tables */
   3591	if (dev->phy.do_full_init) {
   3592		ntab_upload(dev, B43_NTAB_FRAMESTRUCT, b43_ntab_framestruct);
   3593		ntab_upload(dev, B43_NTAB_FRAMELT, b43_ntab_framelookup);
   3594		ntab_upload(dev, B43_NTAB_TMAP, b43_ntab_tmap);
   3595		ntab_upload(dev, B43_NTAB_TDTRN, b43_ntab_tdtrn);
   3596		ntab_upload(dev, B43_NTAB_INTLEVEL, b43_ntab_intlevel);
   3597		ntab_upload(dev, B43_NTAB_PILOT, b43_ntab_pilot);
   3598		ntab_upload(dev, B43_NTAB_TDI20A0, b43_ntab_tdi20a0);
   3599		ntab_upload(dev, B43_NTAB_TDI20A1, b43_ntab_tdi20a1);
   3600		ntab_upload(dev, B43_NTAB_TDI40A0, b43_ntab_tdi40a0);
   3601		ntab_upload(dev, B43_NTAB_TDI40A1, b43_ntab_tdi40a1);
   3602		ntab_upload(dev, B43_NTAB_CHANEST, b43_ntab_channelest);
   3603		ntab_upload(dev, B43_NTAB_MCS, b43_ntab_mcs);
   3604		ntab_upload(dev, B43_NTAB_NOISEVAR10, b43_ntab_noisevar10);
   3605		ntab_upload(dev, B43_NTAB_NOISEVAR11, b43_ntab_noisevar11);
   3606	}
   3607
   3608	/* Volatile tables */
   3609	ntab_upload(dev, B43_NTAB_BDI, b43_ntab_bdi);
   3610	ntab_upload(dev, B43_NTAB_PILOTLT, b43_ntab_pilotlt);
   3611	ntab_upload(dev, B43_NTAB_C0_GAINCTL, b43_ntab_gainctl0);
   3612	ntab_upload(dev, B43_NTAB_C1_GAINCTL, b43_ntab_gainctl1);
   3613	ntab_upload(dev, B43_NTAB_C0_ESTPLT, b43_ntab_estimatepowerlt0);
   3614	ntab_upload(dev, B43_NTAB_C1_ESTPLT, b43_ntab_estimatepowerlt1);
   3615	ntab_upload(dev, B43_NTAB_C0_ADJPLT, b43_ntab_adjustpower0);
   3616	ntab_upload(dev, B43_NTAB_C1_ADJPLT, b43_ntab_adjustpower1);
   3617	ntab_upload(dev, B43_NTAB_C0_IQLT, b43_ntab_iqlt0);
   3618	ntab_upload(dev, B43_NTAB_C1_IQLT, b43_ntab_iqlt1);
   3619	ntab_upload(dev, B43_NTAB_C0_LOFEEDTH, b43_ntab_loftlt0);
   3620	ntab_upload(dev, B43_NTAB_C1_LOFEEDTH, b43_ntab_loftlt1);
   3621}
   3622
   3623/* https://bcm-v4.sipsolutions.net/802.11/PHY/N/InitTables */
   3624void b43_nphy_tables_init(struct b43_wldev *dev)
   3625{
   3626	if (dev->phy.rev >= 16)
   3627		b43_nphy_tables_init_rev16(dev);
   3628	else if (dev->phy.rev >= 7)
   3629		b43_nphy_tables_init_rev7(dev);
   3630	else if (dev->phy.rev >= 3)
   3631		b43_nphy_tables_init_rev3(dev);
   3632	else
   3633		b43_nphy_tables_init_rev0(dev);
   3634}
   3635
   3636/* https://bcm-v4.sipsolutions.net/802.11/PHY/N/GetIpaGainTbl */
   3637static const u32 *b43_nphy_get_ipa_gain_table(struct b43_wldev *dev)
   3638{
   3639	struct b43_phy *phy = &dev->phy;
   3640
   3641	if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ) {
   3642		switch (phy->rev) {
   3643		case 17:
   3644			if (phy->radio_rev == 14)
   3645				return b43_ntab_tx_gain_ipa_2057_rev14_2g;
   3646			break;
   3647		case 16:
   3648			if (phy->radio_rev == 9)
   3649				return b43_ntab_tx_gain_ipa_2057_rev9_2g;
   3650			break;
   3651		case 8:
   3652			if (phy->radio_rev == 5)
   3653				return b43_ntab_tx_gain_ipa_2057_rev5_2g;
   3654			break;
   3655		case 6:
   3656			if (dev->dev->chip_id == BCMA_CHIP_ID_BCM47162)
   3657				return b43_ntab_tx_gain_ipa_rev5_2g;
   3658			return b43_ntab_tx_gain_ipa_rev6_2g;
   3659		case 5:
   3660			return b43_ntab_tx_gain_ipa_rev5_2g;
   3661		case 4:
   3662		case 3:
   3663			return b43_ntab_tx_gain_ipa_rev3_2g;
   3664		}
   3665
   3666		b43err(dev->wl,
   3667		       "No 2GHz IPA gain table available for this device\n");
   3668		return NULL;
   3669	} else {
   3670		switch (phy->rev) {
   3671		case 16:
   3672			if (phy->radio_rev == 9)
   3673				return b43_ntab_tx_gain_ipa_2057_rev9_5g;
   3674			break;
   3675		case 3 ... 6:
   3676			return b43_ntab_tx_gain_ipa_rev3_5g;
   3677		}
   3678
   3679		b43err(dev->wl,
   3680		       "No 5GHz IPA gain table available for this device\n");
   3681		return NULL;
   3682	}
   3683}
   3684
   3685const u32 *b43_nphy_get_tx_gain_table(struct b43_wldev *dev)
   3686{
   3687	struct b43_phy *phy = &dev->phy;
   3688	enum nl80211_band band = b43_current_band(dev->wl);
   3689	struct ssb_sprom *sprom = dev->dev->bus_sprom;
   3690
   3691	if (dev->phy.rev < 3)
   3692		return b43_ntab_tx_gain_rev0_1_2;
   3693
   3694	/* rev 3+ */
   3695	if ((dev->phy.n->ipa2g_on && band == NL80211_BAND_2GHZ) ||
   3696	    (dev->phy.n->ipa5g_on && band == NL80211_BAND_5GHZ)) {
   3697		return b43_nphy_get_ipa_gain_table(dev);
   3698	} else if (b43_current_band(dev->wl) == NL80211_BAND_5GHZ) {
   3699		switch (phy->rev) {
   3700		case 6:
   3701		case 5:
   3702			return b43_ntab_tx_gain_epa_rev5_5g;
   3703		case 4:
   3704			return sprom->fem.ghz5.extpa_gain == 3 ?
   3705				b43_ntab_tx_gain_epa_rev4_5g :
   3706				b43_ntab_tx_gain_epa_rev4_hi_pwr_5g;
   3707		case 3:
   3708			return b43_ntab_tx_gain_epa_rev3_5g;
   3709		default:
   3710			b43err(dev->wl,
   3711			       "No 5GHz EPA gain table available for this device\n");
   3712			return NULL;
   3713		}
   3714	} else {
   3715		switch (phy->rev) {
   3716		case 6:
   3717		case 5:
   3718			if (sprom->fem.ghz2.extpa_gain == 3)
   3719				return b43_ntab_tx_gain_epa_rev3_hi_pwr_2g;
   3720			fallthrough;
   3721		case 4:
   3722		case 3:
   3723			return b43_ntab_tx_gain_epa_rev3_2g;
   3724		default:
   3725			b43err(dev->wl,
   3726			       "No 2GHz EPA gain table available for this device\n");
   3727			return NULL;
   3728		}
   3729	}
   3730}
   3731
   3732const s16 *b43_ntab_get_rf_pwr_offset_table(struct b43_wldev *dev)
   3733{
   3734	struct b43_phy *phy = &dev->phy;
   3735
   3736	if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ) {
   3737		switch (phy->rev) {
   3738		case 17:
   3739			if (phy->radio_rev == 14)
   3740				return b43_ntab_rf_pwr_offset_2057_rev14_2g;
   3741			break;
   3742		case 16:
   3743			if (phy->radio_rev == 9)
   3744				return b43_ntab_rf_pwr_offset_2057_rev9_2g;
   3745			break;
   3746		}
   3747
   3748		b43err(dev->wl,
   3749		       "No 2GHz RF power table available for this device\n");
   3750		return NULL;
   3751	} else {
   3752		switch (phy->rev) {
   3753		case 16:
   3754			if (phy->radio_rev == 9)
   3755				return b43_ntab_rf_pwr_offset_2057_rev9_5g;
   3756			break;
   3757		}
   3758
   3759		b43err(dev->wl,
   3760		       "No 5GHz RF power table available for this device\n");
   3761		return NULL;
   3762	}
   3763}
   3764
   3765struct nphy_gain_ctl_workaround_entry *b43_nphy_get_gain_ctl_workaround_ent(
   3766	struct b43_wldev *dev, bool ghz5, bool ext_lna)
   3767{
   3768	struct b43_phy *phy = &dev->phy;
   3769	struct nphy_gain_ctl_workaround_entry *e;
   3770	u8 phy_idx;
   3771
   3772	if (!ghz5 && dev->phy.rev >= 6 && dev->phy.radio_rev == 11)
   3773		return &nphy_gain_ctl_wa_phy6_radio11_ghz2;
   3774
   3775	B43_WARN_ON(dev->phy.rev < 3);
   3776	if (dev->phy.rev >= 6)
   3777		phy_idx = 3;
   3778	else if (dev->phy.rev == 5)
   3779		phy_idx = 2;
   3780	else if (dev->phy.rev == 4)
   3781		phy_idx = 1;
   3782	else
   3783		phy_idx = 0;
   3784	e = &nphy_gain_ctl_workaround[ghz5][phy_idx];
   3785
   3786	/* Some workarounds to the workarounds... */
   3787	if (!ghz5) {
   3788		u8 tr_iso = dev->dev->bus_sprom->fem.ghz2.tr_iso;
   3789
   3790		if (tr_iso > 7)
   3791			tr_iso = 3;
   3792
   3793		if (phy->rev >= 6) {
   3794			static const int gain_data[] = { 0x106a, 0x106c, 0x1074,
   3795							 0x107c, 0x007e, 0x107e,
   3796							 0x207e, 0x307e, };
   3797
   3798			e->cliplo_gain = gain_data[tr_iso];
   3799		} else if (phy->rev == 5) {
   3800			static const int gain_data[] = { 0x0062, 0x0064, 0x006a,
   3801							 0x106a, 0x106c, 0x1074,
   3802							 0x107c, 0x207c, };
   3803
   3804			e->cliplo_gain = gain_data[tr_iso];
   3805		}
   3806
   3807		if (phy->rev >= 5 && ext_lna) {
   3808			e->rfseq_init[0] &= ~0x4000;
   3809			e->rfseq_init[1] &= ~0x4000;
   3810			e->rfseq_init[2] &= ~0x4000;
   3811			e->rfseq_init[3] &= ~0x4000;
   3812			e->init_gain &= ~0x4000;
   3813		}
   3814	} else {
   3815		if (phy->rev >= 6) {
   3816			if (phy->radio_rev == 11 && !b43_is_40mhz(dev))
   3817				e->crsminu = 0x2d;
   3818		} else if (phy->rev == 4 && ext_lna) {
   3819			e->rfseq_init[0] &= ~0x4000;
   3820			e->rfseq_init[1] &= ~0x4000;
   3821			e->rfseq_init[2] &= ~0x4000;
   3822			e->rfseq_init[3] &= ~0x4000;
   3823			e->init_gain &= ~0x4000;
   3824			e->rfseq_init[0] |= 0x1000;
   3825			e->rfseq_init[1] |= 0x1000;
   3826			e->rfseq_init[2] |= 0x1000;
   3827			e->rfseq_init[3] |= 0x1000;
   3828			e->init_gain |= 0x1000;
   3829		}
   3830	}
   3831
   3832	return e;
   3833}
   3834
   3835const struct nphy_rf_control_override_rev7 *b43_nphy_get_rf_ctl_over_rev7(
   3836	struct b43_wldev *dev, u16 field, u8 override)
   3837{
   3838	const struct nphy_rf_control_override_rev7 *e;
   3839	u8 size, i;
   3840
   3841	switch (override) {
   3842	case 0:
   3843		e = tbl_rf_control_override_rev7_over0;
   3844		size = ARRAY_SIZE(tbl_rf_control_override_rev7_over0);
   3845		break;
   3846	case 1:
   3847		e = tbl_rf_control_override_rev7_over1;
   3848		size = ARRAY_SIZE(tbl_rf_control_override_rev7_over1);
   3849		break;
   3850	case 2:
   3851		e = tbl_rf_control_override_rev7_over2;
   3852		size = ARRAY_SIZE(tbl_rf_control_override_rev7_over2);
   3853		break;
   3854	default:
   3855		b43err(dev->wl, "Invalid override value %d\n", override);
   3856		return NULL;
   3857	}
   3858
   3859	for (i = 0; i < size; i++) {
   3860		if (e[i].field == field)
   3861			return &e[i];
   3862	}
   3863
   3864	return NULL;
   3865}