Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.1-rc6 174 lines 6.0 kB view raw
1/* 2 3 Broadcom B43 wireless driver 4 IEEE 802.11n 2059 radio device data tables 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; see the file COPYING. If not, write to 18 the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor, 19 Boston, MA 02110-1301, USA. 20 21*/ 22 23#include "b43.h" 24#include "radio_2059.h" 25 26#define RADIOREGS(r00, r01, r02, r03, r04, r05, r06, r07, r08, r09, \ 27 r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, \ 28 r20, r21, r22, r23, r24, r25, r26, r27, r28) \ 29 .radio_syn16 = r00, \ 30 .radio_syn17 = r01, \ 31 .radio_syn22 = r02, \ 32 .radio_syn25 = r03, \ 33 .radio_syn27 = r04, \ 34 .radio_syn28 = r05, \ 35 .radio_syn29 = r06, \ 36 .radio_syn2c = r07, \ 37 .radio_syn2d = r08, \ 38 .radio_syn37 = r09, \ 39 .radio_syn41 = r10, \ 40 .radio_syn43 = r11, \ 41 .radio_syn47 = r12, \ 42 .radio_syn4a = r13, \ 43 .radio_syn58 = r14, \ 44 .radio_syn5a = r15, \ 45 .radio_syn6a = r16, \ 46 .radio_syn6d = r17, \ 47 .radio_syn6e = r18, \ 48 .radio_syn92 = r19, \ 49 .radio_syn98 = r20, \ 50 .radio_rxtx4a = r21, \ 51 .radio_rxtx58 = r22, \ 52 .radio_rxtx5a = r23, \ 53 .radio_rxtx6a = r24, \ 54 .radio_rxtx6d = r25, \ 55 .radio_rxtx6e = r26, \ 56 .radio_rxtx92 = r27, \ 57 .radio_rxtx98 = r28 58 59#define PHYREGS(r0, r1, r2, r3, r4, r5) \ 60 .phy_regs.bw1 = r0, \ 61 .phy_regs.bw2 = r1, \ 62 .phy_regs.bw3 = r2, \ 63 .phy_regs.bw4 = r3, \ 64 .phy_regs.bw5 = r4, \ 65 .phy_regs.bw6 = r5 66 67static const struct b43_phy_ht_channeltab_e_radio2059 b43_phy_ht_channeltab_radio2059[] = { 68 { .freq = 2412, 69 RADIOREGS(0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x6c, 70 0x09, 0x0f, 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x03, 71 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 72 0x00, 0x00, 0x00, 0xf0, 0x00), 73 PHYREGS(0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f, 0x0443), 74 }, 75 { .freq = 2417, 76 RADIOREGS(0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x71, 77 0x09, 0x0f, 0x0a, 0x00, 0x0a, 0x00, 0x61, 0x03, 78 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 79 0x00, 0x00, 0x00, 0xf0, 0x00), 80 PHYREGS(0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d, 0x0441), 81 }, 82 { .freq = 2422, 83 RADIOREGS(0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x76, 84 0x09, 0x0f, 0x09, 0x00, 0x09, 0x00, 0x61, 0x03, 85 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 86 0x00, 0x00, 0x00, 0xf0, 0x00), 87 PHYREGS(0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a, 0x043f), 88 }, 89 { .freq = 2427, 90 RADIOREGS(0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x7b, 91 0x09, 0x0f, 0x09, 0x00, 0x09, 0x00, 0x61, 0x03, 92 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 93 0x00, 0x00, 0x00, 0xf0, 0x00), 94 PHYREGS(0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438, 0x043d), 95 }, 96 { .freq = 2432, 97 RADIOREGS(0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x80, 98 0x09, 0x0f, 0x08, 0x00, 0x08, 0x00, 0x61, 0x03, 99 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 100 0x00, 0x00, 0x00, 0xf0, 0x00), 101 PHYREGS(0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436, 0x043a), 102 }, 103 { .freq = 2437, 104 RADIOREGS(0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x85, 105 0x09, 0x0f, 0x08, 0x00, 0x08, 0x00, 0x61, 0x03, 106 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 107 0x00, 0x00, 0x00, 0xf0, 0x00), 108 PHYREGS(0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434, 0x0438), 109 }, 110 { .freq = 2442, 111 RADIOREGS(0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8a, 112 0x09, 0x0f, 0x07, 0x00, 0x07, 0x00, 0x61, 0x03, 113 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 114 0x00, 0x00, 0x00, 0xf0, 0x00), 115 PHYREGS(0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431, 0x0436), 116 }, 117 { .freq = 2447, 118 RADIOREGS(0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x8f, 119 0x09, 0x0f, 0x07, 0x00, 0x07, 0x00, 0x61, 0x03, 120 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 121 0x00, 0x00, 0x00, 0xf0, 0x00), 122 PHYREGS(0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f, 0x0434), 123 }, 124 { .freq = 2452, 125 RADIOREGS(0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x94, 126 0x09, 0x0f, 0x07, 0x00, 0x07, 0x00, 0x61, 0x03, 127 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 128 0x00, 0x00, 0x00, 0xf0, 0x00), 129 PHYREGS(0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d, 0x0431), 130 }, 131 { .freq = 2457, 132 RADIOREGS(0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x99, 133 0x09, 0x0f, 0x06, 0x00, 0x06, 0x00, 0x61, 0x03, 134 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 135 0x00, 0x00, 0x00, 0xf0, 0x00), 136 PHYREGS(0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b, 0x042f), 137 }, 138 { .freq = 2462, 139 RADIOREGS(0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0x9e, 140 0x09, 0x0f, 0x06, 0x00, 0x06, 0x00, 0x61, 0x03, 141 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 142 0x00, 0x00, 0x00, 0xf0, 0x00), 143 PHYREGS(0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429, 0x042d), 144 }, 145 { .freq = 2467, 146 RADIOREGS(0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa3, 147 0x09, 0x0f, 0x05, 0x00, 0x05, 0x00, 0x61, 0x03, 148 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 149 0x00, 0x00, 0x00, 0xf0, 0x00), 150 PHYREGS(0x03df, 0x03db, 0x03d7, 0x0422, 0x0427, 0x042b), 151 }, 152 { .freq = 2472, 153 RADIOREGS(0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a, 0x30, 0xa8, 154 0x09, 0x0f, 0x05, 0x00, 0x05, 0x00, 0x61, 0x03, 155 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x61, 0x03, 156 0x00, 0x00, 0x00, 0xf0, 0x00), 157 PHYREGS(0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424, 0x0429), 158 }, 159}; 160 161const struct b43_phy_ht_channeltab_e_radio2059 162*b43_phy_ht_get_channeltab_e_r2059(struct b43_wldev *dev, u16 freq) 163{ 164 const struct b43_phy_ht_channeltab_e_radio2059 *e; 165 unsigned int i; 166 167 e = b43_phy_ht_channeltab_radio2059; 168 for (i = 0; i < ARRAY_SIZE(b43_phy_ht_channeltab_radio2059); i++, e++) { 169 if (e->freq == freq) 170 return e; 171 } 172 173 return NULL; 174}