xref: /linux/drivers/net/wireless/broadcom/b43/tables_phy_ht.c (revision 58e16d792a6a8c6b750f637a4649967fcac853dc)
1*ca47d344SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-or-later
258619b14SKalle Valo /*
358619b14SKalle Valo 
458619b14SKalle Valo   Broadcom B43 wireless driver
558619b14SKalle Valo   IEEE 802.11n HT-PHY data tables
658619b14SKalle Valo 
758619b14SKalle Valo   Copyright (c) 2011 Rafał Miłecki <zajec5@gmail.com>
858619b14SKalle Valo 
958619b14SKalle Valo 
1058619b14SKalle Valo */
1158619b14SKalle Valo 
1258619b14SKalle Valo #include "b43.h"
1358619b14SKalle Valo #include "tables_phy_ht.h"
1458619b14SKalle Valo #include "phy_common.h"
1558619b14SKalle Valo #include "phy_ht.h"
1658619b14SKalle Valo 
1758619b14SKalle Valo static const u16 b43_httab_0x12[] = {
1858619b14SKalle Valo 	0x0000, 0x0008, 0x000a, 0x0010, 0x0012, 0x0019,
1958619b14SKalle Valo 	0x001a, 0x001c, 0x0080, 0x0088, 0x008a, 0x0090,
2058619b14SKalle Valo 	0x0092, 0x0099, 0x009a, 0x009c, 0x0100, 0x0108,
2158619b14SKalle Valo 	0x010a, 0x0110, 0x0112, 0x0119, 0x011a, 0x011c,
2258619b14SKalle Valo 	0x0180, 0x0188, 0x018a, 0x0190, 0x0192, 0x0199,
2358619b14SKalle Valo 	0x019a, 0x019c, 0x0000, 0x0098, 0x00a0, 0x00a8,
2458619b14SKalle Valo 	0x009a, 0x00a2, 0x00aa, 0x0120, 0x0128, 0x0128,
2558619b14SKalle Valo 	0x0130, 0x0138, 0x0138, 0x0140, 0x0122, 0x012a,
2658619b14SKalle Valo 	0x012a, 0x0132, 0x013a, 0x013a, 0x0142, 0x01a8,
2758619b14SKalle Valo 	0x01b0, 0x01b8, 0x01b0, 0x01b8, 0x01c0, 0x01c8,
2858619b14SKalle Valo 	0x01c0, 0x01c8, 0x01d0, 0x01d0, 0x01d8, 0x01aa,
2958619b14SKalle Valo 	0x01b2, 0x01ba, 0x01b2, 0x01ba, 0x01c2, 0x01ca,
3058619b14SKalle Valo 	0x01c2, 0x01ca, 0x01d2, 0x01d2, 0x01da, 0x0001,
3158619b14SKalle Valo 	0x0002, 0x0004, 0x0009, 0x000c, 0x0011, 0x0014,
3258619b14SKalle Valo 	0x0018, 0x0020, 0x0021, 0x0022, 0x0024, 0x0081,
3358619b14SKalle Valo 	0x0082, 0x0084, 0x0089, 0x008c, 0x0091, 0x0094,
3458619b14SKalle Valo 	0x0098, 0x00a0, 0x00a1, 0x00a2, 0x00a4, 0x0007,
3558619b14SKalle Valo 	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
3658619b14SKalle Valo 	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
3758619b14SKalle Valo 	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
3858619b14SKalle Valo 	0x0007, 0x0007, 0x0007, 0x0007, 0x0007, 0x0007,
3958619b14SKalle Valo 	0x0007, 0x0007,
4058619b14SKalle Valo };
4158619b14SKalle Valo 
4258619b14SKalle Valo static const u16 b43_httab_0x27[] = {
4358619b14SKalle Valo 	0x0009, 0x000e, 0x0011, 0x0014, 0x0017, 0x001a,
4458619b14SKalle Valo 	0x001d, 0x0020, 0x0009, 0x000e, 0x0011, 0x0014,
4558619b14SKalle Valo 	0x0017, 0x001a, 0x001d, 0x0020, 0x0009, 0x000e,
4658619b14SKalle Valo 	0x0011, 0x0014, 0x0017, 0x001a, 0x001d, 0x0020,
4758619b14SKalle Valo 	0x0009, 0x000e, 0x0011, 0x0014, 0x0017, 0x001a,
4858619b14SKalle Valo 	0x001d, 0x0020,
4958619b14SKalle Valo };
5058619b14SKalle Valo 
5158619b14SKalle Valo static const u16 b43_httab_0x26[] = {
5258619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
5358619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
5458619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
5558619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
5658619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
5758619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
5858619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
5958619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
6058619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
6158619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
6258619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
6358619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
6458619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
6558619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
6658619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
6758619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
6858619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
6958619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
7058619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
7158619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
7258619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
7358619b14SKalle Valo 	0x0000, 0x0000,
7458619b14SKalle Valo };
7558619b14SKalle Valo 
7658619b14SKalle Valo static const u32 b43_httab_0x25[] = {
7758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
7858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
7958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
8058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
8158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
8258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
8358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
8458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
8558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
8658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
8758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
8858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
8958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
9058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
9158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
9258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
9358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
9458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
9558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
9658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
9758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
9858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
9958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
10058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
10158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
10258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
10358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
10458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
10558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
10658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
10758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
10858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
10958619b14SKalle Valo };
11058619b14SKalle Valo 
11158619b14SKalle Valo static const u32 b43_httab_0x2f[] = {
11258619b14SKalle Valo 	0x00035700, 0x0002cc9a, 0x00026666, 0x0001581f,
11358619b14SKalle Valo 	0x0001581f, 0x0001581f, 0x0001581f, 0x0001581f,
11458619b14SKalle Valo 	0x0001581f, 0x0001581f, 0x0001581f, 0x00035700,
11558619b14SKalle Valo 	0x0002cc9a, 0x00026666, 0x0001581f, 0x0001581f,
11658619b14SKalle Valo 	0x0001581f, 0x0001581f, 0x0001581f, 0x0001581f,
11758619b14SKalle Valo 	0x0001581f, 0x0001581f,
11858619b14SKalle Valo };
11958619b14SKalle Valo 
12058619b14SKalle Valo static const u16 b43_httab_0x1a[] = {
12158619b14SKalle Valo 	0x0055, 0x0054, 0x0054, 0x0053, 0x0052, 0x0052,
12258619b14SKalle Valo 	0x0051, 0x0051, 0x0050, 0x004f, 0x004f, 0x004e,
12358619b14SKalle Valo 	0x004e, 0x004d, 0x004c, 0x004c, 0x004b, 0x004a,
12458619b14SKalle Valo 	0x0049, 0x0049, 0x0048, 0x0047, 0x0046, 0x0046,
12558619b14SKalle Valo 	0x0045, 0x0044, 0x0043, 0x0042, 0x0041, 0x0040,
12658619b14SKalle Valo 	0x0040, 0x003f, 0x003e, 0x003d, 0x003c, 0x003a,
12758619b14SKalle Valo 	0x0039, 0x0038, 0x0037, 0x0036, 0x0035, 0x0033,
12858619b14SKalle Valo 	0x0032, 0x0031, 0x002f, 0x002e, 0x002c, 0x002b,
12958619b14SKalle Valo 	0x0029, 0x0027, 0x0025, 0x0023, 0x0021, 0x001f,
13058619b14SKalle Valo 	0x001d, 0x001a, 0x0018, 0x0015, 0x0012, 0x000e,
13158619b14SKalle Valo 	0x000b, 0x0007, 0x0002, 0x00fd,
13258619b14SKalle Valo };
13358619b14SKalle Valo 
13458619b14SKalle Valo static const u16 b43_httab_0x1b[] = {
13558619b14SKalle Valo 	0x0055, 0x0054, 0x0054, 0x0053, 0x0052, 0x0052,
13658619b14SKalle Valo 	0x0051, 0x0051, 0x0050, 0x004f, 0x004f, 0x004e,
13758619b14SKalle Valo 	0x004e, 0x004d, 0x004c, 0x004c, 0x004b, 0x004a,
13858619b14SKalle Valo 	0x0049, 0x0049, 0x0048, 0x0047, 0x0046, 0x0046,
13958619b14SKalle Valo 	0x0045, 0x0044, 0x0043, 0x0042, 0x0041, 0x0040,
14058619b14SKalle Valo 	0x0040, 0x003f, 0x003e, 0x003d, 0x003c, 0x003a,
14158619b14SKalle Valo 	0x0039, 0x0038, 0x0037, 0x0036, 0x0035, 0x0033,
14258619b14SKalle Valo 	0x0032, 0x0031, 0x002f, 0x002e, 0x002c, 0x002b,
14358619b14SKalle Valo 	0x0029, 0x0027, 0x0025, 0x0023, 0x0021, 0x001f,
14458619b14SKalle Valo 	0x001d, 0x001a, 0x0018, 0x0015, 0x0012, 0x000e,
14558619b14SKalle Valo 	0x000b, 0x0007, 0x0002, 0x00fd,
14658619b14SKalle Valo };
14758619b14SKalle Valo 
14858619b14SKalle Valo static const u16 b43_httab_0x1c[] = {
14958619b14SKalle Valo 	0x0055, 0x0054, 0x0054, 0x0053, 0x0052, 0x0052,
15058619b14SKalle Valo 	0x0051, 0x0051, 0x0050, 0x004f, 0x004f, 0x004e,
15158619b14SKalle Valo 	0x004e, 0x004d, 0x004c, 0x004c, 0x004b, 0x004a,
15258619b14SKalle Valo 	0x0049, 0x0049, 0x0048, 0x0047, 0x0046, 0x0046,
15358619b14SKalle Valo 	0x0045, 0x0044, 0x0043, 0x0042, 0x0041, 0x0040,
15458619b14SKalle Valo 	0x0040, 0x003f, 0x003e, 0x003d, 0x003c, 0x003a,
15558619b14SKalle Valo 	0x0039, 0x0038, 0x0037, 0x0036, 0x0035, 0x0033,
15658619b14SKalle Valo 	0x0032, 0x0031, 0x002f, 0x002e, 0x002c, 0x002b,
15758619b14SKalle Valo 	0x0029, 0x0027, 0x0025, 0x0023, 0x0021, 0x001f,
15858619b14SKalle Valo 	0x001d, 0x001a, 0x0018, 0x0015, 0x0012, 0x000e,
15958619b14SKalle Valo 	0x000b, 0x0007, 0x0002, 0x00fd,
16058619b14SKalle Valo };
16158619b14SKalle Valo 
16258619b14SKalle Valo static const u32 b43_httab_0x1a_0xc0[] = {
16358619b14SKalle Valo 	0x5bf70044, 0x5bf70042, 0x5bf70040, 0x5bf7003e,
16458619b14SKalle Valo 	0x5bf7003c, 0x5bf7003b, 0x5bf70039, 0x5bf70037,
16558619b14SKalle Valo 	0x5bf70036, 0x5bf70034, 0x5bf70033, 0x5bf70031,
16658619b14SKalle Valo 	0x5bf70030, 0x5ba70044, 0x5ba70042, 0x5ba70040,
16758619b14SKalle Valo 	0x5ba7003e, 0x5ba7003c, 0x5ba7003b, 0x5ba70039,
16858619b14SKalle Valo 	0x5ba70037, 0x5ba70036, 0x5ba70034, 0x5ba70033,
16958619b14SKalle Valo 	0x5b770044, 0x5b770042, 0x5b770040, 0x5b77003e,
17058619b14SKalle Valo 	0x5b77003c, 0x5b77003b, 0x5b770039, 0x5b770037,
17158619b14SKalle Valo 	0x5b770036, 0x5b770034, 0x5b770033, 0x5b770031,
17258619b14SKalle Valo 	0x5b770030, 0x5b77002f, 0x5b77002d, 0x5b77002c,
17358619b14SKalle Valo 	0x5b470044, 0x5b470042, 0x5b470040, 0x5b47003e,
17458619b14SKalle Valo 	0x5b47003c, 0x5b47003b, 0x5b470039, 0x5b470037,
17558619b14SKalle Valo 	0x5b470036, 0x5b470034, 0x5b470033, 0x5b470031,
17658619b14SKalle Valo 	0x5b470030, 0x5b47002f, 0x5b47002d, 0x5b47002c,
17758619b14SKalle Valo 	0x5b47002b, 0x5b47002a, 0x5b270044, 0x5b270042,
17858619b14SKalle Valo 	0x5b270040, 0x5b27003e, 0x5b27003c, 0x5b27003b,
17958619b14SKalle Valo 	0x5b270039, 0x5b270037, 0x5b270036, 0x5b270034,
18058619b14SKalle Valo 	0x5b270033, 0x5b270031, 0x5b270030, 0x5b27002f,
18158619b14SKalle Valo 	0x5b170044, 0x5b170042, 0x5b170040, 0x5b17003e,
18258619b14SKalle Valo 	0x5b17003c, 0x5b17003b, 0x5b170039, 0x5b170037,
18358619b14SKalle Valo 	0x5b170036, 0x5b170034, 0x5b170033, 0x5b170031,
18458619b14SKalle Valo 	0x5b170030, 0x5b17002f, 0x5b17002d, 0x5b17002c,
18558619b14SKalle Valo 	0x5b17002b, 0x5b17002a, 0x5b170028, 0x5b170027,
18658619b14SKalle Valo 	0x5b170026, 0x5b170025, 0x5b170024, 0x5b170023,
18758619b14SKalle Valo 	0x5b070044, 0x5b070042, 0x5b070040, 0x5b07003e,
18858619b14SKalle Valo 	0x5b07003c, 0x5b07003b, 0x5b070039, 0x5b070037,
18958619b14SKalle Valo 	0x5b070036, 0x5b070034, 0x5b070033, 0x5b070031,
19058619b14SKalle Valo 	0x5b070030, 0x5b07002f, 0x5b07002d, 0x5b07002c,
19158619b14SKalle Valo 	0x5b07002b, 0x5b07002a, 0x5b070028, 0x5b070027,
19258619b14SKalle Valo 	0x5b070026, 0x5b070025, 0x5b070024, 0x5b070023,
19358619b14SKalle Valo 	0x5b070022, 0x5b070021, 0x5b070020, 0x5b07001f,
19458619b14SKalle Valo 	0x5b07001e, 0x5b07001d, 0x5b07001d, 0x5b07001c,
19558619b14SKalle Valo };
19658619b14SKalle Valo 
19758619b14SKalle Valo static const u32 b43_httab_0x1a_0x140[] = {
19858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
19958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
20058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
20158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
20258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
20358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
20458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
20558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
20658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
20758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
20858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
20958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
21058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
21158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
21258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
21358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
21458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
21558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
21658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
21758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
21858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
21958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
22058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
22158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
22258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
22358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
22458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
22558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
22658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
22758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
22858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
22958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
23058619b14SKalle Valo };
23158619b14SKalle Valo 
23258619b14SKalle Valo static const u32 b43_httab_0x1b_0x140[] = {
23358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
23458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
23558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
23658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
23758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
23858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
23958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
24058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
24158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
24258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
24358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
24458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
24558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
24658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
24758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
24858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
24958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
25058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
25158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
25258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
25358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
25458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
25558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
25658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
25758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
25858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
25958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
26058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
26158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
26258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
26358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
26458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
26558619b14SKalle Valo };
26658619b14SKalle Valo 
26758619b14SKalle Valo static const u32 b43_httab_0x1c_0x140[] = {
26858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
26958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
27058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
27158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
27258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
27358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
27458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
27558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
27658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
27758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
27858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
27958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
28058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
28158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
28258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
28358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
28458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
28558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
28658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
28758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
28858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
28958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
29058619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
29158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
29258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
29358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
29458619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
29558619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
29658619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
29758619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
29858619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
29958619b14SKalle Valo 	0x00000000, 0x00000000, 0x00000000, 0x00000000,
30058619b14SKalle Valo };
30158619b14SKalle Valo 
30258619b14SKalle Valo static const u16 b43_httab_0x1a_0x1c0[] = {
30358619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
30458619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
30558619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
30658619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
30758619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
30858619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
30958619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
31058619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
31158619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
31258619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
31358619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
31458619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
31558619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
31658619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
31758619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
31858619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
31958619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
32058619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
32158619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
32258619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
32358619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
32458619b14SKalle Valo 	0x0000, 0x0000,
32558619b14SKalle Valo };
32658619b14SKalle Valo 
32758619b14SKalle Valo static const u16 b43_httab_0x1b_0x1c0[] = {
32858619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
32958619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
33058619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
33158619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
33258619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
33358619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
33458619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
33558619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
33658619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
33758619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
33858619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
33958619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
34058619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
34158619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
34258619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
34358619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
34458619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
34558619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
34658619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
34758619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
34858619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
34958619b14SKalle Valo 	0x0000, 0x0000,
35058619b14SKalle Valo };
35158619b14SKalle Valo 
35258619b14SKalle Valo static const u16 b43_httab_0x1c_0x1c0[] = {
35358619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
35458619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
35558619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
35658619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
35758619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
35858619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
35958619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
36058619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
36158619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
36258619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
36358619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
36458619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
36558619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
36658619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
36758619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
36858619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
36958619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
37058619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
37158619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
37258619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
37358619b14SKalle Valo 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
37458619b14SKalle Valo 	0x0000, 0x0000,
37558619b14SKalle Valo };
37658619b14SKalle Valo 
37758619b14SKalle Valo static const u16 b43_httab_0x1a_0x240[] = {
37858619b14SKalle Valo 	0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
37958619b14SKalle Valo 	0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
38058619b14SKalle Valo 	0x0036, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
38158619b14SKalle Valo 	0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
38258619b14SKalle Valo 	0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
38358619b14SKalle Valo 	0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
38458619b14SKalle Valo 	0x001e, 0x001e, 0x001e, 0x001e, 0x000e, 0x000e,
38558619b14SKalle Valo 	0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
38658619b14SKalle Valo 	0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
38758619b14SKalle Valo 	0x000e, 0x000e, 0x000e, 0x000e, 0x01fc, 0x01fc,
38858619b14SKalle Valo 	0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
38958619b14SKalle Valo 	0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
39058619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
39158619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
39258619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
39358619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
39458619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
39558619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
39658619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
39758619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
39858619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
39958619b14SKalle Valo 	0x01d6, 0x01d6,
40058619b14SKalle Valo };
40158619b14SKalle Valo 
40258619b14SKalle Valo static const u16 b43_httab_0x1b_0x240[] = {
40358619b14SKalle Valo 	0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
40458619b14SKalle Valo 	0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
40558619b14SKalle Valo 	0x0036, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
40658619b14SKalle Valo 	0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
40758619b14SKalle Valo 	0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
40858619b14SKalle Valo 	0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
40958619b14SKalle Valo 	0x001e, 0x001e, 0x001e, 0x001e, 0x000e, 0x000e,
41058619b14SKalle Valo 	0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
41158619b14SKalle Valo 	0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
41258619b14SKalle Valo 	0x000e, 0x000e, 0x000e, 0x000e, 0x01fc, 0x01fc,
41358619b14SKalle Valo 	0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
41458619b14SKalle Valo 	0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
41558619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
41658619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
41758619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
41858619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
41958619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
42058619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
42158619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
42258619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
42358619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
42458619b14SKalle Valo 	0x01d6, 0x01d6,
42558619b14SKalle Valo };
42658619b14SKalle Valo 
42758619b14SKalle Valo static const u16 b43_httab_0x1c_0x240[] = {
42858619b14SKalle Valo 	0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
42958619b14SKalle Valo 	0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036,
43058619b14SKalle Valo 	0x0036, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
43158619b14SKalle Valo 	0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a,
43258619b14SKalle Valo 	0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
43358619b14SKalle Valo 	0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
43458619b14SKalle Valo 	0x001e, 0x001e, 0x001e, 0x001e, 0x000e, 0x000e,
43558619b14SKalle Valo 	0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
43658619b14SKalle Valo 	0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e,
43758619b14SKalle Valo 	0x000e, 0x000e, 0x000e, 0x000e, 0x01fc, 0x01fc,
43858619b14SKalle Valo 	0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
43958619b14SKalle Valo 	0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc, 0x01fc,
44058619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
44158619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
44258619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
44358619b14SKalle Valo 	0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee, 0x01ee,
44458619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
44558619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
44658619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
44758619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
44858619b14SKalle Valo 	0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6, 0x01d6,
44958619b14SKalle Valo 	0x01d6, 0x01d6,
45058619b14SKalle Valo };
45158619b14SKalle Valo 
45258619b14SKalle Valo static const u32 b43_httab_0x1f[] = {
45358619b14SKalle Valo 	0x00000000, 0x00000000, 0x00016023, 0x00006028,
45458619b14SKalle Valo 	0x00034036, 0x0003402e, 0x0007203c, 0x0006e037,
45558619b14SKalle Valo 	0x00070030, 0x0009401f, 0x0009a00f, 0x000b600d,
45658619b14SKalle Valo 	0x000c8007, 0x000ce007, 0x00101fff, 0x00121ff9,
45758619b14SKalle Valo 	0x0012e004, 0x0014dffc, 0x0016dff6, 0x0018dfe9,
45858619b14SKalle Valo 	0x001b3fe5, 0x001c5fd0, 0x001ddfc2, 0x001f1fb6,
45958619b14SKalle Valo 	0x00207fa4, 0x00219f8f, 0x0022ff7d, 0x00247f6c,
46058619b14SKalle Valo 	0x0024df5b, 0x00267f4b, 0x0027df3b, 0x0029bf3b,
46158619b14SKalle Valo 	0x002b5f2f, 0x002d3f2e, 0x002f5f2a, 0x002fff15,
46258619b14SKalle Valo 	0x00315f0b, 0x0032defa, 0x0033beeb, 0x0034fed9,
46358619b14SKalle Valo 	0x00353ec5, 0x00361eb0, 0x00363e9b, 0x0036be87,
46458619b14SKalle Valo 	0x0036be70, 0x0038fe67, 0x0044beb2, 0x00513ef3,
46558619b14SKalle Valo 	0x00595f11, 0x00669f3d, 0x0078dfdf, 0x00a143aa,
46658619b14SKalle Valo 	0x01642fff, 0x0162afff, 0x01620fff, 0x0160cfff,
46758619b14SKalle Valo 	0x015f0fff, 0x015dafff, 0x015bcfff, 0x015bcfff,
46858619b14SKalle Valo 	0x015b4fff, 0x015acfff, 0x01590fff, 0x0156cfff,
46958619b14SKalle Valo };
47058619b14SKalle Valo 
47158619b14SKalle Valo static const u32 b43_httab_0x21[] = {
47258619b14SKalle Valo 	0x00000000, 0x00000000, 0x00016023, 0x00006028,
47358619b14SKalle Valo 	0x00034036, 0x0003402e, 0x0007203c, 0x0006e037,
47458619b14SKalle Valo 	0x00070030, 0x0009401f, 0x0009a00f, 0x000b600d,
47558619b14SKalle Valo 	0x000c8007, 0x000ce007, 0x00101fff, 0x00121ff9,
47658619b14SKalle Valo 	0x0012e004, 0x0014dffc, 0x0016dff6, 0x0018dfe9,
47758619b14SKalle Valo 	0x001b3fe5, 0x001c5fd0, 0x001ddfc2, 0x001f1fb6,
47858619b14SKalle Valo 	0x00207fa4, 0x00219f8f, 0x0022ff7d, 0x00247f6c,
47958619b14SKalle Valo 	0x0024df5b, 0x00267f4b, 0x0027df3b, 0x0029bf3b,
48058619b14SKalle Valo 	0x002b5f2f, 0x002d3f2e, 0x002f5f2a, 0x002fff15,
48158619b14SKalle Valo 	0x00315f0b, 0x0032defa, 0x0033beeb, 0x0034fed9,
48258619b14SKalle Valo 	0x00353ec5, 0x00361eb0, 0x00363e9b, 0x0036be87,
48358619b14SKalle Valo 	0x0036be70, 0x0038fe67, 0x0044beb2, 0x00513ef3,
48458619b14SKalle Valo 	0x00595f11, 0x00669f3d, 0x0078dfdf, 0x00a143aa,
48558619b14SKalle Valo 	0x01642fff, 0x0162afff, 0x01620fff, 0x0160cfff,
48658619b14SKalle Valo 	0x015f0fff, 0x015dafff, 0x015bcfff, 0x015bcfff,
48758619b14SKalle Valo 	0x015b4fff, 0x015acfff, 0x01590fff, 0x0156cfff,
48858619b14SKalle Valo };
48958619b14SKalle Valo 
49058619b14SKalle Valo static const u32 b43_httab_0x23[] = {
49158619b14SKalle Valo 	0x00000000, 0x00000000, 0x00016023, 0x00006028,
49258619b14SKalle Valo 	0x00034036, 0x0003402e, 0x0007203c, 0x0006e037,
49358619b14SKalle Valo 	0x00070030, 0x0009401f, 0x0009a00f, 0x000b600d,
49458619b14SKalle Valo 	0x000c8007, 0x000ce007, 0x00101fff, 0x00121ff9,
49558619b14SKalle Valo 	0x0012e004, 0x0014dffc, 0x0016dff6, 0x0018dfe9,
49658619b14SKalle Valo 	0x001b3fe5, 0x001c5fd0, 0x001ddfc2, 0x001f1fb6,
49758619b14SKalle Valo 	0x00207fa4, 0x00219f8f, 0x0022ff7d, 0x00247f6c,
49858619b14SKalle Valo 	0x0024df5b, 0x00267f4b, 0x0027df3b, 0x0029bf3b,
49958619b14SKalle Valo 	0x002b5f2f, 0x002d3f2e, 0x002f5f2a, 0x002fff15,
50058619b14SKalle Valo 	0x00315f0b, 0x0032defa, 0x0033beeb, 0x0034fed9,
50158619b14SKalle Valo 	0x00353ec5, 0x00361eb0, 0x00363e9b, 0x0036be87,
50258619b14SKalle Valo 	0x0036be70, 0x0038fe67, 0x0044beb2, 0x00513ef3,
50358619b14SKalle Valo 	0x00595f11, 0x00669f3d, 0x0078dfdf, 0x00a143aa,
50458619b14SKalle Valo 	0x01642fff, 0x0162afff, 0x01620fff, 0x0160cfff,
50558619b14SKalle Valo 	0x015f0fff, 0x015dafff, 0x015bcfff, 0x015bcfff,
50658619b14SKalle Valo 	0x015b4fff, 0x015acfff, 0x01590fff, 0x0156cfff,
50758619b14SKalle Valo };
50858619b14SKalle Valo 
50958619b14SKalle Valo static const u32 b43_httab_0x20[] = {
51058619b14SKalle Valo 	0x0b5e002d, 0x0ae2002f, 0x0a3b0032, 0x09a70035,
51158619b14SKalle Valo 	0x09220038, 0x08ab003b, 0x081f003f, 0x07a20043,
51258619b14SKalle Valo 	0x07340047, 0x06d2004b, 0x067a004f, 0x06170054,
51358619b14SKalle Valo 	0x05bf0059, 0x0571005e, 0x051e0064, 0x04d3006a,
51458619b14SKalle Valo 	0x04910070, 0x044c0077, 0x040f007e, 0x03d90085,
51558619b14SKalle Valo 	0x03a1008d, 0x036f0095, 0x033d009e, 0x030b00a8,
51658619b14SKalle Valo 	0x02e000b2, 0x02b900bc, 0x029200c7, 0x026d00d3,
51758619b14SKalle Valo 	0x024900e0, 0x022900ed, 0x020a00fb, 0x01ec010a,
51858619b14SKalle Valo 	0x01d20119, 0x01b7012a, 0x019e013c, 0x0188014e,
51958619b14SKalle Valo 	0x01720162, 0x015d0177, 0x0149018e, 0x013701a5,
52058619b14SKalle Valo 	0x012601be, 0x011501d8, 0x010601f4, 0x00f70212,
52158619b14SKalle Valo 	0x00e90231, 0x00dc0253, 0x00d00276, 0x00c4029b,
52258619b14SKalle Valo 	0x00b902c3, 0x00af02ed, 0x00a50319, 0x009c0348,
52358619b14SKalle Valo 	0x0093037a, 0x008b03af, 0x008303e6, 0x007c0422,
52458619b14SKalle Valo 	0x00750460, 0x006e04a3, 0x006804e9, 0x00620533,
52558619b14SKalle Valo 	0x005d0582, 0x005805d6, 0x0053062e, 0x004e068c,
52658619b14SKalle Valo };
52758619b14SKalle Valo 
52858619b14SKalle Valo static const u32 b43_httab_0x22[] = {
52958619b14SKalle Valo 	0x0b5e002d, 0x0ae2002f, 0x0a3b0032, 0x09a70035,
53058619b14SKalle Valo 	0x09220038, 0x08ab003b, 0x081f003f, 0x07a20043,
53158619b14SKalle Valo 	0x07340047, 0x06d2004b, 0x067a004f, 0x06170054,
53258619b14SKalle Valo 	0x05bf0059, 0x0571005e, 0x051e0064, 0x04d3006a,
53358619b14SKalle Valo 	0x04910070, 0x044c0077, 0x040f007e, 0x03d90085,
53458619b14SKalle Valo 	0x03a1008d, 0x036f0095, 0x033d009e, 0x030b00a8,
53558619b14SKalle Valo 	0x02e000b2, 0x02b900bc, 0x029200c7, 0x026d00d3,
53658619b14SKalle Valo 	0x024900e0, 0x022900ed, 0x020a00fb, 0x01ec010a,
53758619b14SKalle Valo 	0x01d20119, 0x01b7012a, 0x019e013c, 0x0188014e,
53858619b14SKalle Valo 	0x01720162, 0x015d0177, 0x0149018e, 0x013701a5,
53958619b14SKalle Valo 	0x012601be, 0x011501d8, 0x010601f4, 0x00f70212,
54058619b14SKalle Valo 	0x00e90231, 0x00dc0253, 0x00d00276, 0x00c4029b,
54158619b14SKalle Valo 	0x00b902c3, 0x00af02ed, 0x00a50319, 0x009c0348,
54258619b14SKalle Valo 	0x0093037a, 0x008b03af, 0x008303e6, 0x007c0422,
54358619b14SKalle Valo 	0x00750460, 0x006e04a3, 0x006804e9, 0x00620533,
54458619b14SKalle Valo 	0x005d0582, 0x005805d6, 0x0053062e, 0x004e068c,
54558619b14SKalle Valo };
54658619b14SKalle Valo 
54758619b14SKalle Valo static const u32 b43_httab_0x24[] = {
54858619b14SKalle Valo 	0x0b5e002d, 0x0ae2002f, 0x0a3b0032, 0x09a70035,
54958619b14SKalle Valo 	0x09220038, 0x08ab003b, 0x081f003f, 0x07a20043,
55058619b14SKalle Valo 	0x07340047, 0x06d2004b, 0x067a004f, 0x06170054,
55158619b14SKalle Valo 	0x05bf0059, 0x0571005e, 0x051e0064, 0x04d3006a,
55258619b14SKalle Valo 	0x04910070, 0x044c0077, 0x040f007e, 0x03d90085,
55358619b14SKalle Valo 	0x03a1008d, 0x036f0095, 0x033d009e, 0x030b00a8,
55458619b14SKalle Valo 	0x02e000b2, 0x02b900bc, 0x029200c7, 0x026d00d3,
55558619b14SKalle Valo 	0x024900e0, 0x022900ed, 0x020a00fb, 0x01ec010a,
55658619b14SKalle Valo 	0x01d20119, 0x01b7012a, 0x019e013c, 0x0188014e,
55758619b14SKalle Valo 	0x01720162, 0x015d0177, 0x0149018e, 0x013701a5,
55858619b14SKalle Valo 	0x012601be, 0x011501d8, 0x010601f4, 0x00f70212,
55958619b14SKalle Valo 	0x00e90231, 0x00dc0253, 0x00d00276, 0x00c4029b,
56058619b14SKalle Valo 	0x00b902c3, 0x00af02ed, 0x00a50319, 0x009c0348,
56158619b14SKalle Valo 	0x0093037a, 0x008b03af, 0x008303e6, 0x007c0422,
56258619b14SKalle Valo 	0x00750460, 0x006e04a3, 0x006804e9, 0x00620533,
56358619b14SKalle Valo 	0x005d0582, 0x005805d6, 0x0053062e, 0x004e068c,
56458619b14SKalle Valo };
56558619b14SKalle Valo 
56658619b14SKalle Valo /* Some late-init table */
56758619b14SKalle Valo const u32 b43_httab_0x1a_0xc0_late[] = {
56858619b14SKalle Valo 	0x10f90040, 0x10e10040, 0x10e1003c, 0x10c9003d,
56958619b14SKalle Valo 	0x10b9003c, 0x10a9003d, 0x10a1003c, 0x1099003b,
57058619b14SKalle Valo 	0x1091003b, 0x1089003a, 0x1081003a, 0x10790039,
57158619b14SKalle Valo 	0x10710039, 0x1069003a, 0x1061003b, 0x1059003d,
57258619b14SKalle Valo 	0x1051003f, 0x10490042, 0x1049003e, 0x1049003b,
57358619b14SKalle Valo 	0x1041003e, 0x1041003b, 0x1039003e, 0x1039003b,
57458619b14SKalle Valo 	0x10390038, 0x10390035, 0x1031003a, 0x10310036,
57558619b14SKalle Valo 	0x10310033, 0x1029003a, 0x10290037, 0x10290034,
57658619b14SKalle Valo 	0x10290031, 0x10210039, 0x10210036, 0x10210033,
57758619b14SKalle Valo 	0x10210030, 0x1019003c, 0x10190039, 0x10190036,
57858619b14SKalle Valo 	0x10190033, 0x10190030, 0x1019002d, 0x1019002b,
57958619b14SKalle Valo 	0x10190028, 0x1011003a, 0x10110036, 0x10110033,
58058619b14SKalle Valo 	0x10110030, 0x1011002e, 0x1011002b, 0x10110029,
58158619b14SKalle Valo 	0x10110027, 0x10110024, 0x10110022, 0x10110020,
58258619b14SKalle Valo 	0x1011001f, 0x1011001d, 0x1009003a, 0x10090037,
58358619b14SKalle Valo 	0x10090034, 0x10090031, 0x1009002e, 0x1009002c,
58458619b14SKalle Valo 	0x10090029, 0x10090027, 0x10090025, 0x10090023,
58558619b14SKalle Valo 	0x10090021, 0x1009001f, 0x1009001d, 0x1009001b,
58658619b14SKalle Valo 	0x1009001a, 0x10090018, 0x10090017, 0x10090016,
58758619b14SKalle Valo 	0x10090015, 0x10090013, 0x10090012, 0x10090011,
58858619b14SKalle Valo 	0x10090010, 0x1009000f, 0x1009000f, 0x1009000e,
58958619b14SKalle Valo 	0x1009000d, 0x1009000c, 0x1009000c, 0x1009000b,
59058619b14SKalle Valo 	0x1009000a, 0x1009000a, 0x10090009, 0x10090009,
59158619b14SKalle Valo 	0x10090008, 0x10090008, 0x10090007, 0x10090007,
59258619b14SKalle Valo 	0x10090007, 0x10090006, 0x10090006, 0x10090005,
59358619b14SKalle Valo 	0x10090005, 0x10090005, 0x10090005, 0x10090004,
59458619b14SKalle Valo 	0x10090004, 0x10090004, 0x10090004, 0x10090003,
59558619b14SKalle Valo 	0x10090003, 0x10090003, 0x10090003, 0x10090003,
59658619b14SKalle Valo 	0x10090003, 0x10090002, 0x10090002, 0x10090002,
59758619b14SKalle Valo 	0x10090002, 0x10090002, 0x10090002, 0x10090002,
59858619b14SKalle Valo 	0x10090002, 0x10090002, 0x10090001, 0x10090001,
59958619b14SKalle Valo 	0x10090001, 0x10090001, 0x10090001, 0x10090001,
60058619b14SKalle Valo };
60158619b14SKalle Valo 
60258619b14SKalle Valo /**************************************************
60358619b14SKalle Valo  * R/W ops.
60458619b14SKalle Valo  **************************************************/
60558619b14SKalle Valo 
b43_httab_read(struct b43_wldev * dev,u32 offset)60658619b14SKalle Valo u32 b43_httab_read(struct b43_wldev *dev, u32 offset)
60758619b14SKalle Valo {
60858619b14SKalle Valo 	u32 type, value;
60958619b14SKalle Valo 
61058619b14SKalle Valo 	type = offset & B43_HTTAB_TYPEMASK;
61158619b14SKalle Valo 	offset &= ~B43_HTTAB_TYPEMASK;
61258619b14SKalle Valo 	B43_WARN_ON(offset > 0xFFFF);
61358619b14SKalle Valo 
61458619b14SKalle Valo 	switch (type) {
61558619b14SKalle Valo 	case B43_HTTAB_8BIT:
61658619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
61758619b14SKalle Valo 		value = b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO) & 0xFF;
61858619b14SKalle Valo 		break;
61958619b14SKalle Valo 	case B43_HTTAB_16BIT:
62058619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
62158619b14SKalle Valo 		value = b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO);
62258619b14SKalle Valo 		break;
62358619b14SKalle Valo 	case B43_HTTAB_32BIT:
62458619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
62558619b14SKalle Valo 		value = b43_phy_read(dev, B43_PHY_HT_TABLE_DATAHI);
62658619b14SKalle Valo 		value <<= 16;
62758619b14SKalle Valo 		value |= b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO);
62858619b14SKalle Valo 		break;
62958619b14SKalle Valo 	default:
63058619b14SKalle Valo 		B43_WARN_ON(1);
63158619b14SKalle Valo 		value = 0;
63258619b14SKalle Valo 	}
63358619b14SKalle Valo 
63458619b14SKalle Valo 	return value;
63558619b14SKalle Valo }
63658619b14SKalle Valo 
b43_httab_read_bulk(struct b43_wldev * dev,u32 offset,unsigned int nr_elements,void * _data)63758619b14SKalle Valo void b43_httab_read_bulk(struct b43_wldev *dev, u32 offset,
63858619b14SKalle Valo 			 unsigned int nr_elements, void *_data)
63958619b14SKalle Valo {
64058619b14SKalle Valo 	u32 type;
64158619b14SKalle Valo 	u8 *data = _data;
64258619b14SKalle Valo 	unsigned int i;
64358619b14SKalle Valo 
64458619b14SKalle Valo 	type = offset & B43_HTTAB_TYPEMASK;
64558619b14SKalle Valo 	offset &= ~B43_HTTAB_TYPEMASK;
64658619b14SKalle Valo 	B43_WARN_ON(offset > 0xFFFF);
64758619b14SKalle Valo 
64858619b14SKalle Valo 	b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
64958619b14SKalle Valo 
65058619b14SKalle Valo 	for (i = 0; i < nr_elements; i++) {
65158619b14SKalle Valo 		switch (type) {
65258619b14SKalle Valo 		case B43_HTTAB_8BIT:
65358619b14SKalle Valo 			*data = b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO) & 0xFF;
65458619b14SKalle Valo 			data++;
65558619b14SKalle Valo 			break;
65658619b14SKalle Valo 		case B43_HTTAB_16BIT:
65758619b14SKalle Valo 			*((u16 *)data) = b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO);
65858619b14SKalle Valo 			data += 2;
65958619b14SKalle Valo 			break;
66058619b14SKalle Valo 		case B43_HTTAB_32BIT:
66158619b14SKalle Valo 			*((u32 *)data) = b43_phy_read(dev, B43_PHY_HT_TABLE_DATAHI);
66258619b14SKalle Valo 			*((u32 *)data) <<= 16;
66358619b14SKalle Valo 			*((u32 *)data) |= b43_phy_read(dev, B43_PHY_HT_TABLE_DATALO);
66458619b14SKalle Valo 			data += 4;
66558619b14SKalle Valo 			break;
66658619b14SKalle Valo 		default:
66758619b14SKalle Valo 			B43_WARN_ON(1);
66858619b14SKalle Valo 		}
66958619b14SKalle Valo 	}
67058619b14SKalle Valo }
67158619b14SKalle Valo 
b43_httab_write(struct b43_wldev * dev,u32 offset,u32 value)67258619b14SKalle Valo void b43_httab_write(struct b43_wldev *dev, u32 offset, u32 value)
67358619b14SKalle Valo {
67458619b14SKalle Valo 	u32 type;
67558619b14SKalle Valo 
67658619b14SKalle Valo 	type = offset & B43_HTTAB_TYPEMASK;
67758619b14SKalle Valo 	offset &= 0xFFFF;
67858619b14SKalle Valo 
67958619b14SKalle Valo 	switch (type) {
68058619b14SKalle Valo 	case B43_HTTAB_8BIT:
68158619b14SKalle Valo 		B43_WARN_ON(value & ~0xFF);
68258619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
68358619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value);
68458619b14SKalle Valo 		break;
68558619b14SKalle Valo 	case B43_HTTAB_16BIT:
68658619b14SKalle Valo 		B43_WARN_ON(value & ~0xFFFF);
68758619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
68858619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value);
68958619b14SKalle Valo 		break;
69058619b14SKalle Valo 	case B43_HTTAB_32BIT:
69158619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
69258619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_DATAHI, value >> 16);
69358619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value & 0xFFFF);
69458619b14SKalle Valo 		break;
69558619b14SKalle Valo 	default:
69658619b14SKalle Valo 		B43_WARN_ON(1);
69758619b14SKalle Valo 	}
69858619b14SKalle Valo 
69958619b14SKalle Valo 	return;
70058619b14SKalle Valo }
70158619b14SKalle Valo 
b43_httab_write_few(struct b43_wldev * dev,u32 offset,size_t num,...)70258619b14SKalle Valo void b43_httab_write_few(struct b43_wldev *dev, u32 offset, size_t num, ...)
70358619b14SKalle Valo {
70458619b14SKalle Valo 	va_list args;
70558619b14SKalle Valo 	u32 type, value;
70658619b14SKalle Valo 	unsigned int i;
70758619b14SKalle Valo 
70858619b14SKalle Valo 	type = offset & B43_HTTAB_TYPEMASK;
70958619b14SKalle Valo 	offset &= 0xFFFF;
71058619b14SKalle Valo 
71158619b14SKalle Valo 	va_start(args, num);
71258619b14SKalle Valo 	switch (type) {
71358619b14SKalle Valo 	case B43_HTTAB_8BIT:
71458619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
71558619b14SKalle Valo 		for (i = 0; i < num; i++) {
71658619b14SKalle Valo 			value = va_arg(args, int);
71758619b14SKalle Valo 			B43_WARN_ON(value & ~0xFF);
71858619b14SKalle Valo 			b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value);
71958619b14SKalle Valo 		}
72058619b14SKalle Valo 		break;
72158619b14SKalle Valo 	case B43_HTTAB_16BIT:
72258619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
72358619b14SKalle Valo 		for (i = 0; i < num; i++) {
72458619b14SKalle Valo 			value = va_arg(args, int);
72558619b14SKalle Valo 			B43_WARN_ON(value & ~0xFFFF);
72658619b14SKalle Valo 			b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value);
72758619b14SKalle Valo 		}
72858619b14SKalle Valo 		break;
72958619b14SKalle Valo 	case B43_HTTAB_32BIT:
73058619b14SKalle Valo 		b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
73158619b14SKalle Valo 		for (i = 0; i < num; i++) {
73258619b14SKalle Valo 			value = va_arg(args, int);
73358619b14SKalle Valo 			b43_phy_write(dev, B43_PHY_HT_TABLE_DATAHI,
73458619b14SKalle Valo 				      value >> 16);
73558619b14SKalle Valo 			b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO,
73658619b14SKalle Valo 				      value & 0xFFFF);
73758619b14SKalle Valo 		}
73858619b14SKalle Valo 		break;
73958619b14SKalle Valo 	default:
74058619b14SKalle Valo 		B43_WARN_ON(1);
74158619b14SKalle Valo 	}
74258619b14SKalle Valo 	va_end(args);
74358619b14SKalle Valo 
74458619b14SKalle Valo 	return;
74558619b14SKalle Valo }
74658619b14SKalle Valo 
b43_httab_write_bulk(struct b43_wldev * dev,u32 offset,unsigned int nr_elements,const void * _data)74758619b14SKalle Valo void b43_httab_write_bulk(struct b43_wldev *dev, u32 offset,
74858619b14SKalle Valo 			  unsigned int nr_elements, const void *_data)
74958619b14SKalle Valo {
75058619b14SKalle Valo 	u32 type, value;
75158619b14SKalle Valo 	const u8 *data = _data;
75258619b14SKalle Valo 	unsigned int i;
75358619b14SKalle Valo 
75458619b14SKalle Valo 	type = offset & B43_HTTAB_TYPEMASK;
75558619b14SKalle Valo 	offset &= ~B43_HTTAB_TYPEMASK;
75658619b14SKalle Valo 	B43_WARN_ON(offset > 0xFFFF);
75758619b14SKalle Valo 
75858619b14SKalle Valo 	b43_phy_write(dev, B43_PHY_HT_TABLE_ADDR, offset);
75958619b14SKalle Valo 
76058619b14SKalle Valo 	for (i = 0; i < nr_elements; i++) {
76158619b14SKalle Valo 		switch (type) {
76258619b14SKalle Valo 		case B43_HTTAB_8BIT:
76358619b14SKalle Valo 			value = *data;
76458619b14SKalle Valo 			data++;
76558619b14SKalle Valo 			B43_WARN_ON(value & ~0xFF);
76658619b14SKalle Valo 			b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value);
76758619b14SKalle Valo 			break;
76858619b14SKalle Valo 		case B43_HTTAB_16BIT:
76958619b14SKalle Valo 			value = *((u16 *)data);
77058619b14SKalle Valo 			data += 2;
77158619b14SKalle Valo 			B43_WARN_ON(value & ~0xFFFF);
77258619b14SKalle Valo 			b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO, value);
77358619b14SKalle Valo 			break;
77458619b14SKalle Valo 		case B43_HTTAB_32BIT:
77558619b14SKalle Valo 			value = *((u32 *)data);
77658619b14SKalle Valo 			data += 4;
77758619b14SKalle Valo 			b43_phy_write(dev, B43_PHY_HT_TABLE_DATAHI, value >> 16);
77858619b14SKalle Valo 			b43_phy_write(dev, B43_PHY_HT_TABLE_DATALO,
77958619b14SKalle Valo 					value & 0xFFFF);
78058619b14SKalle Valo 			break;
78158619b14SKalle Valo 		default:
78258619b14SKalle Valo 			B43_WARN_ON(1);
78358619b14SKalle Valo 		}
78458619b14SKalle Valo 	}
78558619b14SKalle Valo }
78658619b14SKalle Valo 
78758619b14SKalle Valo /**************************************************
78858619b14SKalle Valo  * Tables ops.
78958619b14SKalle Valo  **************************************************/
79058619b14SKalle Valo 
79158619b14SKalle Valo #define httab_upload(dev, offset, data) do { \
79258619b14SKalle Valo 		b43_httab_write_bulk(dev, offset, ARRAY_SIZE(data), data); \
79358619b14SKalle Valo 	} while (0)
b43_phy_ht_tables_init(struct b43_wldev * dev)79458619b14SKalle Valo void b43_phy_ht_tables_init(struct b43_wldev *dev)
79558619b14SKalle Valo {
79658619b14SKalle Valo 	BUILD_BUG_ON(ARRAY_SIZE(b43_httab_0x1a_0xc0_late) !=
79758619b14SKalle Valo 			B43_HTTAB_1A_C0_LATE_SIZE);
79858619b14SKalle Valo 
79958619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x12, 0), b43_httab_0x12);
80058619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x27, 0), b43_httab_0x27);
80158619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x26, 0), b43_httab_0x26);
80258619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x25, 0), b43_httab_0x25);
80358619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x2f, 0), b43_httab_0x2f);
80458619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x1a, 0), b43_httab_0x1a);
80558619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x1b, 0), b43_httab_0x1b);
80658619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x1c, 0), b43_httab_0x1c);
80758619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x1a, 0x0c0), b43_httab_0x1a_0xc0);
80858619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x1a, 0x140), b43_httab_0x1a_0x140);
80958619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x1b, 0x140), b43_httab_0x1b_0x140);
81058619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x1c, 0x140), b43_httab_0x1c_0x140);
81158619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x1a, 0x1c0), b43_httab_0x1a_0x1c0);
81258619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x1b, 0x1c0), b43_httab_0x1b_0x1c0);
81358619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x1c, 0x1c0), b43_httab_0x1c_0x1c0);
81458619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x1a, 0x240), b43_httab_0x1a_0x240);
81558619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x1b, 0x240), b43_httab_0x1b_0x240);
81658619b14SKalle Valo 	httab_upload(dev, B43_HTTAB16(0x1c, 0x240), b43_httab_0x1c_0x240);
81758619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x1f, 0), b43_httab_0x1f);
81858619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x21, 0), b43_httab_0x21);
81958619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x23, 0), b43_httab_0x23);
82058619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x20, 0), b43_httab_0x20);
82158619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x22, 0), b43_httab_0x22);
82258619b14SKalle Valo 	httab_upload(dev, B43_HTTAB32(0x24, 0), b43_httab_0x24);
82358619b14SKalle Valo }
824