Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.8.
   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_noisevar0_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 u32 b43_ntab_noisevar1_r3[] = {
1698	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1699	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1700	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1701	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1702	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1703	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1704	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1705	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1706	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1707	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1708	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1709	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1710	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1711	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1712	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1713	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1714	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1715	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1716	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1717	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1718	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1719	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1720	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1721	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1722	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1723	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1724	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1725	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1726	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1727	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1728	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1729	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1730	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1731	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1732	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1733	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1734	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1735	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1736	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1737	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1738	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1739	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1740	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1741	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1742	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1743	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1744	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1745	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1746	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1747	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1748	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1749	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1750	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1751	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1752	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1753	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1754	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1755	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1756	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1757	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1758	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1759	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1760	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1761	0x02110211, 0x0000014d, 0x02110211, 0x0000014d,
1762};
1763
1764static const u16 b43_ntab_mcs_r3[] = {
1765	0x0000, 0x0008, 0x000a, 0x0010, 0x0012, 0x0019,
1766	0x001a, 0x001c, 0x0080, 0x0088, 0x008a, 0x0090,
1767	0x0092, 0x0099, 0x009a, 0x009c, 0x0100, 0x0108,
1768	0x010a, 0x0110, 0x0112, 0x0119, 0x011a, 0x011c,
1769	0x0180, 0x0188, 0x018a, 0x0190, 0x0192, 0x0199,
1770	0x019a, 0x019c, 0x0000, 0x0098, 0x00a0, 0x00a8,
1771	0x009a, 0x00a2, 0x00aa, 0x0120, 0x0128, 0x0128,
1772	0x0130, 0x0138, 0x0138, 0x0140, 0x0122, 0x012a,
1773	0x012a, 0x0132, 0x013a, 0x013a, 0x0142, 0x01a8,
1774	0x01b0, 0x01b8, 0x01b0, 0x01b8, 0x01c0, 0x01c8,
1775	0x01c0, 0x01c8, 0x01d0, 0x01d0, 0x01d8, 0x01aa,
1776	0x01b2, 0x01ba, 0x01b2, 0x01ba, 0x01c2, 0x01ca,
1777	0x01c2, 0x01ca, 0x01d2, 0x01d2, 0x01da, 0x0001,
1778	0x0002, 0x0004, 0x0009, 0x000c, 0x0011, 0x0014,
1779	0x0018, 0x0020, 0x0021, 0x0022, 0x0024, 0x0081,
1780	0x0082, 0x0084, 0x0089, 0x008c, 0x0091, 0x0094,
1781	0x0098, 0x00a0, 0x00a1, 0x00a2, 0x00a4, 0x0007,
1782	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1783	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1784	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1785	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
1786	0x0007, 0x0007,
1787};
1788
1789static const u32 b43_ntab_tdi20a0_r3[] = {
1790	0x00091226, 0x000a1429, 0x000b56ad, 0x000c58b0,
1791	0x000d5ab3, 0x000e9cb6, 0x000f9eba, 0x0000c13d,
1792	0x00020301, 0x00030504, 0x00040708, 0x0005090b,
1793	0x00064b8e, 0x00095291, 0x000a5494, 0x000b9718,
1794	0x000c9927, 0x000d9b2a, 0x000edd2e, 0x000fdf31,
1795	0x000101b4, 0x000243b7, 0x000345bb, 0x000447be,
1796	0x00058982, 0x00068c05, 0x00099309, 0x000a950c,
1797	0x000bd78f, 0x000cd992, 0x000ddb96, 0x000f1d99,
1798	0x00005fa8, 0x0001422c, 0x0002842f, 0x00038632,
1799	0x00048835, 0x0005ca38, 0x0006ccbc, 0x0009d3bf,
1800	0x000b1603, 0x000c1806, 0x000d1a0a, 0x000e1c0d,
1801	0x000f5e10, 0x00008093, 0x00018297, 0x0002c49a,
1802	0x0003c680, 0x0004c880, 0x00060b00, 0x00070d00,
1803	0x00000000, 0x00000000, 0x00000000,
1804};
1805
1806static const u32 b43_ntab_tdi20a1_r3[] = {
1807	0x00014b26, 0x00028d29, 0x000393ad, 0x00049630,
1808	0x0005d833, 0x0006da36, 0x00099c3a, 0x000a9e3d,
1809	0x000bc081, 0x000cc284, 0x000dc488, 0x000f068b,
1810	0x0000488e, 0x00018b91, 0x0002d214, 0x0003d418,
1811	0x0004d6a7, 0x000618aa, 0x00071aae, 0x0009dcb1,
1812	0x000b1eb4, 0x000c0137, 0x000d033b, 0x000e053e,
1813	0x000f4702, 0x00008905, 0x00020c09, 0x0003128c,
1814	0x0004148f, 0x00051712, 0x00065916, 0x00091b19,
1815	0x000a1d28, 0x000b5f2c, 0x000c41af, 0x000d43b2,
1816	0x000e85b5, 0x000f87b8, 0x0000c9bc, 0x00024cbf,
1817	0x00035303, 0x00045506, 0x0005978a, 0x0006998d,
1818	0x00095b90, 0x000a5d93, 0x000b9f97, 0x000c821a,
1819	0x000d8400, 0x000ec600, 0x000fc800, 0x00010a00,
1820	0x00000000, 0x00000000, 0x00000000,
1821};
1822
1823static const u32 b43_ntab_tdi40a0_r3[] = {
1824	0x0011a346, 0x00136ccf, 0x0014f5d9, 0x001641e2,
1825	0x0017cb6b, 0x00195475, 0x001b2383, 0x001cad0c,
1826	0x001e7616, 0x0000821f, 0x00020ba8, 0x0003d4b2,
1827	0x00056447, 0x00072dd0, 0x0008b6da, 0x000a02e3,
1828	0x000b8c6c, 0x000d15f6, 0x0011e484, 0x0013ae0d,
1829	0x00153717, 0x00168320, 0x00180ca9, 0x00199633,
1830	0x001b6548, 0x001ceed1, 0x001eb7db, 0x0000c3e4,
1831	0x00024d6d, 0x000416f7, 0x0005a585, 0x00076f0f,
1832	0x0008f818, 0x000a4421, 0x000bcdab, 0x000d9734,
1833	0x00122649, 0x0013efd2, 0x001578dc, 0x0016c4e5,
1834	0x00184e6e, 0x001a17f8, 0x001ba686, 0x001d3010,
1835	0x001ef999, 0x00010522, 0x00028eac, 0x00045835,
1836	0x0005e74a, 0x0007b0d3, 0x00093a5d, 0x000a85e6,
1837	0x000c0f6f, 0x000dd8f9, 0x00126787, 0x00143111,
1838	0x0015ba9a, 0x00170623, 0x00188fad, 0x001a5936,
1839	0x001be84b, 0x001db1d4, 0x001f3b5e, 0x000146e7,
1840	0x00031070, 0x000499fa, 0x00062888, 0x0007f212,
1841	0x00097b9b, 0x000ac7a4, 0x000c50ae, 0x000e1a37,
1842	0x0012a94c, 0x001472d5, 0x0015fc5f, 0x00174868,
1843	0x0018d171, 0x001a9afb, 0x001c2989, 0x001df313,
1844	0x001f7c9c, 0x000188a5, 0x000351af, 0x0004db38,
1845	0x0006aa4d, 0x000833d7, 0x0009bd60, 0x000b0969,
1846	0x000c9273, 0x000e5bfc, 0x00132a8a, 0x0014b414,
1847	0x00163d9d, 0x001789a6, 0x001912b0, 0x001adc39,
1848	0x001c6bce, 0x001e34d8, 0x001fbe61, 0x0001ca6a,
1849	0x00039374, 0x00051cfd, 0x0006ec0b, 0x00087515,
1850	0x0009fe9e, 0x000b4aa7, 0x000cd3b1, 0x000e9d3a,
1851	0x00000000, 0x00000000,
1852};
1853
1854static const u32 b43_ntab_tdi40a1_r3[] = {
1855	0x001edb36, 0x000129ca, 0x0002b353, 0x00047cdd,
1856	0x0005c8e6, 0x000791ef, 0x00091bf9, 0x000aaa07,
1857	0x000c3391, 0x000dfd1a, 0x00120923, 0x0013d22d,
1858	0x00155c37, 0x0016eacb, 0x00187454, 0x001a3dde,
1859	0x001b89e7, 0x001d12f0, 0x001f1cfa, 0x00016b88,
1860	0x00033492, 0x0004be1b, 0x00060a24, 0x0007d32e,
1861	0x00095d38, 0x000aec4c, 0x000c7555, 0x000e3edf,
1862	0x00124ae8, 0x001413f1, 0x0015a37b, 0x00172c89,
1863	0x0018b593, 0x001a419c, 0x001bcb25, 0x001d942f,
1864	0x001f63b9, 0x0001ad4d, 0x00037657, 0x0004c260,
1865	0x00068be9, 0x000814f3, 0x0009a47c, 0x000b2d8a,
1866	0x000cb694, 0x000e429d, 0x00128c26, 0x001455b0,
1867	0x0015e4ba, 0x00176e4e, 0x0018f758, 0x001a8361,
1868	0x001c0cea, 0x001dd674, 0x001fa57d, 0x0001ee8b,
1869	0x0003b795, 0x0005039e, 0x0006cd27, 0x000856b1,
1870	0x0009e5c6, 0x000b6f4f, 0x000cf859, 0x000e8462,
1871	0x00130deb, 0x00149775, 0x00162603, 0x0017af8c,
1872	0x00193896, 0x001ac49f, 0x001c4e28, 0x001e17b2,
1873	0x0000a6c7, 0x00023050, 0x0003f9da, 0x00054563,
1874	0x00070eec, 0x00089876, 0x000a2704, 0x000bb08d,
1875	0x000d3a17, 0x001185a0, 0x00134f29, 0x0014d8b3,
1876	0x001667c8, 0x0017f151, 0x00197adb, 0x001b0664,
1877	0x001c8fed, 0x001e5977, 0x0000e805, 0x0002718f,
1878	0x00043b18, 0x000586a1, 0x0007502b, 0x0008d9b4,
1879	0x000a68c9, 0x000bf252, 0x000dbbdc, 0x0011c7e5,
1880	0x001390ee, 0x00151a78, 0x0016a906, 0x00183290,
1881	0x0019bc19, 0x001b4822, 0x001cd12c, 0x001e9ab5,
1882	0x00000000, 0x00000000,
1883};
1884
1885static const u32 b43_ntab_pilotlt_r3[] = {
1886	0x76540213, 0x62407351, 0x76543210, 0x76540213,
1887	0x76540213, 0x76430521,
1888};
1889
1890static const u32 b43_ntab_channelest_r3[] = {
1891	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1892	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1893	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1894	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1895	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1896	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1897	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1898	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1899	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1900	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1901	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1902	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1903	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1904	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1905	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1906	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1907	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1908	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1909	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1910	0x44444444, 0x44444444, 0x44444444, 0x44444444,
1911	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1912	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1913	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1914	0x10101010, 0x10101010, 0x10101010, 0x10101010,
1915};
1916
1917static const u8 b43_ntab_framelookup_r3[] = {
1918	0x02, 0x04, 0x14, 0x14, 0x03, 0x05, 0x16, 0x16,
1919	0x0a, 0x0c, 0x1c, 0x1c, 0x0b, 0x0d, 0x1e, 0x1e,
1920	0x06, 0x08, 0x18, 0x18, 0x07, 0x09, 0x1a, 0x1a,
1921	0x0e, 0x10, 0x20, 0x28, 0x0f, 0x11, 0x22, 0x2a,
1922};
1923
1924static const u8 b43_ntab_estimatepowerlt0_r3[] = {
1925	0x55, 0x54, 0x54, 0x53, 0x52, 0x52, 0x51, 0x51,
1926	0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0x4d, 0x4c, 0x4c,
1927	0x4b, 0x4a, 0x49, 0x49, 0x48, 0x47, 0x46, 0x46,
1928	0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 0x40, 0x3f,
1929	0x3e, 0x3d, 0x3c, 0x3a, 0x39, 0x38, 0x37, 0x36,
1930	0x35, 0x33, 0x32, 0x31, 0x2f, 0x2e, 0x2c, 0x2b,
1931	0x29, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1a,
1932	0x18, 0x15, 0x12, 0x0e, 0x0b, 0x07, 0x02, 0xfd,
1933};
1934
1935static const u8 b43_ntab_estimatepowerlt1_r3[] = {
1936	0x55, 0x54, 0x54, 0x53, 0x52, 0x52, 0x51, 0x51,
1937	0x50, 0x4f, 0x4f, 0x4e, 0x4e, 0x4d, 0x4c, 0x4c,
1938	0x4b, 0x4a, 0x49, 0x49, 0x48, 0x47, 0x46, 0x46,
1939	0x45, 0x44, 0x43, 0x42, 0x41, 0x40, 0x40, 0x3f,
1940	0x3e, 0x3d, 0x3c, 0x3a, 0x39, 0x38, 0x37, 0x36,
1941	0x35, 0x33, 0x32, 0x31, 0x2f, 0x2e, 0x2c, 0x2b,
1942	0x29, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1a,
1943	0x18, 0x15, 0x12, 0x0e, 0x0b, 0x07, 0x02, 0xfd,
1944};
1945
1946static const u8 b43_ntab_adjustpower0_r3[] = {
1947	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1948	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1949	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1950	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1951	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1952	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1953	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1954	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1955	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1956	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1957	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1958	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1959	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1960	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1961	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1962	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1963};
1964
1965static const u8 b43_ntab_adjustpower1_r3[] = {
1966	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1967	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1968	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1969	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1970	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1971	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1972	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1973	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1974	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1975	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1976	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1977	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1978	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1979	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1980	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1981	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1982};
1983
1984static const u32 b43_ntab_gainctl0_r3[] = {
1985	0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
1986	0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
1987	0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
1988	0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
1989	0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
1990	0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
1991	0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
1992	0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
1993	0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
1994	0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
1995	0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
1996	0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
1997	0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
1998	0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
1999	0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
2000	0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
2001	0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
2002	0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
2003	0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
2004	0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
2005	0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
2006	0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
2007	0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
2008	0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
2009	0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
2010	0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
2011	0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
2012	0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
2013	0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
2014	0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
2015	0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
2016	0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
2017};
2018
2019static const u32 b43_ntab_gainctl1_r3[] = {
2020	0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
2021	0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
2022	0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
2023	0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
2024	0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
2025	0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
2026	0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
2027	0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
2028	0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
2029	0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
2030	0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
2031	0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
2032	0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
2033	0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
2034	0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
2035	0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
2036	0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
2037	0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
2038	0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
2039	0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
2040	0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
2041	0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
2042	0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
2043	0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
2044	0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
2045	0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
2046	0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
2047	0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
2048	0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
2049	0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
2050	0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
2051	0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
2052};
2053
2054static const u32 b43_ntab_iqlt0_r3[] = {
2055	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2056	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2057	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2058	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2059	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2060	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2061	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2062	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2063	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2064	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2065	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2066	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2067	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2068	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2069	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2070	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2071	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2072	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2073	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2074	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2075	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2076	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2077	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2078	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2079	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2080	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2081	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2082	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2083	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2084	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2085	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2086	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2087};
2088
2089static const u32 b43_ntab_iqlt1_r3[] = {
2090	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2091	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2092	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2093	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2094	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2095	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2096	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2097	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2098	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2099	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2100	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2101	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2102	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2103	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2104	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2105	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2106	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2107	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2108	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2109	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2110	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2111	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2112	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2113	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2114	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2115	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2116	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2117	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2118	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2119	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2120	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2121	0x00000000, 0x00000000, 0x00000000, 0x00000000,
2122};
2123
2124static const u16 b43_ntab_loftlt0_r3[] = {
2125	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2126	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2127	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2128	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2129	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2130	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2131	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2132	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2133	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2134	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2135	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2136	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2137	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2138	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2139	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2140	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2141	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2142	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2143	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2144	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2145	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2146	0x0000, 0x0000,
2147};
2148
2149static const u16 b43_ntab_loftlt1_r3[] = {
2150	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2151	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2152	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2153	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2154	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2155	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2156	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2157	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2158	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2159	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2160	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2161	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2162	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2163	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2164	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2165	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2166	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2167	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2168	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2169	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2170	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
2171	0x0000, 0x0000,
2172};
2173
2174/* volatile  tables, PHY revision >= 3 */
2175
2176/* indexed by antswctl2g */
2177static const u16 b43_ntab_antswctl_r3[4][32] = {
2178	{
2179		0x0082, 0x0082, 0x0211, 0x0222, 0x0328,
2180		0x0000, 0x0000, 0x0000, 0x0144, 0x0000,
2181		0x0000, 0x0000, 0x0188, 0x0000, 0x0000,
2182		0x0000, 0x0082, 0x0082, 0x0211, 0x0222,
2183		0x0328, 0x0000, 0x0000, 0x0000, 0x0144,
2184		0x0000, 0x0000, 0x0000, 0x0188, 0x0000,
2185		0x0000, 0x0000,
2186	},
2187	{
2188		0x0022, 0x0022, 0x0011, 0x0022, 0x0022,
2189		0x0000, 0x0000, 0x0000, 0x0011, 0x0000,
2190		0x0000, 0x0000, 0x0022, 0x0000, 0x0000,
2191		0x0000, 0x0022, 0x0022, 0x0011, 0x0022,
2192		0x0022, 0x0000, 0x0000, 0x0000, 0x0011,
2193		0x0000, 0x0000, 0x0000, 0x0022, 0x0000,
2194		0x0000, 0x0000,
2195	},
2196	{
2197		0x0088, 0x0088, 0x0044, 0x0088, 0x0088,
2198		0x0000, 0x0000, 0x0000, 0x0044, 0x0000,
2199		0x0000, 0x0000, 0x0088, 0x0000, 0x0000,
2200		0x0000, 0x0088, 0x0088, 0x0044, 0x0088,
2201		0x0088, 0x0000, 0x0000, 0x0000, 0x0044,
2202		0x0000, 0x0000, 0x0000, 0x0088, 0x0000,
2203		0x0000, 0x0000,
2204	},
2205	{
2206		0x0022, 0x0022, 0x0011, 0x0022, 0x0000,
2207		0x0000, 0x0000, 0x0000, 0x0011, 0x0000,
2208		0x0000, 0x0000, 0x0022, 0x0000, 0x0000,
2209		0x03cc, 0x0022, 0x0022, 0x0011, 0x0022,
2210		0x0000, 0x0000, 0x0000, 0x0000, 0x0011,
2211		0x0000, 0x0000, 0x0000, 0x0022, 0x0000,
2212		0x0000, 0x03cc,
2213	}
2214};
2215
2216/* TX gain tables */
2217static const u32 b43_ntab_tx_gain_rev0_1_2[] = {
2218	0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
2219	0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
2220	0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
2221	0x03c82842, 0x03c42b44, 0x03c42b42, 0x03c42a44,
2222	0x03c42a42, 0x03c42944, 0x03c42942, 0x03c42844,
2223	0x03c42842, 0x03c42744, 0x03c42742, 0x03c42644,
2224	0x03c42642, 0x03c42544, 0x03c42542, 0x03c42444,
2225	0x03c42442, 0x03c02b44, 0x03c02b42, 0x03c02a44,
2226	0x03c02a42, 0x03c02944, 0x03c02942, 0x03c02844,
2227	0x03c02842, 0x03c02744, 0x03c02742, 0x03b02b44,
2228	0x03b02b42, 0x03b02a44, 0x03b02a42, 0x03b02944,
2229	0x03b02942, 0x03b02844, 0x03b02842, 0x03b02744,
2230	0x03b02742, 0x03b02644, 0x03b02642, 0x03b02544,
2231	0x03b02542, 0x03a02b44, 0x03a02b42, 0x03a02a44,
2232	0x03a02a42, 0x03a02944, 0x03a02942, 0x03a02844,
2233	0x03a02842, 0x03a02744, 0x03a02742, 0x03902b44,
2234	0x03902b42, 0x03902a44, 0x03902a42, 0x03902944,
2235	0x03902942, 0x03902844, 0x03902842, 0x03902744,
2236	0x03902742, 0x03902644, 0x03902642, 0x03902544,
2237	0x03902542, 0x03802b44, 0x03802b42, 0x03802a44,
2238	0x03802a42, 0x03802944, 0x03802942, 0x03802844,
2239	0x03802842, 0x03802744, 0x03802742, 0x03802644,
2240	0x03802642, 0x03802544, 0x03802542, 0x03802444,
2241	0x03802442, 0x03802344, 0x03802342, 0x03802244,
2242	0x03802242, 0x03802144, 0x03802142, 0x03802044,
2243	0x03802042, 0x03801f44, 0x03801f42, 0x03801e44,
2244	0x03801e42, 0x03801d44, 0x03801d42, 0x03801c44,
2245	0x03801c42, 0x03801b44, 0x03801b42, 0x03801a44,
2246	0x03801a42, 0x03801944, 0x03801942, 0x03801844,
2247	0x03801842, 0x03801744, 0x03801742, 0x03801644,
2248	0x03801642, 0x03801544, 0x03801542, 0x03801444,
2249	0x03801442, 0x03801344, 0x03801342, 0x00002b00,
2250};
2251
2252static const u32 b43_ntab_tx_gain_rev3plus_2ghz[] = {
2253	0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
2254	0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
2255	0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
2256	0x1e41003c, 0x1e41003b, 0x1e410039, 0x1e410037,
2257	0x1d410044, 0x1d410042, 0x1d410040, 0x1d41003e,
2258	0x1d41003c, 0x1d41003b, 0x1d410039, 0x1d410037,
2259	0x1c410044, 0x1c410042, 0x1c410040, 0x1c41003e,
2260	0x1c41003c, 0x1c41003b, 0x1c410039, 0x1c410037,
2261	0x1b410044, 0x1b410042, 0x1b410040, 0x1b41003e,
2262	0x1b41003c, 0x1b41003b, 0x1b410039, 0x1b410037,
2263	0x1a410044, 0x1a410042, 0x1a410040, 0x1a41003e,
2264	0x1a41003c, 0x1a41003b, 0x1a410039, 0x1a410037,
2265	0x19410044, 0x19410042, 0x19410040, 0x1941003e,
2266	0x1941003c, 0x1941003b, 0x19410039, 0x19410037,
2267	0x18410044, 0x18410042, 0x18410040, 0x1841003e,
2268	0x1841003c, 0x1841003b, 0x18410039, 0x18410037,
2269	0x17410044, 0x17410042, 0x17410040, 0x1741003e,
2270	0x1741003c, 0x1741003b, 0x17410039, 0x17410037,
2271	0x16410044, 0x16410042, 0x16410040, 0x1641003e,
2272	0x1641003c, 0x1641003b, 0x16410039, 0x16410037,
2273	0x15410044, 0x15410042, 0x15410040, 0x1541003e,
2274	0x1541003c, 0x1541003b, 0x15410039, 0x15410037,
2275	0x14410044, 0x14410042, 0x14410040, 0x1441003e,
2276	0x1441003c, 0x1441003b, 0x14410039, 0x14410037,
2277	0x13410044, 0x13410042, 0x13410040, 0x1341003e,
2278	0x1341003c, 0x1341003b, 0x13410039, 0x13410037,
2279	0x12410044, 0x12410042, 0x12410040, 0x1241003e,
2280	0x1241003c, 0x1241003b, 0x12410039, 0x12410037,
2281	0x11410044, 0x11410042, 0x11410040, 0x1141003e,
2282	0x1141003c, 0x1141003b, 0x11410039, 0x11410037,
2283	0x10410044, 0x10410042, 0x10410040, 0x1041003e,
2284	0x1041003c, 0x1041003b, 0x10410039, 0x10410037,
2285};
2286
2287static const u32 b43_ntab_tx_gain_rev3_5ghz[] = {
2288	0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
2289	0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
2290	0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
2291	0xcef7003c, 0xcef7003b, 0xcef70039, 0xcef70037,
2292	0xcdf70044, 0xcdf70042, 0xcdf70040, 0xcdf7003e,
2293	0xcdf7003c, 0xcdf7003b, 0xcdf70039, 0xcdf70037,
2294	0xccf70044, 0xccf70042, 0xccf70040, 0xccf7003e,
2295	0xccf7003c, 0xccf7003b, 0xccf70039, 0xccf70037,
2296	0xcbf70044, 0xcbf70042, 0xcbf70040, 0xcbf7003e,
2297	0xcbf7003c, 0xcbf7003b, 0xcbf70039, 0xcbf70037,
2298	0xcaf70044, 0xcaf70042, 0xcaf70040, 0xcaf7003e,
2299	0xcaf7003c, 0xcaf7003b, 0xcaf70039, 0xcaf70037,
2300	0xc9f70044, 0xc9f70042, 0xc9f70040, 0xc9f7003e,
2301	0xc9f7003c, 0xc9f7003b, 0xc9f70039, 0xc9f70037,
2302	0xc8f70044, 0xc8f70042, 0xc8f70040, 0xc8f7003e,
2303	0xc8f7003c, 0xc8f7003b, 0xc8f70039, 0xc8f70037,
2304	0xc7f70044, 0xc7f70042, 0xc7f70040, 0xc7f7003e,
2305	0xc7f7003c, 0xc7f7003b, 0xc7f70039, 0xc7f70037,
2306	0xc6f70044, 0xc6f70042, 0xc6f70040, 0xc6f7003e,
2307	0xc6f7003c, 0xc6f7003b, 0xc6f70039, 0xc6f70037,
2308	0xc5f70044, 0xc5f70042, 0xc5f70040, 0xc5f7003e,
2309	0xc5f7003c, 0xc5f7003b, 0xc5f70039, 0xc5f70037,
2310	0xc4f70044, 0xc4f70042, 0xc4f70040, 0xc4f7003e,
2311	0xc4f7003c, 0xc4f7003b, 0xc4f70039, 0xc4f70037,
2312	0xc3f70044, 0xc3f70042, 0xc3f70040, 0xc3f7003e,
2313	0xc3f7003c, 0xc3f7003b, 0xc3f70039, 0xc3f70037,
2314	0xc2f70044, 0xc2f70042, 0xc2f70040, 0xc2f7003e,
2315	0xc2f7003c, 0xc2f7003b, 0xc2f70039, 0xc2f70037,
2316	0xc1f70044, 0xc1f70042, 0xc1f70040, 0xc1f7003e,
2317	0xc1f7003c, 0xc1f7003b, 0xc1f70039, 0xc1f70037,
2318	0xc0f70044, 0xc0f70042, 0xc0f70040, 0xc0f7003e,
2319	0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037,
2320};
2321
2322static const u32 b43_ntab_tx_gain_rev4_5ghz[] = {
2323	0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
2324	0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
2325	0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
2326	0x2ef2003c, 0x2ef2003b, 0x2ef20039, 0x2ef20037,
2327	0x2df20044, 0x2df20042, 0x2df20040, 0x2df2003e,
2328	0x2df2003c, 0x2df2003b, 0x2df20039, 0x2df20037,
2329	0x2cf20044, 0x2cf20042, 0x2cf20040, 0x2cf2003e,
2330	0x2cf2003c, 0x2cf2003b, 0x2cf20039, 0x2cf20037,
2331	0x2bf20044, 0x2bf20042, 0x2bf20040, 0x2bf2003e,
2332	0x2bf2003c, 0x2bf2003b, 0x2bf20039, 0x2bf20037,
2333	0x2af20044, 0x2af20042, 0x2af20040, 0x2af2003e,
2334	0x2af2003c, 0x2af2003b, 0x2af20039, 0x2af20037,
2335	0x29f20044, 0x29f20042, 0x29f20040, 0x29f2003e,
2336	0x29f2003c, 0x29f2003b, 0x29f20039, 0x29f20037,
2337	0x28f20044, 0x28f20042, 0x28f20040, 0x28f2003e,
2338	0x28f2003c, 0x28f2003b, 0x28f20039, 0x28f20037,
2339	0x27f20044, 0x27f20042, 0x27f20040, 0x27f2003e,
2340	0x27f2003c, 0x27f2003b, 0x27f20039, 0x27f20037,
2341	0x26f20044, 0x26f20042, 0x26f20040, 0x26f2003e,
2342	0x26f2003c, 0x26f2003b, 0x26f20039, 0x26f20037,
2343	0x25f20044, 0x25f20042, 0x25f20040, 0x25f2003e,
2344	0x25f2003c, 0x25f2003b, 0x25f20039, 0x25f20037,
2345	0x24f20044, 0x24f20042, 0x24f20040, 0x24f2003e,
2346	0x24f2003c, 0x24f2003b, 0x24f20039, 0x24f20038,
2347	0x23f20041, 0x23f20040, 0x23f2003f, 0x23f2003e,
2348	0x23f2003c, 0x23f2003b, 0x23f20039, 0x23f20037,
2349	0x22f20044, 0x22f20042, 0x22f20040, 0x22f2003e,
2350	0x22f2003c, 0x22f2003b, 0x22f20039, 0x22f20037,
2351	0x21f20044, 0x21f20042, 0x21f20040, 0x21f2003e,
2352	0x21f2003c, 0x21f2003b, 0x21f20039, 0x21f20037,
2353	0x20d20043, 0x20d20041, 0x20d2003e, 0x20d2003c,
2354	0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034,
2355};
2356
2357static const u32 b43_ntab_tx_gain_rev5plus_5ghz[] = {
2358	0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
2359	0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
2360	0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
2361	0x0e62003c, 0x0e62003d, 0x0e62003b, 0x0e62003a,
2362	0x0d620043, 0x0d620041, 0x0d620040, 0x0d62003e,
2363	0x0d62003d, 0x0d62003c, 0x0d62003b, 0x0d62003a,
2364	0x0c620041, 0x0c620040, 0x0c62003f, 0x0c62003e,
2365	0x0c62003c, 0x0c62003b, 0x0c620039, 0x0c620037,
2366	0x0b620046, 0x0b620044, 0x0b620042, 0x0b620040,
2367	0x0b62003e, 0x0b62003c, 0x0b62003b, 0x0b62003a,
2368	0x0a620041, 0x0a620040, 0x0a62003e, 0x0a62003c,
2369	0x0a62003b, 0x0a62003a, 0x0a620039, 0x0a620038,
2370	0x0962003e, 0x0962003d, 0x0962003c, 0x0962003b,
2371	0x09620039, 0x09620037, 0x09620035, 0x09620033,
2372	0x08620044, 0x08620042, 0x08620040, 0x0862003e,
2373	0x0862003c, 0x0862003b, 0x0862003a, 0x08620039,
2374	0x07620043, 0x07620042, 0x07620040, 0x0762003f,
2375	0x0762003d, 0x0762003b, 0x0762003a, 0x07620039,
2376	0x0662003e, 0x0662003d, 0x0662003c, 0x0662003b,
2377	0x06620039, 0x06620037, 0x06620035, 0x06620033,
2378	0x05620046, 0x05620044, 0x05620042, 0x05620040,
2379	0x0562003e, 0x0562003c, 0x0562003b, 0x05620039,
2380	0x04620044, 0x04620042, 0x04620040, 0x0462003e,
2381	0x0462003c, 0x0462003b, 0x04620039, 0x04620038,
2382	0x0362003c, 0x0362003b, 0x0362003a, 0x03620039,
2383	0x03620038, 0x03620037, 0x03620035, 0x03620033,
2384	0x0262004c, 0x0262004a, 0x02620048, 0x02620047,
2385	0x02620046, 0x02620044, 0x02620043, 0x02620042,
2386	0x0162004a, 0x01620048, 0x01620046, 0x01620044,
2387	0x01620043, 0x01620042, 0x01620041, 0x01620040,
2388	0x00620042, 0x00620040, 0x0062003e, 0x0062003c,
2389	0x0062003b, 0x00620039, 0x00620037, 0x00620035,
2390};
2391
2392static const u32 txpwrctrl_tx_gain_ipa[] = {
2393	0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
2394	0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
2395	0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
2396	0x5ef70028, 0x5ef70027, 0x5ef70026, 0x5ef70025,
2397	0x5df7002d, 0x5df7002b, 0x5df7002a, 0x5df70029,
2398	0x5df70028, 0x5df70027, 0x5df70026, 0x5df70025,
2399	0x5cf7002d, 0x5cf7002b, 0x5cf7002a, 0x5cf70029,
2400	0x5cf70028, 0x5cf70027, 0x5cf70026, 0x5cf70025,
2401	0x5bf7002d, 0x5bf7002b, 0x5bf7002a, 0x5bf70029,
2402	0x5bf70028, 0x5bf70027, 0x5bf70026, 0x5bf70025,
2403	0x5af7002d, 0x5af7002b, 0x5af7002a, 0x5af70029,
2404	0x5af70028, 0x5af70027, 0x5af70026, 0x5af70025,
2405	0x59f7002d, 0x59f7002b, 0x59f7002a, 0x59f70029,
2406	0x59f70028, 0x59f70027, 0x59f70026, 0x59f70025,
2407	0x58f7002d, 0x58f7002b, 0x58f7002a, 0x58f70029,
2408	0x58f70028, 0x58f70027, 0x58f70026, 0x58f70025,
2409	0x57f7002d, 0x57f7002b, 0x57f7002a, 0x57f70029,
2410	0x57f70028, 0x57f70027, 0x57f70026, 0x57f70025,
2411	0x56f7002d, 0x56f7002b, 0x56f7002a, 0x56f70029,
2412	0x56f70028, 0x56f70027, 0x56f70026, 0x56f70025,
2413	0x55f7002d, 0x55f7002b, 0x55f7002a, 0x55f70029,
2414	0x55f70028, 0x55f70027, 0x55f70026, 0x55f70025,
2415	0x54f7002d, 0x54f7002b, 0x54f7002a, 0x54f70029,
2416	0x54f70028, 0x54f70027, 0x54f70026, 0x54f70025,
2417	0x53f7002d, 0x53f7002b, 0x53f7002a, 0x53f70029,
2418	0x53f70028, 0x53f70027, 0x53f70026, 0x53f70025,
2419	0x52f7002d, 0x52f7002b, 0x52f7002a, 0x52f70029,
2420	0x52f70028, 0x52f70027, 0x52f70026, 0x52f70025,
2421	0x51f7002d, 0x51f7002b, 0x51f7002a, 0x51f70029,
2422	0x51f70028, 0x51f70027, 0x51f70026, 0x51f70025,
2423	0x50f7002d, 0x50f7002b, 0x50f7002a, 0x50f70029,
2424	0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025,
2425};
2426
2427static const u32 txpwrctrl_tx_gain_ipa_rev5[] = {
2428	0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
2429	0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
2430	0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
2431	0x1ef70028, 0x1ef70027, 0x1ef70026, 0x1ef70025,
2432	0x1df7002d, 0x1df7002b, 0x1df7002a, 0x1df70029,
2433	0x1df70028, 0x1df70027, 0x1df70026, 0x1df70025,
2434	0x1cf7002d, 0x1cf7002b, 0x1cf7002a, 0x1cf70029,
2435	0x1cf70028, 0x1cf70027, 0x1cf70026, 0x1cf70025,
2436	0x1bf7002d, 0x1bf7002b, 0x1bf7002a, 0x1bf70029,
2437	0x1bf70028, 0x1bf70027, 0x1bf70026, 0x1bf70025,
2438	0x1af7002d, 0x1af7002b, 0x1af7002a, 0x1af70029,
2439	0x1af70028, 0x1af70027, 0x1af70026, 0x1af70025,
2440	0x19f7002d, 0x19f7002b, 0x19f7002a, 0x19f70029,
2441	0x19f70028, 0x19f70027, 0x19f70026, 0x19f70025,
2442	0x18f7002d, 0x18f7002b, 0x18f7002a, 0x18f70029,
2443	0x18f70028, 0x18f70027, 0x18f70026, 0x18f70025,
2444	0x17f7002d, 0x17f7002b, 0x17f7002a, 0x17f70029,
2445	0x17f70028, 0x17f70027, 0x17f70026, 0x17f70025,
2446	0x16f7002d, 0x16f7002b, 0x16f7002a, 0x16f70029,
2447	0x16f70028, 0x16f70027, 0x16f70026, 0x16f70025,
2448	0x15f7002d, 0x15f7002b, 0x15f7002a, 0x15f70029,
2449	0x15f70028, 0x15f70027, 0x15f70026, 0x15f70025,
2450	0x14f7002d, 0x14f7002b, 0x14f7002a, 0x14f70029,
2451	0x14f70028, 0x14f70027, 0x14f70026, 0x14f70025,
2452	0x13f7002d, 0x13f7002b, 0x13f7002a, 0x13f70029,
2453	0x13f70028, 0x13f70027, 0x13f70026, 0x13f70025,
2454	0x12f7002d, 0x12f7002b, 0x12f7002a, 0x12f70029,
2455	0x12f70028, 0x12f70027, 0x12f70026, 0x12f70025,
2456	0x11f7002d, 0x11f7002b, 0x11f7002a, 0x11f70029,
2457	0x11f70028, 0x11f70027, 0x11f70026, 0x11f70025,
2458	0x10f7002d, 0x10f7002b, 0x10f7002a, 0x10f70029,
2459	0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025,
2460};
2461
2462static const u32 txpwrctrl_tx_gain_ipa_rev6[] = {
2463	0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
2464	0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
2465	0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
2466	0x0ef70028, 0x0ef70027, 0x0ef70026, 0x0ef70025,
2467	0x0df7002d, 0x0df7002b, 0x0df7002a, 0x0df70029,
2468	0x0df70028, 0x0df70027, 0x0df70026, 0x0df70025,
2469	0x0cf7002d, 0x0cf7002b, 0x0cf7002a, 0x0cf70029,
2470	0x0cf70028, 0x0cf70027, 0x0cf70026, 0x0cf70025,
2471	0x0bf7002d, 0x0bf7002b, 0x0bf7002a, 0x0bf70029,
2472	0x0bf70028, 0x0bf70027, 0x0bf70026, 0x0bf70025,
2473	0x0af7002d, 0x0af7002b, 0x0af7002a, 0x0af70029,
2474	0x0af70028, 0x0af70027, 0x0af70026, 0x0af70025,
2475	0x09f7002d, 0x09f7002b, 0x09f7002a, 0x09f70029,
2476	0x09f70028, 0x09f70027, 0x09f70026, 0x09f70025,
2477	0x08f7002d, 0x08f7002b, 0x08f7002a, 0x08f70029,
2478	0x08f70028, 0x08f70027, 0x08f70026, 0x08f70025,
2479	0x07f7002d, 0x07f7002b, 0x07f7002a, 0x07f70029,
2480	0x07f70028, 0x07f70027, 0x07f70026, 0x07f70025,
2481	0x06f7002d, 0x06f7002b, 0x06f7002a, 0x06f70029,
2482	0x06f70028, 0x06f70027, 0x06f70026, 0x06f70025,
2483	0x05f7002d, 0x05f7002b, 0x05f7002a, 0x05f70029,
2484	0x05f70028, 0x05f70027, 0x05f70026, 0x05f70025,
2485	0x04f7002d, 0x04f7002b, 0x04f7002a, 0x04f70029,
2486	0x04f70028, 0x04f70027, 0x04f70026, 0x04f70025,
2487	0x03f7002d, 0x03f7002b, 0x03f7002a, 0x03f70029,
2488	0x03f70028, 0x03f70027, 0x03f70026, 0x03f70025,
2489	0x02f7002d, 0x02f7002b, 0x02f7002a, 0x02f70029,
2490	0x02f70028, 0x02f70027, 0x02f70026, 0x02f70025,
2491	0x01f7002d, 0x01f7002b, 0x01f7002a, 0x01f70029,
2492	0x01f70028, 0x01f70027, 0x01f70026, 0x01f70025,
2493	0x00f7002d, 0x00f7002b, 0x00f7002a, 0x00f70029,
2494	0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025,
2495};
2496
2497static const u32 txpwrctrl_tx_gain_ipa_5g[] = {
2498	0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
2499	0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
2500	0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
2501	0x7ff70026, 0x7ff70024, 0x7ff70023, 0x7ff70022,
2502	0x7ef70028, 0x7ef70027, 0x7ef70026, 0x7ef70025,
2503	0x7ef70024, 0x7ef70023, 0x7df70028, 0x7df70027,
2504	0x7df70026, 0x7df70025, 0x7df70024, 0x7df70023,
2505	0x7df70022, 0x7cf70029, 0x7cf70028, 0x7cf70027,
2506	0x7cf70026, 0x7cf70025, 0x7cf70023, 0x7cf70022,
2507	0x7bf70029, 0x7bf70028, 0x7bf70026, 0x7bf70025,
2508	0x7bf70024, 0x7bf70023, 0x7bf70022, 0x7bf70021,
2509	0x7af70029, 0x7af70028, 0x7af70027, 0x7af70026,
2510	0x7af70025, 0x7af70024, 0x7af70023, 0x7af70022,
2511	0x79f70029, 0x79f70028, 0x79f70027, 0x79f70026,
2512	0x79f70025, 0x79f70024, 0x79f70023, 0x79f70022,
2513	0x78f70029, 0x78f70028, 0x78f70027, 0x78f70026,
2514	0x78f70025, 0x78f70024, 0x78f70023, 0x78f70022,
2515	0x77f70029, 0x77f70028, 0x77f70027, 0x77f70026,
2516	0x77f70025, 0x77f70024, 0x77f70023, 0x77f70022,
2517	0x76f70029, 0x76f70028, 0x76f70027, 0x76f70026,
2518	0x76f70024, 0x76f70023, 0x76f70022, 0x76f70021,
2519	0x75f70029, 0x75f70028, 0x75f70027, 0x75f70026,
2520	0x75f70025, 0x75f70024, 0x75f70023, 0x74f70029,
2521	0x74f70028, 0x74f70026, 0x74f70025, 0x74f70024,
2522	0x74f70023, 0x74f70022, 0x73f70029, 0x73f70027,
2523	0x73f70026, 0x73f70025, 0x73f70024, 0x73f70023,
2524	0x73f70022, 0x72f70028, 0x72f70027, 0x72f70026,
2525	0x72f70025, 0x72f70024, 0x72f70023, 0x72f70022,
2526	0x71f70028, 0x71f70027, 0x71f70026, 0x71f70025,
2527	0x71f70024, 0x71f70023, 0x70f70028, 0x70f70027,
2528	0x70f70026, 0x70f70024, 0x70f70023, 0x70f70022,
2529	0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f,
2530};
2531
2532const s8 b43_ntab_papd_pga_gain_delta_ipa_2g[] = {
2533	-114, -108, -98, -91, -84, -78, -70, -62,
2534	-54, -46, -39, -31, -23, -15, -8, 0
2535};
2536
2537const u16 tbl_iqcal_gainparams[2][9][8] = {
2538	{
2539		{ 0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69 },
2540		{ 0x700, 7, 0, 0, 0x69, 0x69, 0x69, 0x69 },
2541		{ 0x710, 7, 1, 0, 0x68, 0x68, 0x68, 0x68 },
2542		{ 0x720, 7, 2, 0, 0x67, 0x67, 0x67, 0x67 },
2543		{ 0x730, 7, 3, 0, 0x66, 0x66, 0x66, 0x66 },
2544		{ 0x740, 7, 4, 0, 0x65, 0x65, 0x65, 0x65 },
2545		{ 0x741, 7, 4, 1, 0x65, 0x65, 0x65, 0x65 },
2546		{ 0x742, 7, 4, 2, 0x65, 0x65, 0x65, 0x65 },
2547		{ 0x743, 7, 4, 3, 0x65, 0x65, 0x65, 0x65 }
2548	},
2549	{
2550		{ 0x000, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
2551		{ 0x700, 7, 0, 0, 0x79, 0x79, 0x79, 0x79 },
2552		{ 0x710, 7, 1, 0, 0x79, 0x79, 0x79, 0x79 },
2553		{ 0x720, 7, 2, 0, 0x78, 0x78, 0x78, 0x78 },
2554		{ 0x730, 7, 3, 0, 0x78, 0x78, 0x78, 0x78 },
2555		{ 0x740, 7, 4, 0, 0x78, 0x78, 0x78, 0x78 },
2556		{ 0x741, 7, 4, 1, 0x78, 0x78, 0x78, 0x78 },
2557		{ 0x742, 7, 4, 2, 0x78, 0x78, 0x78, 0x78 },
2558		{ 0x743, 7, 4, 3, 0x78, 0x78, 0x78, 0x78 }
2559	}
2560};
2561
2562const struct nphy_txiqcal_ladder ladder_lo[] = {
2563	{ 3, 0 },
2564	{ 4, 0 },
2565	{ 6, 0 },
2566	{ 9, 0 },
2567	{ 13, 0 },
2568	{ 18, 0 },
2569	{ 25, 0 },
2570	{ 25, 1 },
2571	{ 25, 2 },
2572	{ 25, 3 },
2573	{ 25, 4 },
2574	{ 25, 5 },
2575	{ 25, 6 },
2576	{ 25, 7 },
2577	{ 35, 7 },
2578	{ 50, 7 },
2579	{ 71, 7 },
2580	{ 100, 7 }
2581};
2582
2583const struct nphy_txiqcal_ladder ladder_iq[] = {
2584	{ 3, 0 },
2585	{ 4, 0 },
2586	{ 6, 0 },
2587	{ 9, 0 },
2588	{ 13, 0 },
2589	{ 18, 0 },
2590	{ 25, 0 },
2591	{ 35, 0 },
2592	{ 50, 0 },
2593	{ 71, 0 },
2594	{ 100, 0 },
2595	{ 100, 1 },
2596	{ 100, 2 },
2597	{ 100, 3 },
2598	{ 100, 4 },
2599	{ 100, 5 },
2600	{ 100, 6 },
2601	{ 100, 7 }
2602};
2603
2604const u16 loscale[] = {
2605	256, 256, 271, 271,
2606	287, 256, 256, 271,
2607	271, 287, 287, 304,
2608	304, 256, 256, 271,
2609	271, 287, 287, 304,
2610	304, 322, 322, 341,
2611	341, 362, 362, 383,
2612	383, 256, 256, 271,
2613	271, 287, 287, 304,
2614	304, 322, 322, 256,
2615	256, 271, 271, 287,
2616	287, 304, 304, 322,
2617	322, 341, 341, 362,
2618	362, 256, 256, 271,
2619	271, 287, 287, 304,
2620	304, 322, 322, 256,
2621	256, 271, 271, 287,
2622	287, 304, 304, 322,
2623	322, 341, 341, 362,
2624	362, 256, 256, 271,
2625	271, 287, 287, 304,
2626	304, 322, 322, 341,
2627	341, 362, 362, 383,
2628	383, 406, 406, 430,
2629	430, 455, 455, 482,
2630	482, 511, 511, 541,
2631	541, 573, 573, 607,
2632	607, 643, 643, 681,
2633	681, 722, 722, 764,
2634	764, 810, 810, 858,
2635	858, 908, 908, 962,
2636	962, 1019, 1019, 256
2637};
2638
2639const u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {
2640	0x0200, 0x0300, 0x0400, 0x0700,
2641	0x0900, 0x0c00, 0x1200, 0x1201,
2642	0x1202, 0x1203, 0x1204, 0x1205,
2643	0x1206, 0x1207, 0x1907, 0x2307,
2644	0x3207, 0x4707
2645};
2646
2647const u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {
2648	0x0300, 0x0500, 0x0700, 0x0900,
2649	0x0d00, 0x1100, 0x1900, 0x1901,
2650	0x1902, 0x1903, 0x1904, 0x1905,
2651	0x1906, 0x1907, 0x2407, 0x3207,
2652	0x4607, 0x6407
2653};
2654
2655const u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {
2656	0x0100, 0x0200, 0x0400, 0x0700,
2657	0x0900, 0x0c00, 0x1200, 0x1900,
2658	0x2300, 0x3200, 0x4700, 0x4701,
2659	0x4702, 0x4703, 0x4704, 0x4705,
2660	0x4706, 0x4707
2661};
2662
2663const u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {
2664	0x0200, 0x0300, 0x0600, 0x0900,
2665	0x0d00, 0x1100, 0x1900, 0x2400,
2666	0x3200, 0x4600, 0x6400, 0x6401,
2667	0x6402, 0x6403, 0x6404, 0x6405,
2668	0x6406, 0x6407
2669};
2670
2671const u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[B43_NTAB_TX_IQLO_CAL_STARTCOEFS_REV3] = { };
2672
2673const u16 tbl_tx_iqlo_cal_startcoefs[B43_NTAB_TX_IQLO_CAL_STARTCOEFS] = { };
2674
2675const u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {
2676	0x8423, 0x8323, 0x8073, 0x8256,
2677	0x8045, 0x8223, 0x9423, 0x9323,
2678	0x9073, 0x9256, 0x9045, 0x9223
2679};
2680
2681const u16 tbl_tx_iqlo_cal_cmds_recal[] = {
2682	0x8101, 0x8253, 0x8053, 0x8234,
2683	0x8034, 0x9101, 0x9253, 0x9053,
2684	0x9234, 0x9034
2685};
2686
2687const u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {
2688	0x8123, 0x8264, 0x8086, 0x8245,
2689	0x8056, 0x9123, 0x9264, 0x9086,
2690	0x9245, 0x9056
2691};
2692
2693const u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {
2694	0x8434, 0x8334, 0x8084, 0x8267,
2695	0x8056, 0x8234, 0x9434, 0x9334,
2696	0x9084, 0x9267, 0x9056, 0x9234
2697};
2698
2699const s16 tbl_tx_filter_coef_rev4[7][15] = {
2700	{  -377,   137,  -407,   208, -1527,
2701	    956,    93,   186,    93,   230,
2702	    -44,   230,   201,  -191,   201 },
2703	{   -77,    20,   -98,    49,   -93,
2704	     60,    56,   111,    56,    26,
2705	     -5,    26,    34,   -32,    34 },
2706	{  -360,   164,  -376,   164, -1533,
2707	    576,   308,  -314,   308,   121,
2708	    -73,   121,    91,   124,    91 },
2709	{  -295,   200,  -363,   142, -1391,
2710	    826,   151,   301,   151,   151,
2711	    301,   151,   602,  -752,   602 },
2712	{   -92,    58,   -96,    49,  -104,
2713	     44,    17,    35,    17,    12,
2714	     25,    12,    13,    27,    13 },
2715	{  -375,   136,  -399,   209, -1479,
2716	    949,   130,   260,   130,   230,
2717	    -44,   230,   201,  -191,   201 },
2718	{ 0xed9,  0xc8, 0xe95,  0x8e, 0xa91,
2719	  0x33a,  0x97, 0x12d,  0x97,  0x97,
2720	  0x12d,  0x97, 0x25a, 0xd10, 0x25a }
2721};
2722
2723/* addr0,  addr1,  bmask,  shift */
2724const struct nphy_rf_control_override_rev2 tbl_rf_control_override_rev2[] = {
2725	{ 0x78, 0x78, 0x0038,  3 }, /* for field == 0x0002 (fls == 2) */
2726	{ 0x7A, 0x7D, 0x0001,  0 }, /* for field == 0x0004 (fls == 3) */
2727	{ 0x7A, 0x7D, 0x0002,  1 }, /* for field == 0x0008 (fls == 4) */
2728	{ 0x7A, 0x7D, 0x0004,  2 }, /* for field == 0x0010 (fls == 5) */
2729	{ 0x7A, 0x7D, 0x0030,  4 }, /* for field == 0x0020 (fls == 6) */
2730	{ 0x7A, 0x7D, 0x00C0,  6 }, /* for field == 0x0040 (fls == 7) */
2731	{ 0x7A, 0x7D, 0x0100,  8 }, /* for field == 0x0080 (fls == 8) */
2732	{ 0x7A, 0x7D, 0x0200,  9 }, /* for field == 0x0100 (fls == 9) */
2733	{ 0x78, 0x78, 0x0004,  2 }, /* for field == 0x0200 (fls == 10) */
2734	{ 0x7B, 0x7E, 0x01FF,  0 }, /* for field == 0x0400 (fls == 11) */
2735	{ 0x7C, 0x7F, 0x01FF,  0 }, /* for field == 0x0800 (fls == 12) */
2736	{ 0x78, 0x78, 0x0100,  8 }, /* for field == 0x1000 (fls == 13) */
2737	{ 0x78, 0x78, 0x0200,  9 }, /* for field == 0x2000 (fls == 14) */
2738	{ 0x78, 0x78, 0xF000, 12 }  /* for field == 0x4000 (fls == 15) */
2739};
2740
2741/* val_mask, val_shift, en_addr0, val_addr0, en_addr1, val_addr1 */
2742const struct nphy_rf_control_override_rev3 tbl_rf_control_override_rev3[] = {
2743	{ 0x8000, 15, 0xE5, 0xF9, 0xE6, 0xFB }, /* field == 0x0001 (fls 1) */
2744	{ 0x0001,  0, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0002 (fls 2) */
2745	{ 0x0002,  1, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0004 (fls 3) */
2746	{ 0x0004,  2, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0008 (fls 4) */
2747	{ 0x0010,  4, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0010 (fls 5) */
2748	{ 0x0020,  5, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0020 (fls 6) */
2749	{ 0x0040,  6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0040 (fls 7) */
2750	{ 0x0080,  7, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0080 (fls 8) */
2751	{ 0x0100,  8, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0100 (fls 9) */
2752	{ 0x0007,  0, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0200 (fls 10) */
2753	{ 0x0070,  4, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0400 (fls 11) */
2754	{ 0xE000, 13, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0800 (fls 12) */
2755	{ 0xFFFF,  0, 0xE7, 0x7B, 0xEC, 0x7E }, /* field == 0x1000 (fls 13) */
2756	{ 0xFFFF,  0, 0xE7, 0x7C, 0xEC, 0x7F }, /* field == 0x2000 (fls 14) */
2757	{ 0x00C0,  6, 0xE7, 0xF9, 0xEC, 0xFB }  /* field == 0x4000 (fls 15) */
2758};
2759
2760/* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
2761static const struct nphy_rf_control_override_rev7
2762			tbl_rf_control_override_rev7_over0[] = {
2763	{ 0x0004, 0x07A, 0x07D, 0x0002, 1 },
2764	{ 0x0008, 0x07A, 0x07D, 0x0004, 2 },
2765	{ 0x0010, 0x07A, 0x07D, 0x0010, 4 },
2766	{ 0x0020, 0x07A, 0x07D, 0x0020, 5 },
2767	{ 0x0040, 0x07A, 0x07D, 0x0040, 6 },
2768	{ 0x0080, 0x0F8, 0x0FA, 0x0080, 7 },
2769	{ 0x0400, 0x0F8, 0x0FA, 0x0070, 4 },
2770	{ 0x0800, 0x07B, 0x07E, 0xFFFF, 0 },
2771	{ 0x1000, 0x07C, 0x07F, 0xFFFF, 0 },
2772	{ 0x6000, 0x348, 0x349, 0xFFFF, 0 },
2773	{ 0x2000, 0x348, 0x349, 0x000F, 0 },
2774};
2775
2776/* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
2777static const struct nphy_rf_control_override_rev7
2778			tbl_rf_control_override_rev7_over1[] = {
2779	{ 0x0002, 0x340, 0x341, 0x0002, 1 },
2780	{ 0x0008, 0x340, 0x341, 0x0008, 3 },
2781	{ 0x0020, 0x340, 0x341, 0x0020, 5 },
2782	{ 0x0010, 0x340, 0x341, 0x0010, 4 },
2783	{ 0x0004, 0x340, 0x341, 0x0004, 2 },
2784	{ 0x0080, 0x340, 0x341, 0x0700, 8 },
2785	{ 0x0800, 0x340, 0x341, 0x4000, 14 },
2786	{ 0x0400, 0x340, 0x341, 0x2000, 13 },
2787	{ 0x0200, 0x340, 0x341, 0x0800, 12 },
2788	{ 0x0100, 0x340, 0x341, 0x0100, 11 },
2789	{ 0x0040, 0x340, 0x341, 0x0040, 6 },
2790	{ 0x0001, 0x340, 0x341, 0x0001, 0 },
2791};
2792
2793/* field, val_addr_core0, val_addr_core1, val_mask, val_shift */
2794static const struct nphy_rf_control_override_rev7
2795			tbl_rf_control_override_rev7_over2[] = {
2796	{ 0x0008, 0x344, 0x345, 0x0008, 3 },
2797	{ 0x0002, 0x344, 0x345, 0x0002, 1 },
2798	{ 0x0001, 0x344, 0x345, 0x0001, 0 },
2799	{ 0x0004, 0x344, 0x345, 0x0004, 2 },
2800	{ 0x0010, 0x344, 0x345, 0x0010, 4 },
2801};
2802
2803static struct nphy_gain_ctl_workaround_entry nphy_gain_ctl_wa_phy6_radio11_ghz2 = {
2804	{ 10, 14, 19, 27 },
2805	{ -5, 6, 10, 15 },
2806	{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
2807	{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
2808	0x427E,
2809	{ 0x413F, 0x413F, 0x413F, 0x413F },
2810	0x007E, 0x0066, 0x1074,
2811	0x18, 0x18, 0x18,
2812	0x01D0, 0x5,
2813};
2814static struct nphy_gain_ctl_workaround_entry nphy_gain_ctl_workaround[2][4] = {
2815	{ /* 2GHz */
2816		{ /* PHY rev 3 */
2817			{ 7, 11, 16, 23 },
2818			{ -5, 6, 10, 14 },
2819			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
2820			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
2821			0x627E,
2822			{ 0x613F, 0x613F, 0x613F, 0x613F },
2823			0x107E, 0x0066, 0x0074,
2824			0x18, 0x18, 0x18,
2825			0x020D, 0x5,
2826		},
2827		{ /* PHY rev 4 */
2828			{ 8, 12, 17, 25 },
2829			{ -5, 6, 10, 14 },
2830			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
2831			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
2832			0x527E,
2833			{ 0x513F, 0x513F, 0x513F, 0x513F },
2834			0x007E, 0x0066, 0x0074,
2835			0x18, 0x18, 0x18,
2836			0x01A1, 0x5,
2837		},
2838		{ /* PHY rev 5 */
2839			{ 9, 13, 18, 26 },
2840			{ -3, 7, 11, 16 },
2841			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
2842			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
2843			0x427E, /* invalid for external LNA! */
2844			{ 0x413F, 0x413F, 0x413F, 0x413F }, /* invalid for external LNA! */
2845			0x1076, 0x0066, 0x0000, /* low is invalid (the last one) */
2846			0x18, 0x18, 0x18,
2847			0x01D0, 0x9,
2848		},
2849		{ /* PHY rev 6+ */
2850			{ 8, 13, 18, 25 },
2851			{ -5, 6, 10, 14 },
2852			{ 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA, 0xA },
2853			{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
2854			0x527E, /* invalid for external LNA! */
2855			{ 0x513F, 0x513F, 0x513F, 0x513F }, /* invalid for external LNA! */
2856			0x1076, 0x0066, 0x0000, /* low is invalid (the last one) */
2857			0x18, 0x18, 0x18,
2858			0x01D0, 0x5,
2859		},
2860	},
2861	{ /* 5GHz */
2862		{ /* PHY rev 3 */
2863			{ 7, 11, 17, 23 },
2864			{ -6, 2, 6, 10 },
2865			{ 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 },
2866			{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
2867			0x52DE,
2868			{ 0x516F, 0x516F, 0x516F, 0x516F },
2869			0x00DE, 0x00CA, 0x00CC,
2870			0x1E, 0x1E, 0x1E,
2871			0x01A1, 25,
2872		},
2873		{ /* PHY rev 4 */
2874			{ 8, 12, 18, 23 },
2875			{ -5, 2, 6, 10 },
2876			{ 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
2877			{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
2878			0x629E,
2879			{ 0x614F, 0x614F, 0x614F, 0x614F },
2880			0x029E, 0x1084, 0x0086,
2881			0x24, 0x24, 0x24,
2882			0x0107, 25,
2883		},
2884		{ /* PHY rev 5 */
2885			{ 6, 10, 16, 21 },
2886			{ -7, 0, 4, 8 },
2887			{ 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
2888			{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
2889			0x729E,
2890			{ 0x714F, 0x714F, 0x714F, 0x714F },
2891			0x029E, 0x2084, 0x2086,
2892			0x24, 0x24, 0x24,
2893			0x00A9, 25,
2894		},
2895		{ /* PHY rev 6+ */
2896			{ 6, 10, 16, 21 },
2897			{ -7, 0, 4, 8 },
2898			{ 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD, 0xD },
2899			{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
2900			0x729E,
2901			{ 0x714F, 0x714F, 0x714F, 0x714F },
2902			0x029E, 0x2084, 0x2086,
2903			0x24, 0x24, 0x24, /* low is invalid for radio rev 11! */
2904			0x00F0, 25,
2905		},
2906	},
2907};
2908
2909static inline void assert_ntab_array_sizes(void)
2910{
2911#undef check
2912#define check(table, size)	\
2913	BUILD_BUG_ON(ARRAY_SIZE(b43_ntab_##table) != B43_NTAB_##size##_SIZE)
2914
2915	check(adjustpower0, C0_ADJPLT);
2916	check(adjustpower1, C1_ADJPLT);
2917	check(bdi, BDI);
2918	check(channelest, CHANEST);
2919	check(estimatepowerlt0, C0_ESTPLT);
2920	check(estimatepowerlt1, C1_ESTPLT);
2921	check(framelookup, FRAMELT);
2922	check(framestruct, FRAMESTRUCT);
2923	check(gainctl0, C0_GAINCTL);
2924	check(gainctl1, C1_GAINCTL);
2925	check(intlevel, INTLEVEL);
2926	check(iqlt0, C0_IQLT);
2927	check(iqlt1, C1_IQLT);
2928	check(loftlt0, C0_LOFEEDTH);
2929	check(loftlt1, C1_LOFEEDTH);
2930	check(mcs, MCS);
2931	check(noisevar10, NOISEVAR10);
2932	check(noisevar11, NOISEVAR11);
2933	check(pilot, PILOT);
2934	check(pilotlt, PILOTLT);
2935	check(tdi20a0, TDI20A0);
2936	check(tdi20a1, TDI20A1);
2937	check(tdi40a0, TDI40A0);
2938	check(tdi40a1, TDI40A1);
2939	check(tdtrn, TDTRN);
2940	check(tmap, TMAP);
2941
2942#undef check
2943}
2944
2945u32 b43_ntab_read(struct b43_wldev *dev, u32 offset)
2946{
2947	u32 type, value;
2948
2949	type = offset & B43_NTAB_TYPEMASK;
2950	offset &= ~B43_NTAB_TYPEMASK;
2951	B43_WARN_ON(offset > 0xFFFF);
2952
2953	switch (type) {
2954	case B43_NTAB_8BIT:
2955		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2956		value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF;
2957		break;
2958	case B43_NTAB_16BIT:
2959		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2960		value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
2961		break;
2962	case B43_NTAB_32BIT:
2963		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2964		value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
2965		value |= b43_phy_read(dev, B43_NPHY_TABLE_DATAHI) << 16;
2966		break;
2967	default:
2968		B43_WARN_ON(1);
2969		value = 0;
2970	}
2971
2972	return value;
2973}
2974
2975void b43_ntab_read_bulk(struct b43_wldev *dev, u32 offset,
2976			 unsigned int nr_elements, void *_data)
2977{
2978	u32 type;
2979	u8 *data = _data;
2980	unsigned int i;
2981
2982	type = offset & B43_NTAB_TYPEMASK;
2983	offset &= ~B43_NTAB_TYPEMASK;
2984	B43_WARN_ON(offset > 0xFFFF);
2985
2986	b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
2987
2988	for (i = 0; i < nr_elements; i++) {
2989		/* Auto increment broken + caching issue on BCM43224? */
2990		if (dev->dev->chip_id == 43224 && dev->dev->chip_rev == 1) {
2991			b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
2992			b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset + i);
2993		}
2994
2995		switch (type) {
2996		case B43_NTAB_8BIT:
2997			*data = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF;
2998			data++;
2999			break;
3000		case B43_NTAB_16BIT:
3001			*((u16 *)data) = b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
3002			data += 2;
3003			break;
3004		case B43_NTAB_32BIT:
3005			*((u32 *)data) =
3006				b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
3007			*((u32 *)data) |=
3008				b43_phy_read(dev, B43_NPHY_TABLE_DATAHI) << 16;
3009			data += 4;
3010			break;
3011		default:
3012			B43_WARN_ON(1);
3013		}
3014	}
3015}
3016
3017void b43_ntab_write(struct b43_wldev *dev, u32 offset, u32 value)
3018{
3019	u32 type;
3020
3021	type = offset & B43_NTAB_TYPEMASK;
3022	offset &= 0xFFFF;
3023
3024	switch (type) {
3025	case B43_NTAB_8BIT:
3026		B43_WARN_ON(value & ~0xFF);
3027		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
3028		b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
3029		break;
3030	case B43_NTAB_16BIT:
3031		B43_WARN_ON(value & ~0xFFFF);
3032		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
3033		b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
3034		break;
3035	case B43_NTAB_32BIT:
3036		b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
3037		b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16);
3038		b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value & 0xFFFF);
3039		break;
3040	default:
3041		B43_WARN_ON(1);
3042	}
3043
3044	return;
3045
3046	/* Some compiletime assertions... */
3047	assert_ntab_array_sizes();
3048}
3049
3050void b43_ntab_write_bulk(struct b43_wldev *dev, u32 offset,
3051			  unsigned int nr_elements, const void *_data)
3052{
3053	u32 type, value;
3054	const u8 *data = _data;
3055	unsigned int i;
3056
3057	type = offset & B43_NTAB_TYPEMASK;
3058	offset &= ~B43_NTAB_TYPEMASK;
3059	B43_WARN_ON(offset > 0xFFFF);
3060
3061	b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset);
3062
3063	for (i = 0; i < nr_elements; i++) {
3064		/* Auto increment broken + caching issue on BCM43224? */
3065		if ((offset >> 10) == 9 && dev->dev->chip_id == 43224 &&
3066		    dev->dev->chip_rev == 1) {
3067			b43_phy_read(dev, B43_NPHY_TABLE_DATALO);
3068			b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset + i);
3069		}
3070
3071		switch (type) {
3072		case B43_NTAB_8BIT:
3073			value = *data;
3074			data++;
3075			B43_WARN_ON(value & ~0xFF);
3076			b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
3077			break;
3078		case B43_NTAB_16BIT:
3079			value = *((u16 *)data);
3080			data += 2;
3081			B43_WARN_ON(value & ~0xFFFF);
3082			b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value);
3083			break;
3084		case B43_NTAB_32BIT:
3085			value = *((u32 *)data);
3086			data += 4;
3087			b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16);
3088			b43_phy_write(dev, B43_NPHY_TABLE_DATALO,
3089					value & 0xFFFF);
3090			break;
3091		default:
3092			B43_WARN_ON(1);
3093		}
3094	}
3095}
3096
3097#define ntab_upload(dev, offset, data) do { \
3098		b43_ntab_write_bulk(dev, offset, ARRAY_SIZE(data), data); \
3099	} while (0)
3100
3101static void b43_nphy_tables_init_rev3(struct b43_wldev *dev)
3102{
3103	struct ssb_sprom *sprom = dev->dev->bus_sprom;
3104	u8 antswlut;
3105
3106	if (b43_current_band(dev->wl) == IEEE80211_BAND_5GHZ)
3107		antswlut = sprom->fem.ghz5.antswlut;
3108	else
3109		antswlut = sprom->fem.ghz2.antswlut;
3110
3111	/* Static tables */
3112	ntab_upload(dev, B43_NTAB_FRAMESTRUCT_R3, b43_ntab_framestruct_r3);
3113	ntab_upload(dev, B43_NTAB_PILOT_R3, b43_ntab_pilot_r3);
3114	ntab_upload(dev, B43_NTAB_TMAP_R3, b43_ntab_tmap_r3);
3115	ntab_upload(dev, B43_NTAB_INTLEVEL_R3, b43_ntab_intlevel_r3);
3116	ntab_upload(dev, B43_NTAB_TDTRN_R3, b43_ntab_tdtrn_r3);
3117	ntab_upload(dev, B43_NTAB_NOISEVAR0_R3, b43_ntab_noisevar0_r3);
3118	ntab_upload(dev, B43_NTAB_NOISEVAR1_R3, b43_ntab_noisevar1_r3);
3119	ntab_upload(dev, B43_NTAB_MCS_R3, b43_ntab_mcs_r3);
3120	ntab_upload(dev, B43_NTAB_TDI20A0_R3, b43_ntab_tdi20a0_r3);
3121	ntab_upload(dev, B43_NTAB_TDI20A1_R3, b43_ntab_tdi20a1_r3);
3122	ntab_upload(dev, B43_NTAB_TDI40A0_R3, b43_ntab_tdi40a0_r3);
3123	ntab_upload(dev, B43_NTAB_TDI40A1_R3, b43_ntab_tdi40a1_r3);
3124	ntab_upload(dev, B43_NTAB_PILOTLT_R3, b43_ntab_pilotlt_r3);
3125	ntab_upload(dev, B43_NTAB_CHANEST_R3, b43_ntab_channelest_r3);
3126	ntab_upload(dev, B43_NTAB_FRAMELT_R3, b43_ntab_framelookup_r3);
3127	ntab_upload(dev, B43_NTAB_C0_ESTPLT_R3, b43_ntab_estimatepowerlt0_r3);
3128	ntab_upload(dev, B43_NTAB_C1_ESTPLT_R3, b43_ntab_estimatepowerlt1_r3);
3129	ntab_upload(dev, B43_NTAB_C0_ADJPLT_R3, b43_ntab_adjustpower0_r3);
3130	ntab_upload(dev, B43_NTAB_C1_ADJPLT_R3, b43_ntab_adjustpower1_r3);
3131	ntab_upload(dev, B43_NTAB_C0_GAINCTL_R3, b43_ntab_gainctl0_r3);
3132	ntab_upload(dev, B43_NTAB_C1_GAINCTL_R3, b43_ntab_gainctl1_r3);
3133	ntab_upload(dev, B43_NTAB_C0_IQLT_R3, b43_ntab_iqlt0_r3);
3134	ntab_upload(dev, B43_NTAB_C1_IQLT_R3, b43_ntab_iqlt1_r3);
3135	ntab_upload(dev, B43_NTAB_C0_LOFEEDTH_R3, b43_ntab_loftlt0_r3);
3136	ntab_upload(dev, B43_NTAB_C1_LOFEEDTH_R3, b43_ntab_loftlt1_r3);
3137
3138	/* Volatile tables */
3139	if (antswlut < ARRAY_SIZE(b43_ntab_antswctl_r3))
3140		ntab_upload(dev, B43_NTAB_ANT_SW_CTL_R3,
3141			    b43_ntab_antswctl_r3[antswlut]);
3142	else
3143		B43_WARN_ON(1);
3144}
3145
3146static void b43_nphy_tables_init_rev0(struct b43_wldev *dev)
3147{
3148	/* Static tables */
3149	ntab_upload(dev, B43_NTAB_FRAMESTRUCT, b43_ntab_framestruct);
3150	ntab_upload(dev, B43_NTAB_FRAMELT, b43_ntab_framelookup);
3151	ntab_upload(dev, B43_NTAB_TMAP, b43_ntab_tmap);
3152	ntab_upload(dev, B43_NTAB_TDTRN, b43_ntab_tdtrn);
3153	ntab_upload(dev, B43_NTAB_INTLEVEL, b43_ntab_intlevel);
3154	ntab_upload(dev, B43_NTAB_PILOT, b43_ntab_pilot);
3155	ntab_upload(dev, B43_NTAB_TDI20A0, b43_ntab_tdi20a0);
3156	ntab_upload(dev, B43_NTAB_TDI20A1, b43_ntab_tdi20a1);
3157	ntab_upload(dev, B43_NTAB_TDI40A0, b43_ntab_tdi40a0);
3158	ntab_upload(dev, B43_NTAB_TDI40A1, b43_ntab_tdi40a1);
3159	ntab_upload(dev, B43_NTAB_CHANEST, b43_ntab_channelest);
3160	ntab_upload(dev, B43_NTAB_MCS, b43_ntab_mcs);
3161	ntab_upload(dev, B43_NTAB_NOISEVAR10, b43_ntab_noisevar10);
3162	ntab_upload(dev, B43_NTAB_NOISEVAR11, b43_ntab_noisevar11);
3163
3164	/* Volatile tables */
3165	ntab_upload(dev, B43_NTAB_BDI, b43_ntab_bdi);
3166	ntab_upload(dev, B43_NTAB_PILOTLT, b43_ntab_pilotlt);
3167	ntab_upload(dev, B43_NTAB_C0_GAINCTL, b43_ntab_gainctl0);
3168	ntab_upload(dev, B43_NTAB_C1_GAINCTL, b43_ntab_gainctl1);
3169	ntab_upload(dev, B43_NTAB_C0_ESTPLT, b43_ntab_estimatepowerlt0);
3170	ntab_upload(dev, B43_NTAB_C1_ESTPLT, b43_ntab_estimatepowerlt1);
3171	ntab_upload(dev, B43_NTAB_C0_ADJPLT, b43_ntab_adjustpower0);
3172	ntab_upload(dev, B43_NTAB_C1_ADJPLT, b43_ntab_adjustpower1);
3173	ntab_upload(dev, B43_NTAB_C0_IQLT, b43_ntab_iqlt0);
3174	ntab_upload(dev, B43_NTAB_C1_IQLT, b43_ntab_iqlt1);
3175	ntab_upload(dev, B43_NTAB_C0_LOFEEDTH, b43_ntab_loftlt0);
3176	ntab_upload(dev, B43_NTAB_C1_LOFEEDTH, b43_ntab_loftlt1);
3177}
3178
3179/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/InitTables */
3180void b43_nphy_tables_init(struct b43_wldev *dev)
3181{
3182	if (dev->phy.rev >= 3)
3183		b43_nphy_tables_init_rev3(dev);
3184	else
3185		b43_nphy_tables_init_rev0(dev);
3186}
3187
3188/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/GetIpaGainTbl */
3189static const u32 *b43_nphy_get_ipa_gain_table(struct b43_wldev *dev)
3190{
3191	if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) {
3192		if (dev->phy.rev >= 6) {
3193			if (dev->dev->chip_id == 47162)
3194				return txpwrctrl_tx_gain_ipa_rev5;
3195			return txpwrctrl_tx_gain_ipa_rev6;
3196		} else if (dev->phy.rev >= 5) {
3197			return txpwrctrl_tx_gain_ipa_rev5;
3198		} else {
3199			return txpwrctrl_tx_gain_ipa;
3200		}
3201	} else {
3202		return txpwrctrl_tx_gain_ipa_5g;
3203	}
3204}
3205
3206const u32 *b43_nphy_get_tx_gain_table(struct b43_wldev *dev)
3207{
3208	enum ieee80211_band band = b43_current_band(dev->wl);
3209	struct ssb_sprom *sprom = dev->dev->bus_sprom;
3210
3211	if (dev->phy.rev < 3)
3212		return b43_ntab_tx_gain_rev0_1_2;
3213
3214	/* rev 3+ */
3215	if ((dev->phy.n->ipa2g_on && band == IEEE80211_BAND_2GHZ) ||
3216	    (dev->phy.n->ipa5g_on && band == IEEE80211_BAND_5GHZ)) {
3217		return b43_nphy_get_ipa_gain_table(dev);
3218	} else if (b43_current_band(dev->wl) == IEEE80211_BAND_5GHZ) {
3219		if (dev->phy.rev == 3)
3220			return b43_ntab_tx_gain_rev3_5ghz;
3221		if (dev->phy.rev == 4)
3222			return sprom->fem.ghz5.extpa_gain == 3 ?
3223				b43_ntab_tx_gain_rev4_5ghz :
3224				b43_ntab_tx_gain_rev4_5ghz; /* FIXME */
3225		else
3226			return b43_ntab_tx_gain_rev5plus_5ghz;
3227	} else {
3228		if (dev->phy.rev >= 5 && sprom->fem.ghz5.extpa_gain == 3)
3229			return b43_ntab_tx_gain_rev3plus_2ghz; /* FIXME */
3230		else
3231			return b43_ntab_tx_gain_rev3plus_2ghz;
3232	}
3233}
3234
3235struct nphy_gain_ctl_workaround_entry *b43_nphy_get_gain_ctl_workaround_ent(
3236	struct b43_wldev *dev, bool ghz5, bool ext_lna)
3237{
3238	struct nphy_gain_ctl_workaround_entry *e;
3239	u8 phy_idx;
3240
3241	if (!ghz5 && dev->phy.rev >= 6 && dev->phy.radio_rev == 11)
3242		return &nphy_gain_ctl_wa_phy6_radio11_ghz2;
3243
3244	B43_WARN_ON(dev->phy.rev < 3);
3245	if (dev->phy.rev >= 6)
3246		phy_idx = 3;
3247	else if (dev->phy.rev == 5)
3248		phy_idx = 2;
3249	else if (dev->phy.rev == 4)
3250		phy_idx = 1;
3251	else
3252		phy_idx = 0;
3253	e = &nphy_gain_ctl_workaround[ghz5][phy_idx];
3254
3255	/* Some workarounds to the workarounds... */
3256	if (ghz5 && dev->phy.rev >= 6) {
3257		if (dev->phy.radio_rev == 11 &&
3258		    !b43_channel_type_is_40mhz(dev->phy.channel_type))
3259			e->cliplo_gain = 0x2d;
3260	} else if (!ghz5 && dev->phy.rev >= 5) {
3261		static const int gain_data[] = {0x0062, 0x0064, 0x006a, 0x106a,
3262						0x106c, 0x1074, 0x107c, 0x207c};
3263		u8 tr_iso = dev->dev->bus_sprom->fem.ghz2.tr_iso;
3264
3265		if (ext_lna) {
3266			e->rfseq_init[0] &= ~0x4000;
3267			e->rfseq_init[1] &= ~0x4000;
3268			e->rfseq_init[2] &= ~0x4000;
3269			e->rfseq_init[3] &= ~0x4000;
3270			e->init_gain &= ~0x4000;
3271		}
3272		if (tr_iso > 7)
3273			tr_iso = 3;
3274		e->cliplo_gain = gain_data[tr_iso];
3275
3276	} else if (ghz5 && dev->phy.rev == 4 && ext_lna) {
3277		e->rfseq_init[0] &= ~0x4000;
3278		e->rfseq_init[1] &= ~0x4000;
3279		e->rfseq_init[2] &= ~0x4000;
3280		e->rfseq_init[3] &= ~0x4000;
3281		e->init_gain &= ~0x4000;
3282		e->rfseq_init[0] |= 0x1000;
3283		e->rfseq_init[1] |= 0x1000;
3284		e->rfseq_init[2] |= 0x1000;
3285		e->rfseq_init[3] |= 0x1000;
3286		e->init_gain |= 0x1000;
3287	}
3288
3289	return e;
3290}
3291
3292const struct nphy_rf_control_override_rev7 *b43_nphy_get_rf_ctl_over_rev7(
3293	struct b43_wldev *dev, u16 field, u8 override)
3294{
3295	const struct nphy_rf_control_override_rev7 *e;
3296	u8 size, i;
3297
3298	switch (override) {
3299	case 0:
3300		e = tbl_rf_control_override_rev7_over0;
3301		size = ARRAY_SIZE(tbl_rf_control_override_rev7_over0);
3302		break;
3303	case 1:
3304		e = tbl_rf_control_override_rev7_over1;
3305		size = ARRAY_SIZE(tbl_rf_control_override_rev7_over1);
3306		break;
3307	case 2:
3308		e = tbl_rf_control_override_rev7_over2;
3309		size = ARRAY_SIZE(tbl_rf_control_override_rev7_over2);
3310		break;
3311	default:
3312		b43err(dev->wl, "Invalid override value %d\n", override);
3313		return NULL;
3314	}
3315
3316	for (i = 0; i < size; i++) {
3317		if (e[i].field == field)
3318			return &e[i];
3319	}
3320
3321	return NULL;
3322}