1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
| /******************************************************************************
| *
| * Copyright(c) 2020 Realtek Corporation.
| *
| * This program is free software; you can redistribute it and/or modify it
| * under the terms of version 2 of the GNU General Public License as
| * published by the Free Software Foundation.
| *
| * This program is distributed in the hope that it will be useful, but WITHOUT
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
| * more details.
| *
| *****************************************************************************/
| #include "phl_headers.h"
| #include "phl_chnlplan.h"
|
| const struct chdef_2ghz chdef2g[MAX_CHDEF_2GHZ] = {
| {0, {0x00, 0x00}, {0x00, 0x00}},
| {1, {0xff, 0x1f}, {0x00, 0x18}},
| {2, {0xff, 0x1f}, {0x00, 0x00}},
| {3, {0xff, 0x07}, {0x00, 0x00}},
| {4, {0xff, 0x3f}, {0x00, 0x00}},
| {5, {0x00, 0x1e}, {0x00, 0x00}},
| {6, {0xff, 0x3f}, {0x00, 0x38}},
| };
|
|
| const struct chdef_5ghz chdef5g[MAX_CHDEF_5GHZ] = {
| {0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x00, 0x00, 0x00},
| {1, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x1f, 0x00, 0x00},
| {2, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x07}, {0x00, 0x00}, {0xff, 0x07}, 0x00, 0x00, 0x00},
| {3, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x07}, {0x00, 0x00}, {0xff, 0x07}, 0x1f, 0x00, 0x00},
| {4, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x01}, {0x00, 0x00}, {0xff, 0x01}, 0x1f, 0x00, 0x00},
| {5, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x7f, 0x00}, {0x00, 0x00}, {0x7f, 0x00}, 0x0f, 0x00, 0x00},
| {6, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
| {7, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
| {8, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x0f, 0x00, 0x00},
| {9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
| {10, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x00, 0x00, 0x00},
| {11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0xff, 0x07}, {0x00, 0x00}, {0xff, 0x07}, 0x00, 0x00, 0x00},
| {12, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x0e, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x1f, 0x00, 0x00},
| {13, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x0e, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
| {14, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x00, 0x00, 0x00},
| {15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x0f, 0x00, 0x00},
| {16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0xff, 0x07}, {0x00, 0x00}, {0x00, 0x00}, 0x00, 0x00, 0x00},
| {17, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x07}, {0x00, 0x00}, {0x00, 0x07}, 0x1f, 0x00, 0x00},
| {18, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x1f, 0x00, 0x00},
| {19, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x00, 0x00, 0x00},
| {20, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x0f, 0x00, 0x00},
| {21, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x07}, {0x00, 0x00}, {0x00, 0x07}, 0x00, 0x00, 0x00},
| {22, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x0f}, {0x00, 0x00}, {0xff, 0x0f}, 0x1f, 0x00, 0x00},
| {23, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x00}, {0x00, 0x00}, {0xff, 0x00}, 0x1f, 0x00, 0x00},
| {24, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x07}, {0xff, 0x07}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
| {25, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x07}, {0xff, 0x07}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
| {26, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x07}, {0xff, 0x07}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
| {27, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0x1f, 0x07}, {0x1f, 0x07}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
| {28, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
| {29, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
| {30, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
| {31, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x07}, {0xff, 0x07}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
| {32, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
| {33, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x0f}, {0x00, 0x00}, {0x1f, 0x0f}, 0x1f, 0x00, 0x00},
| {34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x1f, 0x00, 0x00},
| {35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x00, 0x00, 0x00},
| {36, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x0f, {0xff, 0x0f}, {0xff, 0x0f}, {0xff, 0x0f}, 0x1f, 0x1f, 0x00},
| {37, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x00, 0x00, 0x00},
| {38, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x0f}, {0x00, 0x00}, {0xff, 0x0f}, 0x00, 0x00, 0x00},
| {39, 0x0f, 0x0f, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x00}, {0x00, 0x00}, {0xff, 0x00}, 0x1f, 0x00, 0x1f},
| {40, 0x0f, 0x0f, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x1f, 0x00, 0x00},
| {41, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x07}, {0x00, 0x00}, {0xff, 0x07}, 0x1f, 0x1f, 0x00},
| {42, 0x0f, 0x0f, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x07}, {0x00, 0x00}, {0xff, 0x07}, 0x1f, 0x1f, 0x00},
| {43, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x06}, {0xff, 0x06}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
| {44, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0x1f, 0x07}, {0x1f, 0x07}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
| {45, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
| {46, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x0f, 0x00, 0x00},
| {47, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x07}, {0xff, 0x07}, {0x00, 0x00}, 0x00, 0x00, 0x00},
| {48, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x0f}, {0x00, 0x00}, {0xff, 0x0f}, 0x00, 0x00, 0x00},
| {49, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x01}, {0x00, 0x00}, {0xff, 0x01}, 0x00, 0x00, 0x00},
| {50, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x0f}, {0x00, 0x00}, {0x00, 0x0f}, 0x1f, 0x00, 0x00},
| {51, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x00}, {0x00, 0x00}, {0x1f, 0x00}, 0x00, 0x00, 0x00},
| {52, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x0f}, {0x00, 0x00}, {0xff, 0x0f}, 0xff, 0x00, 0x00},
| {53, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x0f, 0x00}, {0x00, 0x00}, {0x0f, 0x00}, 0x1f, 0x00, 0x00},
| };
|
|
| const struct regulatory_domain_mapping rdmap[MAX_RD_MAP_NUM] = {
| {0x00, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 49}},
| {0x01, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 50}},
| {0x02, {REGULATION_ETSI, 3}, {REGULATION_ETSI, 7}},
| {0x03, {REGULATION_ACMA, 2}, {REGULATION_ACMA, 33}},
| {0x04, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 51}},
| {0x05, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 6}},
| {0x06, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 7}},
| {0x07, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 23}},
| {0x08, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 21}},
| {0x09, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 17}},
| {0x1b, {REGULATION_FCC, 2}, {REGULATION_FCC, 52}},
| {0x1c, {REGULATION_KCC, 2}, {REGULATION_KCC, 53}},
| {0x20, {REGULATION_WW, 1}, {REGULATION_NA, 0}},
| {0x21, {REGULATION_ETSI, 2}, {REGULATION_NA, 0}},
| {0x22, {REGULATION_FCC, 3}, {REGULATION_NA, 0}},
| {0x23, {REGULATION_MKK, 4}, {REGULATION_NA, 0}},
| {0x24, {REGULATION_ETSI, 5}, {REGULATION_NA, 0}},
| {0x25, {REGULATION_FCC, 3}, {REGULATION_FCC, 3}},
| {0x26, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 2}},
| {0x27, {REGULATION_MKK, 4}, {REGULATION_MKK, 2}},
| {0x28, {REGULATION_KCC, 1}, {REGULATION_KCC, 5}},
| {0x29, {REGULATION_FCC, 1}, {REGULATION_FCC, 6}},
| {0x2a, {REGULATION_FCC, 2}, {REGULATION_NA, 0}},
| {0x2b, {REGULATION_IC, 2}, {REGULATION_IC, 33}},
| {0x2c, {REGULATION_MKK, 2}, {REGULATION_NA, 0}},
| {0x2d, {REGULATION_CHILE, 1}, {REGULATION_CHILE, 22}},
| {0x2e, {REGULATION_WW, 3}, {REGULATION_WW, 37}},
| {0x2f, {REGULATION_CHILE, 1}, {REGULATION_CHILE, 38}},
| {0x30, {REGULATION_FCC, 1}, {REGULATION_FCC, 7}},
| {0x31, {REGULATION_FCC, 1}, {REGULATION_FCC, 8}},
| {0x32, {REGULATION_FCC, 1}, {REGULATION_FCC, 9}},
| {0x33, {REGULATION_FCC, 1}, {REGULATION_FCC, 10}},
| {0x34, {REGULATION_FCC, 3}, {REGULATION_FCC, 1}},
| {0x35, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 3}},
| {0x36, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 4}},
| {0x37, {REGULATION_MKK, 4}, {REGULATION_MKK, 10}},
| {0x38, {REGULATION_MKK, 4}, {REGULATION_MKK, 11}},
| {0x39, {REGULATION_NCC, 3}, {REGULATION_NCC, 12}},
| {0x3a, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 2}},
| {0x3b, {REGULATION_ACMA, 2}, {REGULATION_ACMA, 1}},
| {0x3c, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 10}},
| {0x3d, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 15}},
| {0x3e, {REGULATION_KCC, 2}, {REGULATION_KCC, 3}},
| {0x3f, {REGULATION_FCC, 3}, {REGULATION_FCC, 22}},
| {0x40, {REGULATION_NCC, 3}, {REGULATION_NCC, 13}},
| {0x41, {REGULATION_WW, 6}, {REGULATION_NA, 0}},
| {0x42, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 14}},
| {0x43, {REGULATION_FCC, 3}, {REGULATION_FCC, 6}},
| {0x44, {REGULATION_NCC, 3}, {REGULATION_NCC, 9}},
| {0x45, {REGULATION_ACMA, 1}, {REGULATION_ACMA, 1}},
| {0x46, {REGULATION_FCC, 3}, {REGULATION_FCC, 15}},
| {0x47, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 10}},
| {0x48, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 7}},
| {0x49, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 6}},
| {0x4a, {REGULATION_IC, 3}, {REGULATION_IC, 33}},
| {0x4b, {REGULATION_KCC, 2}, {REGULATION_KCC, 22}},
| {0x4c, {REGULATION_FCC, 3}, {REGULATION_FCC, 28}},
| {0x4d, {REGULATION_MEX, 2}, {REGULATION_MEX, 1}},
| {0x4e, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 42}},
| {0x4f, {REGULATION_NA, 0}, {REGULATION_MKK, 43}},
| {0x50, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 16}},
| {0x51, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 9}},
| {0x52, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 17}},
| {0x53, {REGULATION_NCC, 3}, {REGULATION_NCC, 18}},
| {0x54, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 15}},
| {0x55, {REGULATION_FCC, 3}, {REGULATION_FCC, 1}},
| {0x56, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 19}},
| {0x57, {REGULATION_FCC, 3}, {REGULATION_FCC, 20}},
| {0x58, {REGULATION_MKK, 2}, {REGULATION_MKK, 14}},
| {0x59, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 21}},
| {0x5a, {REGULATION_NA, 0}, {REGULATION_FCC, 44}},
| {0x5b, {REGULATION_NA, 0}, {REGULATION_FCC, 45}},
| {0x5c, {REGULATION_NA, 0}, {REGULATION_FCC, 43}},
| {0x5d, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 8}},
| {0x5e, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 3}},
| {0x5f, {REGULATION_MKK, 2}, {REGULATION_MKK, 47}},
| {0x60, {REGULATION_FCC, 3}, {REGULATION_FCC, 9}},
| {0x61, {REGULATION_FCC, 2}, {REGULATION_FCC, 1}},
| {0x62, {REGULATION_FCC, 2}, {REGULATION_FCC, 3}},
| {0x63, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 23}},
| {0x64, {REGULATION_MKK, 2}, {REGULATION_MKK, 24}},
| {0x65, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 24}},
| {0x66, {REGULATION_FCC, 3}, {REGULATION_FCC, 27}},
| {0x67, {REGULATION_FCC, 3}, {REGULATION_FCC, 25}},
| {0x68, {REGULATION_FCC, 2}, {REGULATION_FCC, 27}},
| {0x69, {REGULATION_FCC, 2}, {REGULATION_FCC, 25}},
| {0x6a, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 25}},
| {0x6b, {REGULATION_FCC, 1}, {REGULATION_FCC, 29}},
| {0x6c, {REGULATION_FCC, 1}, {REGULATION_FCC, 26}},
| {0x6d, {REGULATION_FCC, 2}, {REGULATION_FCC, 28}},
| {0x6e, {REGULATION_FCC, 1}, {REGULATION_FCC, 25}},
| {0x6f, {REGULATION_NA, 0}, {REGULATION_ETSI, 6}},
| {0x70, {REGULATION_NA, 0}, {REGULATION_ETSI, 30}},
| {0x71, {REGULATION_NA, 0}, {REGULATION_ETSI, 25}},
| {0x72, {REGULATION_NA, 0}, {REGULATION_ETSI, 31}},
| {0x73, {REGULATION_FCC, 1}, {REGULATION_FCC, 1}},
| {0x74, {REGULATION_FCC, 2}, {REGULATION_FCC, 19}},
| {0x75, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 32}},
| {0x76, {REGULATION_FCC, 2}, {REGULATION_FCC, 22}},
| {0x77, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 34}},
| {0x78, {REGULATION_FCC, 3}, {REGULATION_FCC, 35}},
| {0x79, {REGULATION_MKK, 2}, {REGULATION_MKK, 2}},
| {0x7a, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 28}},
| {0x7b, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 46}},
| {0x7c, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 47}},
| {0x7d, {REGULATION_MKK, 4}, {REGULATION_MKK, 48}},
| {0x7e, {REGULATION_MKK, 2}, {REGULATION_MKK, 48}},
| {0x7f, {REGULATION_WW, 1}, {REGULATION_WW, 36}},
| };
|
|