Linux Audio

Check our new training course

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