regd_common.h 61 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915
  1. /*
  2. * Copyright (c) 2008 Atheros Communications Inc.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for any
  5. * purpose with or without fee is hereby granted, provided that the above
  6. * copyright notice and this permission notice appear in all copies.
  7. *
  8. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  9. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  10. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  11. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  12. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  13. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  14. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. */
  16. #ifndef REGD_COMMON_H
  17. #define REGD_COMMON_H
  18. enum EnumRd {
  19. NO_ENUMRD = 0x00,
  20. NULL1_WORLD = 0x03,
  21. NULL1_ETSIB = 0x07,
  22. NULL1_ETSIC = 0x08,
  23. FCC1_FCCA = 0x10,
  24. FCC1_WORLD = 0x11,
  25. FCC4_FCCA = 0x12,
  26. FCC5_FCCA = 0x13,
  27. FCC6_FCCA = 0x14,
  28. FCC2_FCCA = 0x20,
  29. FCC2_WORLD = 0x21,
  30. FCC2_ETSIC = 0x22,
  31. FCC6_WORLD = 0x23,
  32. FRANCE_RES = 0x31,
  33. FCC3_FCCA = 0x3A,
  34. FCC3_WORLD = 0x3B,
  35. ETSI1_WORLD = 0x37,
  36. ETSI3_ETSIA = 0x32,
  37. ETSI2_WORLD = 0x35,
  38. ETSI3_WORLD = 0x36,
  39. ETSI4_WORLD = 0x30,
  40. ETSI4_ETSIC = 0x38,
  41. ETSI5_WORLD = 0x39,
  42. ETSI6_WORLD = 0x34,
  43. ETSI_RESERVED = 0x33,
  44. MKK1_MKKA = 0x40,
  45. MKK1_MKKB = 0x41,
  46. APL4_WORLD = 0x42,
  47. MKK2_MKKA = 0x43,
  48. APL_RESERVED = 0x44,
  49. APL2_WORLD = 0x45,
  50. APL2_APLC = 0x46,
  51. APL3_WORLD = 0x47,
  52. MKK1_FCCA = 0x48,
  53. APL2_APLD = 0x49,
  54. MKK1_MKKA1 = 0x4A,
  55. MKK1_MKKA2 = 0x4B,
  56. MKK1_MKKC = 0x4C,
  57. APL3_FCCA = 0x50,
  58. APL1_WORLD = 0x52,
  59. APL1_FCCA = 0x53,
  60. APL1_APLA = 0x54,
  61. APL1_ETSIC = 0x55,
  62. APL2_ETSIC = 0x56,
  63. APL5_WORLD = 0x58,
  64. APL6_WORLD = 0x5B,
  65. APL7_FCCA = 0x5C,
  66. APL8_WORLD = 0x5D,
  67. APL9_WORLD = 0x5E,
  68. WOR0_WORLD = 0x60,
  69. WOR1_WORLD = 0x61,
  70. WOR2_WORLD = 0x62,
  71. WOR3_WORLD = 0x63,
  72. WOR4_WORLD = 0x64,
  73. WOR5_ETSIC = 0x65,
  74. WOR01_WORLD = 0x66,
  75. WOR02_WORLD = 0x67,
  76. EU1_WORLD = 0x68,
  77. WOR9_WORLD = 0x69,
  78. WORA_WORLD = 0x6A,
  79. WORB_WORLD = 0x6B,
  80. MKK3_MKKB = 0x80,
  81. MKK3_MKKA2 = 0x81,
  82. MKK3_MKKC = 0x82,
  83. MKK4_MKKB = 0x83,
  84. MKK4_MKKA2 = 0x84,
  85. MKK4_MKKC = 0x85,
  86. MKK5_MKKB = 0x86,
  87. MKK5_MKKA2 = 0x87,
  88. MKK5_MKKC = 0x88,
  89. MKK6_MKKB = 0x89,
  90. MKK6_MKKA2 = 0x8A,
  91. MKK6_MKKC = 0x8B,
  92. MKK7_MKKB = 0x8C,
  93. MKK7_MKKA2 = 0x8D,
  94. MKK7_MKKC = 0x8E,
  95. MKK8_MKKB = 0x8F,
  96. MKK8_MKKA2 = 0x90,
  97. MKK8_MKKC = 0x91,
  98. MKK14_MKKA1 = 0x92,
  99. MKK15_MKKA1 = 0x93,
  100. MKK10_FCCA = 0xD0,
  101. MKK10_MKKA1 = 0xD1,
  102. MKK10_MKKC = 0xD2,
  103. MKK10_MKKA2 = 0xD3,
  104. MKK11_MKKA = 0xD4,
  105. MKK11_FCCA = 0xD5,
  106. MKK11_MKKA1 = 0xD6,
  107. MKK11_MKKC = 0xD7,
  108. MKK11_MKKA2 = 0xD8,
  109. MKK12_MKKA = 0xD9,
  110. MKK12_FCCA = 0xDA,
  111. MKK12_MKKA1 = 0xDB,
  112. MKK12_MKKC = 0xDC,
  113. MKK12_MKKA2 = 0xDD,
  114. MKK13_MKKB = 0xDE,
  115. MKK3_MKKA = 0xF0,
  116. MKK3_MKKA1 = 0xF1,
  117. MKK3_FCCA = 0xF2,
  118. MKK4_MKKA = 0xF3,
  119. MKK4_MKKA1 = 0xF4,
  120. MKK4_FCCA = 0xF5,
  121. MKK9_MKKA = 0xF6,
  122. MKK10_MKKA = 0xF7,
  123. MKK6_MKKA1 = 0xF8,
  124. MKK6_FCCA = 0xF9,
  125. MKK7_MKKA1 = 0xFA,
  126. MKK7_FCCA = 0xFB,
  127. MKK9_FCCA = 0xFC,
  128. MKK9_MKKA1 = 0xFD,
  129. MKK9_MKKC = 0xFE,
  130. MKK9_MKKA2 = 0xFF,
  131. APL1 = 0x0150,
  132. APL2 = 0x0250,
  133. APL3 = 0x0350,
  134. APL4 = 0x0450,
  135. APL5 = 0x0550,
  136. APL6 = 0x0650,
  137. APL7 = 0x0750,
  138. APL8 = 0x0850,
  139. APL9 = 0x0950,
  140. APL10 = 0x1050,
  141. ETSI1 = 0x0130,
  142. ETSI2 = 0x0230,
  143. ETSI3 = 0x0330,
  144. ETSI4 = 0x0430,
  145. ETSI5 = 0x0530,
  146. ETSI6 = 0x0630,
  147. ETSIA = 0x0A30,
  148. ETSIB = 0x0B30,
  149. ETSIC = 0x0C30,
  150. FCC1 = 0x0110,
  151. FCC2 = 0x0120,
  152. FCC3 = 0x0160,
  153. FCC4 = 0x0165,
  154. FCC5 = 0x0510,
  155. FCC6 = 0x0610,
  156. FCCA = 0x0A10,
  157. APLD = 0x0D50,
  158. MKK1 = 0x0140,
  159. MKK2 = 0x0240,
  160. MKK3 = 0x0340,
  161. MKK4 = 0x0440,
  162. MKK5 = 0x0540,
  163. MKK6 = 0x0640,
  164. MKK7 = 0x0740,
  165. MKK8 = 0x0840,
  166. MKK9 = 0x0940,
  167. MKK10 = 0x0B40,
  168. MKK11 = 0x1140,
  169. MKK12 = 0x1240,
  170. MKK13 = 0x0C40,
  171. MKK14 = 0x1440,
  172. MKK15 = 0x1540,
  173. MKKA = 0x0A40,
  174. MKKC = 0x0A50,
  175. NULL1 = 0x0198,
  176. WORLD = 0x0199,
  177. DEBUG_REG_DMN = 0x01ff,
  178. };
  179. enum {
  180. FCC = 0x10,
  181. MKK = 0x40,
  182. ETSI = 0x30,
  183. };
  184. enum {
  185. NO_REQ = 0x00000000,
  186. DISALLOW_ADHOC_11A = 0x00000001,
  187. DISALLOW_ADHOC_11A_TURB = 0x00000002,
  188. NEED_NFC = 0x00000004,
  189. ADHOC_PER_11D = 0x00000008,
  190. ADHOC_NO_11A = 0x00000010,
  191. PUBLIC_SAFETY_DOMAIN = 0x00000020,
  192. LIMIT_FRAME_4MS = 0x00000040,
  193. NO_HOSTAP = 0x00000080,
  194. REQ_MASK = 0x000000FF,
  195. };
  196. #define REG_DOMAIN_2GHZ_MASK (REQ_MASK & \
  197. (!(ADHOC_NO_11A | DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB)))
  198. #define REG_DOMAIN_5GHZ_MASK REQ_MASK
  199. static struct reg_dmn_pair_mapping regDomainPairs[] = {
  200. {NO_ENUMRD, DEBUG_REG_DMN, DEBUG_REG_DMN, NO_REQ, NO_REQ,
  201. PSCAN_DEFER, 0},
  202. {NULL1_WORLD, NULL1, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  203. {NULL1_ETSIB, NULL1, ETSIB, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  204. {NULL1_ETSIC, NULL1, ETSIC, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  205. {FCC2_FCCA, FCC2, FCCA, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  206. {FCC2_WORLD, FCC2, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  207. {FCC2_ETSIC, FCC2, ETSIC, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  208. {FCC3_FCCA, FCC3, FCCA, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  209. {FCC3_WORLD, FCC3, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  210. {FCC4_FCCA, FCC4, FCCA,
  211. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  212. 0},
  213. {FCC5_FCCA, FCC5, FCCA, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  214. {FCC6_FCCA, FCC6, FCCA, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  215. {FCC6_WORLD, FCC6, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  216. {ETSI1_WORLD, ETSI1, WORLD,
  217. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  218. 0},
  219. {ETSI2_WORLD, ETSI2, WORLD,
  220. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  221. 0},
  222. {ETSI3_WORLD, ETSI3, WORLD,
  223. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  224. 0},
  225. {ETSI4_WORLD, ETSI4, WORLD,
  226. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  227. 0},
  228. {ETSI5_WORLD, ETSI5, WORLD,
  229. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  230. 0},
  231. {ETSI6_WORLD, ETSI6, WORLD,
  232. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  233. 0},
  234. {ETSI3_ETSIA, ETSI3, WORLD,
  235. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  236. 0},
  237. {FRANCE_RES, ETSI3, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  238. {FCC1_WORLD, FCC1, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  239. {FCC1_FCCA, FCC1, FCCA, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  240. {APL1_WORLD, APL1, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  241. {APL2_WORLD, APL2, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  242. {APL3_WORLD, APL3, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  243. {APL4_WORLD, APL4, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  244. {APL5_WORLD, APL5, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  245. {APL6_WORLD, APL6, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  246. {APL8_WORLD, APL8, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  247. {APL9_WORLD, APL9, WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  248. {APL3_FCCA, APL3, FCCA, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  249. {APL1_ETSIC, APL1, ETSIC, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  250. {APL2_ETSIC, APL2, ETSIC, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  251. {APL2_APLD, APL2, APLD, NO_REQ, NO_REQ, PSCAN_DEFER,},
  252. {MKK1_MKKA, MKK1, MKKA,
  253. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  254. PSCAN_MKK1 | PSCAN_MKKA, CTRY_JAPAN},
  255. {MKK1_MKKB, MKK1, MKKA,
  256. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB | NEED_NFC |
  257. LIMIT_FRAME_4MS, NEED_NFC, PSCAN_MKK1 | PSCAN_MKKA | PSCAN_MKKA_G,
  258. CTRY_JAPAN1},
  259. {MKK1_FCCA, MKK1, FCCA,
  260. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  261. PSCAN_MKK1, CTRY_JAPAN2},
  262. {MKK1_MKKA1, MKK1, MKKA,
  263. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  264. PSCAN_MKK1 | PSCAN_MKKA1 | PSCAN_MKKA1_G, CTRY_JAPAN4},
  265. {MKK1_MKKA2, MKK1, MKKA,
  266. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  267. PSCAN_MKK1 | PSCAN_MKKA2 | PSCAN_MKKA2_G, CTRY_JAPAN5},
  268. {MKK1_MKKC, MKK1, MKKC,
  269. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  270. PSCAN_MKK1, CTRY_JAPAN6},
  271. {MKK2_MKKA, MKK2, MKKA,
  272. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB | NEED_NFC |
  273. LIMIT_FRAME_4MS, NEED_NFC, PSCAN_MKK2 | PSCAN_MKKA | PSCAN_MKKA_G,
  274. CTRY_JAPAN3},
  275. {MKK3_MKKA, MKK3, MKKA,
  276. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  277. PSCAN_MKKA, CTRY_JAPAN25},
  278. {MKK3_MKKB, MKK3, MKKA,
  279. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB | NEED_NFC |
  280. LIMIT_FRAME_4MS, NEED_NFC, PSCAN_MKKA | PSCAN_MKKA_G,
  281. CTRY_JAPAN7},
  282. {MKK3_MKKA1, MKK3, MKKA,
  283. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  284. PSCAN_MKKA1 | PSCAN_MKKA1_G, CTRY_JAPAN26},
  285. {MKK3_MKKA2, MKK3, MKKA,
  286. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  287. PSCAN_MKKA2 | PSCAN_MKKA2_G, CTRY_JAPAN8},
  288. {MKK3_MKKC, MKK3, MKKC,
  289. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  290. NO_PSCAN, CTRY_JAPAN9},
  291. {MKK3_FCCA, MKK3, FCCA,
  292. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  293. NO_PSCAN, CTRY_JAPAN27},
  294. {MKK4_MKKA, MKK4, MKKA,
  295. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  296. PSCAN_MKK3, CTRY_JAPAN36},
  297. {MKK4_MKKB, MKK4, MKKA,
  298. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB | NEED_NFC |
  299. LIMIT_FRAME_4MS, NEED_NFC, PSCAN_MKK3 | PSCAN_MKKA | PSCAN_MKKA_G,
  300. CTRY_JAPAN10},
  301. {MKK4_MKKA1, MKK4, MKKA,
  302. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  303. PSCAN_MKK3 | PSCAN_MKKA1 | PSCAN_MKKA1_G, CTRY_JAPAN28},
  304. {MKK4_MKKA2, MKK4, MKKA,
  305. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  306. PSCAN_MKK3 | PSCAN_MKKA2 | PSCAN_MKKA2_G, CTRY_JAPAN11},
  307. {MKK4_MKKC, MKK4, MKKC,
  308. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  309. PSCAN_MKK3, CTRY_JAPAN12},
  310. {MKK4_FCCA, MKK4, FCCA,
  311. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  312. PSCAN_MKK3, CTRY_JAPAN29},
  313. {MKK5_MKKB, MKK5, MKKA,
  314. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB | NEED_NFC |
  315. LIMIT_FRAME_4MS, NEED_NFC, PSCAN_MKK3 | PSCAN_MKKA | PSCAN_MKKA_G,
  316. CTRY_JAPAN13},
  317. {MKK5_MKKA2, MKK5, MKKA,
  318. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  319. PSCAN_MKK3 | PSCAN_MKKA2 | PSCAN_MKKA2_G, CTRY_JAPAN14},
  320. {MKK5_MKKC, MKK5, MKKC,
  321. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  322. PSCAN_MKK3, CTRY_JAPAN15},
  323. {MKK6_MKKB, MKK6, MKKA,
  324. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  325. PSCAN_MKK1 | PSCAN_MKKA | PSCAN_MKKA_G, CTRY_JAPAN16},
  326. {MKK6_MKKA1, MKK6, MKKA,
  327. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  328. PSCAN_MKK1 | PSCAN_MKKA1 | PSCAN_MKKA1_G, CTRY_JAPAN30},
  329. {MKK6_MKKA2, MKK6, MKKA,
  330. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  331. PSCAN_MKK1 | PSCAN_MKKA2 | PSCAN_MKKA2_G, CTRY_JAPAN17},
  332. {MKK6_MKKC, MKK6, MKKC,
  333. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  334. PSCAN_MKK1, CTRY_JAPAN18},
  335. {MKK6_FCCA, MKK6, FCCA,
  336. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  337. NO_PSCAN, CTRY_JAPAN31},
  338. {MKK7_MKKB, MKK7, MKKA,
  339. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  340. PSCAN_MKK1 | PSCAN_MKK3 | PSCAN_MKKA | PSCAN_MKKA_G,
  341. CTRY_JAPAN19},
  342. {MKK7_MKKA1, MKK7, MKKA,
  343. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  344. PSCAN_MKK1 | PSCAN_MKKA1 | PSCAN_MKKA1_G, CTRY_JAPAN32},
  345. {MKK7_MKKA2, MKK7, MKKA,
  346. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  347. PSCAN_MKK1 | PSCAN_MKK3 | PSCAN_MKKA2 | PSCAN_MKKA2_G,
  348. CTRY_JAPAN20},
  349. {MKK7_MKKC, MKK7, MKKC,
  350. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  351. PSCAN_MKK1 | PSCAN_MKK3, CTRY_JAPAN21},
  352. {MKK7_FCCA, MKK7, FCCA,
  353. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  354. PSCAN_MKK1 | PSCAN_MKK3, CTRY_JAPAN33},
  355. {MKK8_MKKB, MKK8, MKKA,
  356. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  357. PSCAN_MKK1 | PSCAN_MKK3 | PSCAN_MKKA | PSCAN_MKKA_G,
  358. CTRY_JAPAN22},
  359. {MKK8_MKKA2, MKK8, MKKA,
  360. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  361. PSCAN_MKK1 | PSCAN_MKK3 | PSCAN_MKKA2 | PSCAN_MKKA2_G,
  362. CTRY_JAPAN23},
  363. {MKK8_MKKC, MKK8, MKKC,
  364. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  365. PSCAN_MKK1 | PSCAN_MKK3, CTRY_JAPAN24},
  366. {MKK9_MKKA, MKK9, MKKA,
  367. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB | NEED_NFC |
  368. LIMIT_FRAME_4MS, NEED_NFC,
  369. PSCAN_MKK2 | PSCAN_MKK3 | PSCAN_MKKA | PSCAN_MKKA_G,
  370. CTRY_JAPAN34},
  371. {MKK9_FCCA, MKK9, FCCA,
  372. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  373. NO_PSCAN, CTRY_JAPAN37},
  374. {MKK9_MKKA1, MKK9, MKKA,
  375. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  376. PSCAN_MKKA1 | PSCAN_MKKA1_G, CTRY_JAPAN38},
  377. {MKK9_MKKA2, MKK9, MKKA,
  378. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  379. PSCAN_MKKA2 | PSCAN_MKKA2_G, CTRY_JAPAN40},
  380. {MKK9_MKKC, MKK9, MKKC,
  381. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  382. NO_PSCAN, CTRY_JAPAN39},
  383. {MKK10_MKKA, MKK10, MKKA,
  384. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB | NEED_NFC |
  385. LIMIT_FRAME_4MS, NEED_NFC, PSCAN_MKK2 | PSCAN_MKK3, CTRY_JAPAN35},
  386. {MKK10_FCCA, MKK10, FCCA,
  387. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  388. NO_PSCAN, CTRY_JAPAN41},
  389. {MKK10_MKKA1, MKK10, MKKA,
  390. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  391. PSCAN_MKKA1 | PSCAN_MKKA1_G, CTRY_JAPAN42},
  392. {MKK10_MKKA2, MKK10, MKKA,
  393. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  394. PSCAN_MKKA2 | PSCAN_MKKA2_G, CTRY_JAPAN44},
  395. {MKK10_MKKC, MKK10, MKKC,
  396. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  397. NO_PSCAN, CTRY_JAPAN43},
  398. {MKK11_MKKA, MKK11, MKKA,
  399. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  400. PSCAN_MKK3, CTRY_JAPAN45},
  401. {MKK11_FCCA, MKK11, FCCA,
  402. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  403. PSCAN_MKK3, CTRY_JAPAN46},
  404. {MKK11_MKKA1, MKK11, MKKA,
  405. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  406. PSCAN_MKK3 | PSCAN_MKKA1 | PSCAN_MKKA1_G, CTRY_JAPAN47},
  407. {MKK11_MKKA2, MKK11, MKKA,
  408. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  409. PSCAN_MKK3 | PSCAN_MKKA2 | PSCAN_MKKA2_G, CTRY_JAPAN49},
  410. {MKK11_MKKC, MKK11, MKKC,
  411. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  412. PSCAN_MKK3, CTRY_JAPAN48},
  413. {MKK12_MKKA, MKK12, MKKA,
  414. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  415. PSCAN_MKK1 | PSCAN_MKK3, CTRY_JAPAN50},
  416. {MKK12_FCCA, MKK12, FCCA,
  417. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  418. PSCAN_MKK1 | PSCAN_MKK3, CTRY_JAPAN51},
  419. {MKK12_MKKA1, MKK12, MKKA,
  420. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  421. PSCAN_MKK1 | PSCAN_MKK3 | PSCAN_MKKA1 | PSCAN_MKKA1_G,
  422. CTRY_JAPAN52},
  423. {MKK12_MKKA2, MKK12, MKKA,
  424. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  425. PSCAN_MKK1 | PSCAN_MKK3 | PSCAN_MKKA2 | PSCAN_MKKA2_G,
  426. CTRY_JAPAN54},
  427. {MKK12_MKKC, MKK12, MKKC,
  428. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  429. PSCAN_MKK1 | PSCAN_MKK3, CTRY_JAPAN53},
  430. {MKK13_MKKB, MKK13, MKKA,
  431. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB | NEED_NFC |
  432. LIMIT_FRAME_4MS, NEED_NFC,
  433. PSCAN_MKK1 | PSCAN_MKK3 | PSCAN_MKKA | PSCAN_MKKA_G,
  434. CTRY_JAPAN57},
  435. {MKK14_MKKA1, MKK14, MKKA,
  436. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  437. PSCAN_MKK1 | PSCAN_MKKA1 | PSCAN_MKKA1_G, CTRY_JAPAN58},
  438. {MKK15_MKKA1, MKK15, MKKA,
  439. DISALLOW_ADHOC_11A_TURB | NEED_NFC | LIMIT_FRAME_4MS, NEED_NFC,
  440. PSCAN_MKK1 | PSCAN_MKKA1 | PSCAN_MKKA1_G, CTRY_JAPAN59},
  441. {WOR0_WORLD, WOR0_WORLD, WOR0_WORLD, NO_REQ, NO_REQ, PSCAN_DEFER,
  442. 0},
  443. {WOR1_WORLD, WOR1_WORLD, WOR1_WORLD,
  444. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  445. 0},
  446. {WOR2_WORLD, WOR2_WORLD, WOR2_WORLD, DISALLOW_ADHOC_11A_TURB,
  447. NO_REQ, PSCAN_DEFER, 0},
  448. {WOR3_WORLD, WOR3_WORLD, WOR3_WORLD, NO_REQ, NO_REQ, PSCAN_DEFER,
  449. 0},
  450. {WOR4_WORLD, WOR4_WORLD, WOR4_WORLD,
  451. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  452. 0},
  453. {WOR5_ETSIC, WOR5_ETSIC, WOR5_ETSIC,
  454. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  455. 0},
  456. {WOR01_WORLD, WOR01_WORLD, WOR01_WORLD, NO_REQ, NO_REQ,
  457. PSCAN_DEFER, 0},
  458. {WOR02_WORLD, WOR02_WORLD, WOR02_WORLD, NO_REQ, NO_REQ,
  459. PSCAN_DEFER, 0},
  460. {EU1_WORLD, EU1_WORLD, EU1_WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, 0},
  461. {WOR9_WORLD, WOR9_WORLD, WOR9_WORLD,
  462. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  463. 0},
  464. {WORA_WORLD, WORA_WORLD, WORA_WORLD,
  465. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  466. 0},
  467. {WORB_WORLD, WORB_WORLD, WORB_WORLD,
  468. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER,
  469. 0},
  470. };
  471. #define NO_INTERSECT_REQ 0xFFFFFFFF
  472. #define NO_UNION_REQ 0
  473. static struct country_code_to_enum_rd allCountries[] = {
  474. {CTRY_DEBUG, NO_ENUMRD, "DB", "DEBUG", YES, YES, YES, YES, YES,
  475. YES, YES, 7000},
  476. {CTRY_DEFAULT, DEF_REGDMN, "NA", "NO_COUNTRY_SET", YES, YES, YES,
  477. YES, YES, YES, YES, 7000},
  478. {CTRY_ALBANIA, NULL1_WORLD, "AL", "ALBANIA", YES, NO, YES, YES, NO,
  479. NO, NO, 7000},
  480. {CTRY_ALGERIA, NULL1_WORLD, "DZ", "ALGERIA", YES, NO, YES, YES, NO,
  481. NO, NO, 7000},
  482. {CTRY_ARGENTINA, APL3_WORLD, "AR", "ARGENTINA", YES, NO, NO, YES,
  483. NO, YES, NO, 7000},
  484. {CTRY_ARMENIA, ETSI4_WORLD, "AM", "ARMENIA", YES, NO, YES, YES,
  485. YES, NO, NO, 7000},
  486. {CTRY_AUSTRALIA, FCC2_WORLD, "AU", "AUSTRALIA", YES, YES, YES, YES,
  487. YES, YES, YES, 7000},
  488. {CTRY_AUSTRALIA2, FCC6_WORLD, "AU", "AUSTRALIA2", YES, YES, YES,
  489. YES, YES, YES, YES, 7000},
  490. {CTRY_AUSTRIA, ETSI1_WORLD, "AT", "AUSTRIA", YES, NO, YES, YES,
  491. YES, YES, YES, 7000},
  492. {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", "AZERBAIJAN", YES, YES, YES,
  493. YES, YES, YES, YES, 7000},
  494. {CTRY_BAHRAIN, APL6_WORLD, "BH", "BAHRAIN", YES, NO, YES, YES, YES,
  495. YES, NO, 7000},
  496. {CTRY_BELARUS, ETSI1_WORLD, "BY", "BELARUS", YES, NO, YES, YES,
  497. YES, YES, YES, 7000},
  498. {CTRY_BELGIUM, ETSI1_WORLD, "BE", "BELGIUM", YES, NO, YES, YES,
  499. YES, YES, YES, 7000},
  500. {CTRY_BELGIUM2, ETSI4_WORLD, "BL", "BELGIUM", YES, NO, YES, YES,
  501. YES, YES, YES, 7000},
  502. {CTRY_BELIZE, APL1_ETSIC, "BZ", "BELIZE", YES, YES, YES, YES, YES,
  503. YES, YES, 7000},
  504. {CTRY_BOLIVIA, APL1_ETSIC, "BO", "BOLVIA", YES, YES, YES, YES, YES,
  505. YES, YES, 7000},
  506. {CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA", "BOSNIA_HERZGOWINA", YES, NO,
  507. YES, YES, YES, YES, NO, 7000},
  508. {CTRY_BRAZIL, FCC3_WORLD, "BR", "BRAZIL", YES, NO, NO, YES, NO,
  509. YES, NO, 7000},
  510. {CTRY_BRUNEI_DARUSSALAM, APL1_WORLD, "BN", "BRUNEI DARUSSALAM",
  511. YES, YES, YES, YES, YES, YES, YES, 7000},
  512. {CTRY_BULGARIA, ETSI6_WORLD, "BG", "BULGARIA", YES, NO, YES, YES,
  513. YES, YES, YES, 7000},
  514. {CTRY_CANADA, FCC2_FCCA, "CA", "CANADA", YES, YES, YES, YES, YES,
  515. YES, YES, 7000},
  516. {CTRY_CANADA2, FCC6_FCCA, "CA", "CANADA2", YES, YES, YES, YES, YES,
  517. YES, YES, 7000},
  518. {CTRY_CHILE, APL6_WORLD, "CL", "CHILE", YES, YES, YES, YES, YES,
  519. YES, YES, 7000},
  520. {CTRY_CHINA, APL1_WORLD, "CN", "CHINA", YES, YES, YES, YES, YES,
  521. YES, YES, 7000},
  522. {CTRY_COLOMBIA, FCC1_FCCA, "CO", "COLOMBIA", YES, NO, YES, YES,
  523. YES, YES, NO, 7000},
  524. {CTRY_COSTA_RICA, FCC1_WORLD, "CR", "COSTA RICA", YES, NO, YES,
  525. YES, YES, YES, NO, 7000},
  526. {CTRY_CROATIA, ETSI3_WORLD, "HR", "CROATIA", YES, NO, YES, YES,
  527. YES, YES, NO, 7000},
  528. {CTRY_CYPRUS, ETSI1_WORLD, "CY", "CYPRUS", YES, YES, YES, YES, YES,
  529. YES, YES, 7000},
  530. {CTRY_CZECH, ETSI3_WORLD, "CZ", "CZECH REPUBLIC", YES, NO, YES,
  531. YES, YES, YES, YES, 7000},
  532. {CTRY_DENMARK, ETSI1_WORLD, "DK", "DENMARK", YES, NO, YES, YES,
  533. YES, YES, YES, 7000},
  534. {CTRY_DOMINICAN_REPUBLIC, FCC1_FCCA, "DO", "DOMINICAN REPUBLIC",
  535. YES, YES, YES, YES, YES, YES, YES, 7000},
  536. {CTRY_ECUADOR, FCC1_WORLD, "EC", "ECUADOR", YES, NO, NO, YES, YES,
  537. YES, NO, 7000},
  538. {CTRY_EGYPT, ETSI3_WORLD, "EG", "EGYPT", YES, NO, YES, YES, YES,
  539. YES, NO, 7000},
  540. {CTRY_EL_SALVADOR, FCC1_WORLD, "SV", "EL SALVADOR", YES, NO, YES,
  541. YES, YES, YES, NO, 7000},
  542. {CTRY_ESTONIA, ETSI1_WORLD, "EE", "ESTONIA", YES, NO, YES, YES,
  543. YES, YES, YES, 7000},
  544. {CTRY_FINLAND, ETSI1_WORLD, "FI", "FINLAND", YES, NO, YES, YES,
  545. YES, YES, YES, 7000},
  546. {CTRY_FRANCE, ETSI1_WORLD, "FR", "FRANCE", YES, NO, YES, YES, YES,
  547. YES, YES, 7000},
  548. {CTRY_GEORGIA, ETSI4_WORLD, "GE", "GEORGIA", YES, YES, YES, YES,
  549. YES, YES, YES, 7000},
  550. {CTRY_GERMANY, ETSI1_WORLD, "DE", "GERMANY", YES, NO, YES, YES,
  551. YES, YES, YES, 7000},
  552. {CTRY_GREECE, ETSI1_WORLD, "GR", "GREECE", YES, NO, YES, YES, YES,
  553. YES, YES, 7000},
  554. {CTRY_GUATEMALA, FCC1_FCCA, "GT", "GUATEMALA", YES, YES, YES, YES,
  555. YES, YES, YES, 7000},
  556. {CTRY_HONDURAS, NULL1_WORLD, "HN", "HONDURAS", YES, NO, YES, YES,
  557. YES, NO, NO, 7000},
  558. {CTRY_HONG_KONG, FCC2_WORLD, "HK", "HONG KONG", YES, YES, YES, YES,
  559. YES, YES, YES, 7000},
  560. {CTRY_HUNGARY, ETSI1_WORLD, "HU", "HUNGARY", YES, NO, YES, YES,
  561. YES, YES, YES, 7000},
  562. {CTRY_ICELAND, ETSI1_WORLD, "IS", "ICELAND", YES, NO, YES, YES,
  563. YES, YES, YES, 7000},
  564. {CTRY_INDIA, APL6_WORLD, "IN", "INDIA", YES, NO, YES, YES, YES,
  565. YES, NO, 7000},
  566. {CTRY_INDONESIA, APL1_WORLD, "ID", "INDONESIA", YES, NO, YES, YES,
  567. YES, YES, NO, 7000},
  568. {CTRY_IRAN, APL1_WORLD, "IR", "IRAN", YES, YES, YES, YES, YES, YES,
  569. YES, 7000},
  570. {CTRY_IRELAND, ETSI1_WORLD, "IE", "IRELAND", YES, NO, YES, YES,
  571. YES, YES, YES, 7000},
  572. {CTRY_ISRAEL, NULL1_WORLD, "IL", "ISRAEL", YES, NO, YES, YES, YES,
  573. NO, NO, 7000},
  574. {CTRY_ITALY, ETSI1_WORLD, "IT", "ITALY", YES, NO, YES, YES, YES,
  575. YES, YES, 7000},
  576. {CTRY_JAMAICA, ETSI1_WORLD, "JM", "JAMAICA", YES, NO, YES, YES,
  577. YES, YES, YES, 7000},
  578. {CTRY_JAPAN, MKK1_MKKA, "JP", "JAPAN", YES, NO, NO, YES, YES, YES,
  579. YES, 7000},
  580. {CTRY_JAPAN1, MKK1_MKKB, "JP", "JAPAN1", YES, NO, NO, YES, YES,
  581. YES, YES, 7000},
  582. {CTRY_JAPAN2, MKK1_FCCA, "JP", "JAPAN2", YES, NO, NO, YES, YES,
  583. YES, YES, 7000},
  584. {CTRY_JAPAN3, MKK2_MKKA, "JP", "JAPAN3", YES, NO, NO, YES, YES,
  585. YES, YES, 7000},
  586. {CTRY_JAPAN4, MKK1_MKKA1, "JP", "JAPAN4", YES, NO, NO, YES, YES,
  587. YES, YES, 7000},
  588. {CTRY_JAPAN5, MKK1_MKKA2, "JP", "JAPAN5", YES, NO, NO, YES, YES,
  589. YES, YES, 7000},
  590. {CTRY_JAPAN6, MKK1_MKKC, "JP", "JAPAN6", YES, NO, NO, YES, YES,
  591. YES, YES, 7000},
  592. {CTRY_JAPAN7, MKK3_MKKB, "JP", "JAPAN7", YES, NO, NO, YES, YES,
  593. YES, YES, 7000},
  594. {CTRY_JAPAN8, MKK3_MKKA2, "JP", "JAPAN8", YES, NO, NO, YES, YES,
  595. YES, YES, 7000},
  596. {CTRY_JAPAN9, MKK3_MKKC, "JP", "JAPAN9", YES, NO, NO, YES, YES,
  597. YES, YES, 7000},
  598. {CTRY_JAPAN10, MKK4_MKKB, "JP", "JAPAN10", YES, NO, NO, YES, YES,
  599. YES, YES, 7000},
  600. {CTRY_JAPAN11, MKK4_MKKA2, "JP", "JAPAN11", YES, NO, NO, YES, YES,
  601. YES, YES, 7000},
  602. {CTRY_JAPAN12, MKK4_MKKC, "JP", "JAPAN12", YES, NO, NO, YES, YES,
  603. YES, YES, 7000},
  604. {CTRY_JAPAN13, MKK5_MKKB, "JP", "JAPAN13", YES, NO, NO, YES, YES,
  605. YES, YES, 7000},
  606. {CTRY_JAPAN14, MKK5_MKKA2, "JP", "JAPAN14", YES, NO, NO, YES, YES,
  607. YES, YES, 7000},
  608. {CTRY_JAPAN15, MKK5_MKKC, "JP", "JAPAN15", YES, NO, NO, YES, YES,
  609. YES, YES, 7000},
  610. {CTRY_JAPAN16, MKK6_MKKB, "JP", "JAPAN16", YES, NO, NO, YES, YES,
  611. YES, YES, 7000},
  612. {CTRY_JAPAN17, MKK6_MKKA2, "JP", "JAPAN17", YES, NO, NO, YES, YES,
  613. YES, YES, 7000},
  614. {CTRY_JAPAN18, MKK6_MKKC, "JP", "JAPAN18", YES, NO, NO, YES, YES,
  615. YES, YES, 7000},
  616. {CTRY_JAPAN19, MKK7_MKKB, "JP", "JAPAN19", YES, NO, NO, YES, YES,
  617. YES, YES, 7000},
  618. {CTRY_JAPAN20, MKK7_MKKA2, "JP", "JAPAN20", YES, NO, NO, YES, YES,
  619. YES, YES, 7000},
  620. {CTRY_JAPAN21, MKK7_MKKC, "JP", "JAPAN21", YES, NO, NO, YES, YES,
  621. YES, YES, 7000},
  622. {CTRY_JAPAN22, MKK8_MKKB, "JP", "JAPAN22", YES, NO, NO, YES, YES,
  623. YES, YES, 7000},
  624. {CTRY_JAPAN23, MKK8_MKKA2, "JP", "JAPAN23", YES, NO, NO, YES, YES,
  625. YES, YES, 7000},
  626. {CTRY_JAPAN24, MKK8_MKKC, "JP", "JAPAN24", YES, NO, NO, YES, YES,
  627. YES, YES, 7000},
  628. {CTRY_JAPAN25, MKK3_MKKA, "JP", "JAPAN25", YES, NO, NO, YES, YES,
  629. YES, YES, 7000},
  630. {CTRY_JAPAN26, MKK3_MKKA1, "JP", "JAPAN26", YES, NO, NO, YES, YES,
  631. YES, YES, 7000},
  632. {CTRY_JAPAN27, MKK3_FCCA, "JP", "JAPAN27", YES, NO, NO, YES, YES,
  633. YES, YES, 7000},
  634. {CTRY_JAPAN28, MKK4_MKKA1, "JP", "JAPAN28", YES, NO, NO, YES, YES,
  635. YES, YES, 7000},
  636. {CTRY_JAPAN29, MKK4_FCCA, "JP", "JAPAN29", YES, NO, NO, YES, YES,
  637. YES, YES, 7000},
  638. {CTRY_JAPAN30, MKK6_MKKA1, "JP", "JAPAN30", YES, NO, NO, YES, YES,
  639. YES, YES, 7000},
  640. {CTRY_JAPAN31, MKK6_FCCA, "JP", "JAPAN31", YES, NO, NO, YES, YES,
  641. YES, YES, 7000},
  642. {CTRY_JAPAN32, MKK7_MKKA1, "JP", "JAPAN32", YES, NO, NO, YES, YES,
  643. YES, YES, 7000},
  644. {CTRY_JAPAN33, MKK7_FCCA, "JP", "JAPAN33", YES, NO, NO, YES, YES,
  645. YES, YES, 7000},
  646. {CTRY_JAPAN34, MKK9_MKKA, "JP", "JAPAN34", YES, NO, NO, YES, YES,
  647. YES, YES, 7000},
  648. {CTRY_JAPAN35, MKK10_MKKA, "JP", "JAPAN35", YES, NO, NO, YES, YES,
  649. YES, YES, 7000},
  650. {CTRY_JAPAN36, MKK4_MKKA, "JP", "JAPAN36", YES, NO, NO, YES, YES,
  651. YES, YES, 7000},
  652. {CTRY_JAPAN37, MKK9_FCCA, "JP", "JAPAN37", YES, NO, NO, YES, YES,
  653. YES, YES, 7000},
  654. {CTRY_JAPAN38, MKK9_MKKA1, "JP", "JAPAN38", YES, NO, NO, YES, YES,
  655. YES, YES, 7000},
  656. {CTRY_JAPAN39, MKK9_MKKC, "JP", "JAPAN39", YES, NO, NO, YES, YES,
  657. YES, YES, 7000},
  658. {CTRY_JAPAN40, MKK9_MKKA2, "JP", "JAPAN40", YES, NO, NO, YES, YES,
  659. YES, YES, 7000},
  660. {CTRY_JAPAN41, MKK10_FCCA, "JP", "JAPAN41", YES, NO, NO, YES, YES,
  661. YES, YES, 7000},
  662. {CTRY_JAPAN42, MKK10_MKKA1, "JP", "JAPAN42", YES, NO, NO, YES, YES,
  663. YES, YES, 7000},
  664. {CTRY_JAPAN43, MKK10_MKKC, "JP", "JAPAN43", YES, NO, NO, YES, YES,
  665. YES, YES, 7000},
  666. {CTRY_JAPAN44, MKK10_MKKA2, "JP", "JAPAN44", YES, NO, NO, YES, YES,
  667. YES, YES, 7000},
  668. {CTRY_JAPAN45, MKK11_MKKA, "JP", "JAPAN45", YES, NO, NO, YES, YES,
  669. YES, YES, 7000},
  670. {CTRY_JAPAN46, MKK11_FCCA, "JP", "JAPAN46", YES, NO, NO, YES, YES,
  671. YES, YES, 7000},
  672. {CTRY_JAPAN47, MKK11_MKKA1, "JP", "JAPAN47", YES, NO, NO, YES, YES,
  673. YES, YES, 7000},
  674. {CTRY_JAPAN48, MKK11_MKKC, "JP", "JAPAN48", YES, NO, NO, YES, YES,
  675. YES, YES, 7000},
  676. {CTRY_JAPAN49, MKK11_MKKA2, "JP", "JAPAN49", YES, NO, NO, YES, YES,
  677. YES, YES, 7000},
  678. {CTRY_JAPAN50, MKK12_MKKA, "JP", "JAPAN50", YES, NO, NO, YES, YES,
  679. YES, YES, 7000},
  680. {CTRY_JAPAN51, MKK12_FCCA, "JP", "JAPAN51", YES, NO, NO, YES, YES,
  681. YES, YES, 7000},
  682. {CTRY_JAPAN52, MKK12_MKKA1, "JP", "JAPAN52", YES, NO, NO, YES, YES,
  683. YES, YES, 7000},
  684. {CTRY_JAPAN53, MKK12_MKKC, "JP", "JAPAN53", YES, NO, NO, YES, YES,
  685. YES, YES, 7000},
  686. {CTRY_JAPAN54, MKK12_MKKA2, "JP", "JAPAN54", YES, NO, NO, YES, YES,
  687. YES, YES, 7000},
  688. {CTRY_JAPAN57, MKK13_MKKB, "JP", "JAPAN57", YES, NO, NO, YES, YES,
  689. YES, YES, 7000},
  690. {CTRY_JAPAN58, MKK14_MKKA1, "JP", "JAPAN58", YES, NO, NO, YES, YES,
  691. YES, YES, 7000},
  692. {CTRY_JAPAN59, MKK15_MKKA1, "JP", "JAPAN59", YES, NO, NO, YES, YES,
  693. YES, YES, 7000},
  694. {CTRY_JORDAN, ETSI2_WORLD, "JO", "JORDAN", YES, NO, YES, YES, YES,
  695. YES, NO, 7000},
  696. {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", "KAZAKHSTAN", YES, NO, YES,
  697. YES, YES, NO, NO, 7000},
  698. {CTRY_KOREA_NORTH, APL9_WORLD, "KP", "NORTH KOREA", YES, NO, NO,
  699. YES, YES, YES, YES, 7000},
  700. {CTRY_KOREA_ROC, APL9_WORLD, "KR", "KOREA REPUBLIC", YES, NO, NO,
  701. YES, NO, YES, NO, 7000},
  702. {CTRY_KOREA_ROC2, APL2_WORLD, "K2", "KOREA REPUBLIC2", YES, NO, NO,
  703. YES, NO, YES, NO, 7000},
  704. {CTRY_KOREA_ROC3, APL9_WORLD, "K3", "KOREA REPUBLIC3", YES, NO, NO,
  705. YES, NO, YES, NO, 7000},
  706. {CTRY_KUWAIT, NULL1_WORLD, "KW", "KUWAIT", YES, NO, YES, YES, YES,
  707. NO, NO, 7000},
  708. {CTRY_LATVIA, ETSI1_WORLD, "LV", "LATVIA", YES, NO, YES, YES, YES,
  709. YES, YES, 7000},
  710. {CTRY_LEBANON, NULL1_WORLD, "LB", "LEBANON", YES, NO, YES, YES,
  711. YES, NO, NO, 7000},
  712. {CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI", "LIECHTENSTEIN", YES, NO,
  713. YES, YES, YES, YES, YES, 7000},
  714. {CTRY_LITHUANIA, ETSI1_WORLD, "LT", "LITHUANIA", YES, NO, YES, YES,
  715. YES, YES, YES, 7000},
  716. {CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", "LUXEMBOURG", YES, NO, YES,
  717. YES, YES, YES, YES, 7000},
  718. {CTRY_MACAU, FCC2_WORLD, "MO", "MACAU", YES, YES, YES, YES, YES,
  719. YES, YES, 7000},
  720. {CTRY_MACEDONIA, NULL1_WORLD, "MK", "MACEDONIA", YES, NO, YES, YES,
  721. YES, NO, NO, 7000},
  722. {CTRY_MALAYSIA, APL8_WORLD, "MY", "MALAYSIA", YES, NO, NO, YES, NO,
  723. YES, NO, 7000},
  724. {CTRY_MALTA, ETSI1_WORLD, "MT", "MALTA", YES, NO, YES, YES, YES,
  725. YES, YES, 7000},
  726. {CTRY_MEXICO, FCC1_FCCA, "MX", "MEXICO", YES, YES, YES, YES, YES,
  727. YES, YES, 7000},
  728. {CTRY_MONACO, ETSI4_WORLD, "MC", "MONACO", YES, YES, YES, YES, YES,
  729. YES, YES, 7000},
  730. {CTRY_MOROCCO, NULL1_WORLD, "MA", "MOROCCO", YES, NO, YES, YES,
  731. YES, NO, NO, 7000},
  732. {CTRY_NEPAL, APL1_WORLD, "NP", "NEPAL", YES, NO, YES, YES, YES,
  733. YES, YES, 7000},
  734. {CTRY_NETHERLANDS, ETSI1_WORLD, "NL", "NETHERLANDS", YES, NO, YES,
  735. YES, YES, YES, YES, 7000},
  736. {CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN",
  737. "NETHERLANDS-ANTILLES", YES, NO, YES, YES, YES, YES, YES, 7000},
  738. {CTRY_NEW_ZEALAND, FCC2_ETSIC, "NZ", "NEW ZEALAND", YES, NO, YES,
  739. YES, YES, YES, NO, 7000},
  740. {CTRY_NORWAY, ETSI1_WORLD, "NO", "NORWAY", YES, NO, YES, YES, YES,
  741. YES, YES, 7000},
  742. {CTRY_OMAN, APL6_WORLD, "OM", "OMAN", YES, NO, YES, YES, YES, YES,
  743. NO, 7000},
  744. {CTRY_PAKISTAN, NULL1_WORLD, "PK", "PAKISTAN", YES, NO, YES, YES,
  745. YES, NO, NO, 7000},
  746. {CTRY_PANAMA, FCC1_FCCA, "PA", "PANAMA", YES, YES, YES, YES, YES,
  747. YES, YES, 7000},
  748. {CTRY_PAPUA_NEW_GUINEA, FCC1_WORLD, "PG", "PAPUA NEW GUINEA", YES,
  749. YES, YES, YES, YES, YES, YES, 7000},
  750. {CTRY_PERU, APL1_WORLD, "PE", "PERU", YES, NO, YES, YES, YES, YES,
  751. NO, 7000},
  752. {CTRY_PHILIPPINES, APL1_WORLD, "PH", "PHILIPPINES", YES, YES, YES,
  753. YES, YES, YES, YES, 7000},
  754. {CTRY_POLAND, ETSI1_WORLD, "PL", "POLAND", YES, NO, YES, YES, YES,
  755. YES, YES, 7000},
  756. {CTRY_PORTUGAL, ETSI1_WORLD, "PT", "PORTUGAL", YES, NO, YES, YES,
  757. YES, YES, YES, 7000},
  758. {CTRY_PUERTO_RICO, FCC1_FCCA, "PR", "PUERTO RICO", YES, YES, YES,
  759. YES, YES, YES, YES, 7000},
  760. {CTRY_QATAR, NULL1_WORLD, "QA", "QATAR", YES, NO, YES, YES, YES,
  761. NO, NO, 7000},
  762. {CTRY_ROMANIA, NULL1_WORLD, "RO", "ROMANIA", YES, NO, YES, YES,
  763. YES, NO, NO, 7000},
  764. {CTRY_RUSSIA, NULL1_WORLD, "RU", "RUSSIA", YES, NO, YES, YES, YES,
  765. NO, NO, 7000},
  766. {CTRY_SAUDI_ARABIA, NULL1_WORLD, "SA", "SAUDI ARABIA", YES, NO,
  767. YES, YES, YES, NO, NO, 7000},
  768. {CTRY_SERBIA_MONTENEGRO, ETSI1_WORLD, "CS", "SERBIA & MONTENEGRO",
  769. YES, NO, YES, YES, YES, YES, YES, 7000},
  770. {CTRY_SINGAPORE, APL6_WORLD, "SG", "SINGAPORE", YES, YES, YES, YES,
  771. YES, YES, YES, 7000},
  772. {CTRY_SLOVAKIA, ETSI1_WORLD, "SK", "SLOVAK REPUBLIC", YES, NO, YES,
  773. YES, YES, YES, YES, 7000},
  774. {CTRY_SLOVENIA, ETSI1_WORLD, "SI", "SLOVENIA", YES, NO, YES, YES,
  775. YES, YES, YES, 7000},
  776. {CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", "SOUTH AFRICA", YES, NO, YES,
  777. YES, YES, YES, NO, 7000},
  778. {CTRY_SPAIN, ETSI1_WORLD, "ES", "SPAIN", YES, NO, YES, YES, YES,
  779. YES, YES, 7000},
  780. {CTRY_SRI_LANKA, FCC3_WORLD, "LK", "SRI LANKA", YES, NO, YES, YES,
  781. YES, YES, NO, 7000},
  782. {CTRY_SWEDEN, ETSI1_WORLD, "SE", "SWEDEN", YES, NO, YES, YES, YES,
  783. YES, YES, 7000},
  784. {CTRY_SWITZERLAND, ETSI1_WORLD, "CH", "SWITZERLAND", YES, NO, YES,
  785. YES, YES, YES, YES, 7000},
  786. {CTRY_SYRIA, NULL1_WORLD, "SY", "SYRIA", YES, NO, YES, YES, YES,
  787. NO, NO, 7000},
  788. {CTRY_TAIWAN, APL3_FCCA, "TW", "TAIWAN", YES, YES, YES, YES, YES,
  789. YES, YES, 7000},
  790. {CTRY_THAILAND, NULL1_WORLD, "TH", "THAILAND", YES, NO, YES, YES,
  791. YES, NO, NO, 7000},
  792. {CTRY_TRINIDAD_Y_TOBAGO, ETSI4_WORLD, "TT", "TRINIDAD & TOBAGO",
  793. YES, NO, YES, YES, YES, YES, NO, 7000},
  794. {CTRY_TUNISIA, ETSI3_WORLD, "TN", "TUNISIA", YES, NO, YES, YES,
  795. YES, YES, NO, 7000},
  796. {CTRY_TURKEY, ETSI3_WORLD, "TR", "TURKEY", YES, NO, YES, YES, YES,
  797. YES, NO, 7000},
  798. {CTRY_UKRAINE, NULL1_WORLD, "UA", "UKRAINE", YES, NO, YES, YES,
  799. YES, NO, NO, 7000},
  800. {CTRY_UAE, NULL1_WORLD, "AE", "UNITED ARAB EMIRATES", YES, NO, YES,
  801. YES, YES, NO, NO, 7000},
  802. {CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB", "UNITED KINGDOM", YES, NO,
  803. YES, YES, YES, YES, YES, 7000},
  804. {CTRY_UNITED_STATES, FCC3_FCCA, "US", "UNITED STATES", YES, YES,
  805. YES, YES, YES, YES, YES, 5825},
  806. {CTRY_UNITED_STATES_FCC49, FCC4_FCCA, "PS",
  807. "UNITED STATES (PUBLIC SAFETY)", YES, YES, YES, YES, YES, YES,
  808. YES, 7000},
  809. {CTRY_URUGUAY, APL2_WORLD, "UY", "URUGUAY", YES, NO, YES, YES, YES,
  810. YES, NO, 7000},
  811. {CTRY_UZBEKISTAN, FCC3_FCCA, "UZ", "UZBEKISTAN", YES, YES, YES,
  812. YES, YES, YES, YES, 7000},
  813. {CTRY_VENEZUELA, APL2_ETSIC, "VE", "VENEZUELA", YES, NO, YES, YES,
  814. YES, YES, NO, 7000},
  815. {CTRY_VIET_NAM, NULL1_WORLD, "VN", "VIET NAM", YES, NO, YES, YES,
  816. YES, NO, NO, 7000},
  817. {CTRY_YEMEN, NULL1_WORLD, "YE", "YEMEN", YES, NO, YES, YES, YES,
  818. NO, NO, 7000},
  819. {CTRY_ZIMBABWE, NULL1_WORLD, "ZW", "ZIMBABWE", YES, NO, YES, YES,
  820. YES, NO, NO, 7000}
  821. };
  822. enum {
  823. NO_DFS = 0x0000000000000000ULL,
  824. DFS_FCC3 = 0x0000000000000001ULL,
  825. DFS_ETSI = 0x0000000000000002ULL,
  826. DFS_MKK4 = 0x0000000000000004ULL,
  827. };
  828. enum {
  829. F1_4915_4925,
  830. F1_4935_4945,
  831. F1_4920_4980,
  832. F1_4942_4987,
  833. F1_4945_4985,
  834. F1_4950_4980,
  835. F1_5035_5040,
  836. F1_5040_5080,
  837. F1_5055_5055,
  838. F1_5120_5240,
  839. F1_5170_5230,
  840. F2_5170_5230,
  841. F1_5180_5240,
  842. F2_5180_5240,
  843. F3_5180_5240,
  844. F4_5180_5240,
  845. F5_5180_5240,
  846. F6_5180_5240,
  847. F7_5180_5240,
  848. F8_5180_5240,
  849. F1_5180_5320,
  850. F1_5240_5280,
  851. F1_5260_5280,
  852. F1_5260_5320,
  853. F2_5260_5320,
  854. F3_5260_5320,
  855. F4_5260_5320,
  856. F5_5260_5320,
  857. F6_5260_5320,
  858. F1_5260_5700,
  859. F1_5280_5320,
  860. F1_5500_5580,
  861. F1_5500_5620,
  862. F1_5500_5700,
  863. F2_5500_5700,
  864. F3_5500_5700,
  865. F4_5500_5700,
  866. F5_5500_5700,
  867. F1_5660_5700,
  868. F1_5745_5805,
  869. F2_5745_5805,
  870. F3_5745_5805,
  871. F1_5745_5825,
  872. F2_5745_5825,
  873. F3_5745_5825,
  874. F4_5745_5825,
  875. F5_5745_5825,
  876. F6_5745_5825,
  877. W1_4920_4980,
  878. W1_5040_5080,
  879. W1_5170_5230,
  880. W1_5180_5240,
  881. W1_5260_5320,
  882. W1_5745_5825,
  883. W1_5500_5700,
  884. A_DEMO_ALL_CHANNELS
  885. };
  886. static struct RegDmnFreqBand regDmn5GhzFreq[] = {
  887. {4915, 4925, 23, 0, 10, 5, NO_DFS, PSCAN_MKK2, 16},
  888. {4935, 4945, 23, 0, 10, 5, NO_DFS, PSCAN_MKK2, 16},
  889. {4920, 4980, 23, 0, 20, 20, NO_DFS, PSCAN_MKK2, 7},
  890. {4942, 4987, 27, 6, 5, 5, NO_DFS, PSCAN_FCC, 0},
  891. {4945, 4985, 30, 6, 10, 5, NO_DFS, PSCAN_FCC, 0},
  892. {4950, 4980, 33, 6, 20, 5, NO_DFS, PSCAN_FCC, 0},
  893. {5035, 5040, 23, 0, 10, 5, NO_DFS, PSCAN_MKK2, 12},
  894. {5040, 5080, 23, 0, 20, 20, NO_DFS, PSCAN_MKK2, 2},
  895. {5055, 5055, 23, 0, 10, 5, NO_DFS, PSCAN_MKK2, 12},
  896. {5120, 5240, 5, 6, 20, 20, NO_DFS, NO_PSCAN, 0},
  897. {5170, 5230, 23, 0, 20, 20, NO_DFS, PSCAN_MKK1 | PSCAN_MKK2, 1},
  898. {5170, 5230, 20, 0, 20, 20, NO_DFS, PSCAN_MKK1 | PSCAN_MKK2, 1},
  899. {5180, 5240, 15, 0, 20, 20, NO_DFS, PSCAN_FCC | PSCAN_ETSI, 0},
  900. {5180, 5240, 17, 6, 20, 20, NO_DFS, NO_PSCAN, 1},
  901. {5180, 5240, 18, 0, 20, 20, NO_DFS, PSCAN_FCC | PSCAN_ETSI, 0},
  902. {5180, 5240, 20, 0, 20, 20, NO_DFS, PSCAN_FCC | PSCAN_ETSI, 0},
  903. {5180, 5240, 23, 0, 20, 20, NO_DFS, PSCAN_FCC | PSCAN_ETSI, 0},
  904. {5180, 5240, 23, 6, 20, 20, NO_DFS, PSCAN_FCC, 0},
  905. {5180, 5240, 20, 0, 20, 20, NO_DFS, PSCAN_MKK1 | PSCAN_MKK3, 0},
  906. {5180, 5240, 23, 6, 20, 20, NO_DFS, NO_PSCAN, 0},
  907. {5180, 5320, 20, 6, 20, 20, NO_DFS, PSCAN_ETSI, 0},
  908. {5240, 5280, 23, 0, 20, 20, DFS_FCC3, PSCAN_FCC | PSCAN_ETSI, 0},
  909. {5260, 5280, 23, 0, 20, 20, DFS_FCC3 | DFS_ETSI,
  910. PSCAN_FCC | PSCAN_ETSI, 0},
  911. {5260, 5320, 18, 0, 20, 20, DFS_FCC3 | DFS_ETSI,
  912. PSCAN_FCC | PSCAN_ETSI, 0},
  913. {5260, 5320, 20, 0, 20, 20, DFS_FCC3 | DFS_ETSI | DFS_MKK4,
  914. PSCAN_FCC | PSCAN_ETSI | PSCAN_MKK3, 0},
  915. {5260, 5320, 20, 6, 20, 20, DFS_FCC3 | DFS_ETSI,
  916. PSCAN_FCC | PSCAN_ETSI, 2},
  917. {5260, 5320, 23, 6, 20, 20, DFS_FCC3 | DFS_ETSI, PSCAN_FCC, 2},
  918. {5260, 5320, 23, 6, 20, 20, DFS_FCC3 | DFS_ETSI, PSCAN_FCC, 0},
  919. {5260, 5320, 30, 0, 20, 20, NO_DFS, NO_PSCAN, 0},
  920. {5260, 5700, 5, 6, 20, 20, DFS_FCC3 | DFS_ETSI, NO_PSCAN, 0},
  921. {5280, 5320, 17, 6, 20, 20, DFS_FCC3 | DFS_ETSI, PSCAN_FCC, 0},
  922. {5500, 5580, 23, 6, 20, 20, DFS_FCC3, PSCAN_FCC, 0},
  923. {5500, 5620, 30, 6, 20, 20, DFS_ETSI, PSCAN_ETSI, 0},
  924. {5500, 5700, 20, 6, 20, 20, DFS_FCC3 | DFS_ETSI, PSCAN_FCC, 4},
  925. {5500, 5700, 27, 0, 20, 20, DFS_FCC3 | DFS_ETSI,
  926. PSCAN_FCC | PSCAN_ETSI, 0},
  927. {5500, 5700, 30, 0, 20, 20, DFS_FCC3 | DFS_ETSI,
  928. PSCAN_FCC | PSCAN_ETSI, 0},
  929. {5500, 5700, 23, 0, 20, 20, DFS_FCC3 | DFS_ETSI | DFS_MKK4,
  930. PSCAN_MKK3 | PSCAN_FCC, 0},
  931. {5500, 5700, 30, 6, 20, 20, DFS_ETSI, PSCAN_ETSI, 0},
  932. {5660, 5700, 23, 6, 20, 20, DFS_FCC3, PSCAN_FCC, 0},
  933. {5745, 5805, 23, 0, 20, 20, NO_DFS, NO_PSCAN, 0},
  934. {5745, 5805, 30, 6, 20, 20, NO_DFS, NO_PSCAN, 0},
  935. {5745, 5805, 30, 6, 20, 20, NO_DFS, PSCAN_ETSI, 0},
  936. {5745, 5825, 5, 6, 20, 20, NO_DFS, NO_PSCAN, 0},
  937. {5745, 5825, 17, 0, 20, 20, NO_DFS, NO_PSCAN, 0},
  938. {5745, 5825, 20, 0, 20, 20, NO_DFS, NO_PSCAN, 0},
  939. {5745, 5825, 30, 0, 20, 20, NO_DFS, NO_PSCAN, 0},
  940. {5745, 5825, 30, 6, 20, 20, NO_DFS, NO_PSCAN, 3},
  941. {5745, 5825, 30, 6, 20, 20, NO_DFS, NO_PSCAN, 0},
  942. {4920, 4980, 30, 0, 20, 20, NO_DFS, PSCAN_WWR, 0},
  943. {5040, 5080, 30, 0, 20, 20, NO_DFS, PSCAN_WWR, 0},
  944. {5170, 5230, 30, 0, 20, 20, NO_DFS, PSCAN_WWR, 0},
  945. {5180, 5240, 30, 0, 20, 20, NO_DFS, PSCAN_WWR, 0},
  946. {5260, 5320, 30, 0, 20, 20, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, 0},
  947. {5745, 5825, 30, 0, 20, 20, NO_DFS, PSCAN_WWR, 0},
  948. {5500, 5700, 30, 0, 20, 20, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, 0},
  949. {4920, 6100, 30, 6, 20, 20, NO_DFS, NO_PSCAN, 0},
  950. };
  951. enum {
  952. T1_5130_5650,
  953. T1_5150_5670,
  954. T1_5200_5200,
  955. T2_5200_5200,
  956. T3_5200_5200,
  957. T4_5200_5200,
  958. T5_5200_5200,
  959. T6_5200_5200,
  960. T7_5200_5200,
  961. T8_5200_5200,
  962. T1_5200_5280,
  963. T2_5200_5280,
  964. T3_5200_5280,
  965. T4_5200_5280,
  966. T5_5200_5280,
  967. T6_5200_5280,
  968. T1_5200_5240,
  969. T1_5210_5210,
  970. T2_5210_5210,
  971. T3_5210_5210,
  972. T4_5210_5210,
  973. T5_5210_5210,
  974. T6_5210_5210,
  975. T7_5210_5210,
  976. T8_5210_5210,
  977. T9_5210_5210,
  978. T10_5210_5210,
  979. T1_5240_5240,
  980. T1_5210_5250,
  981. T1_5210_5290,
  982. T2_5210_5290,
  983. T3_5210_5290,
  984. T1_5280_5280,
  985. T2_5280_5280,
  986. T1_5290_5290,
  987. T2_5290_5290,
  988. T3_5290_5290,
  989. T1_5250_5290,
  990. T2_5250_5290,
  991. T3_5250_5290,
  992. T4_5250_5290,
  993. T1_5540_5660,
  994. T2_5540_5660,
  995. T3_5540_5660,
  996. T1_5760_5800,
  997. T2_5760_5800,
  998. T3_5760_5800,
  999. T4_5760_5800,
  1000. T5_5760_5800,
  1001. T6_5760_5800,
  1002. T7_5760_5800,
  1003. T1_5765_5805,
  1004. T2_5765_5805,
  1005. T3_5765_5805,
  1006. T4_5765_5805,
  1007. T5_5765_5805,
  1008. T6_5765_5805,
  1009. T7_5765_5805,
  1010. T8_5765_5805,
  1011. T9_5765_5805,
  1012. WT1_5210_5250,
  1013. WT1_5290_5290,
  1014. WT1_5540_5660,
  1015. WT1_5760_5800,
  1016. };
  1017. enum {
  1018. F1_2312_2372,
  1019. F2_2312_2372,
  1020. F1_2412_2472,
  1021. F2_2412_2472,
  1022. F3_2412_2472,
  1023. F1_2412_2462,
  1024. F2_2412_2462,
  1025. F1_2432_2442,
  1026. F1_2457_2472,
  1027. F1_2467_2472,
  1028. F1_2484_2484,
  1029. F2_2484_2484,
  1030. F1_2512_2732,
  1031. W1_2312_2372,
  1032. W1_2412_2412,
  1033. W1_2417_2432,
  1034. W1_2437_2442,
  1035. W1_2447_2457,
  1036. W1_2462_2462,
  1037. W1_2467_2467,
  1038. W2_2467_2467,
  1039. W1_2472_2472,
  1040. W2_2472_2472,
  1041. W1_2484_2484,
  1042. W2_2484_2484,
  1043. };
  1044. static struct RegDmnFreqBand regDmn2GhzFreq[] = {
  1045. {2312, 2372, 5, 6, 20, 5, NO_DFS, NO_PSCAN, 0},
  1046. {2312, 2372, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1047. {2412, 2472, 5, 6, 20, 5, NO_DFS, NO_PSCAN, 0},
  1048. {2412, 2472, 20, 0, 20, 5, NO_DFS, PSCAN_MKKA, 0},
  1049. {2412, 2472, 30, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1050. {2412, 2462, 27, 6, 20, 5, NO_DFS, NO_PSCAN, 0},
  1051. {2412, 2462, 20, 0, 20, 5, NO_DFS, PSCAN_MKKA, 0},
  1052. {2432, 2442, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1053. {2457, 2472, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1054. {2467, 2472, 20, 0, 20, 5, NO_DFS, PSCAN_MKKA2 | PSCAN_MKKA, 0},
  1055. {2484, 2484, 5, 6, 20, 5, NO_DFS, NO_PSCAN, 0},
  1056. {2484, 2484, 20, 0, 20, 5, NO_DFS,
  1057. PSCAN_MKKA | PSCAN_MKKA1 | PSCAN_MKKA2, 0},
  1058. {2512, 2732, 5, 6, 20, 5, NO_DFS, NO_PSCAN, 0},
  1059. {2312, 2372, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1060. {2412, 2412, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1061. {2417, 2432, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1062. {2437, 2442, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1063. {2447, 2457, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1064. {2462, 2462, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1065. {2467, 2467, 20, 0, 20, 5, NO_DFS, PSCAN_WWR | IS_ECM_CHAN, 0},
  1066. {2467, 2467, 20, 0, 20, 5, NO_DFS, NO_PSCAN | IS_ECM_CHAN, 0},
  1067. {2472, 2472, 20, 0, 20, 5, NO_DFS, PSCAN_WWR | IS_ECM_CHAN, 0},
  1068. {2472, 2472, 20, 0, 20, 5, NO_DFS, NO_PSCAN | IS_ECM_CHAN, 0},
  1069. {2484, 2484, 20, 0, 20, 5, NO_DFS, PSCAN_WWR | IS_ECM_CHAN, 0},
  1070. {2484, 2484, 20, 0, 20, 5, NO_DFS, NO_PSCAN | IS_ECM_CHAN, 0},
  1071. };
  1072. enum {
  1073. G1_2312_2372,
  1074. G2_2312_2372,
  1075. G1_2412_2472,
  1076. G2_2412_2472,
  1077. G3_2412_2472,
  1078. G1_2412_2462,
  1079. G2_2412_2462,
  1080. G1_2432_2442,
  1081. G1_2457_2472,
  1082. G1_2512_2732,
  1083. G1_2467_2472,
  1084. WG1_2312_2372,
  1085. WG1_2412_2462,
  1086. WG1_2467_2472,
  1087. WG2_2467_2472,
  1088. G_DEMO_ALL_CHANNELS
  1089. };
  1090. static struct RegDmnFreqBand regDmn2Ghz11gFreq[] = {
  1091. {2312, 2372, 5, 6, 20, 5, NO_DFS, NO_PSCAN, 0},
  1092. {2312, 2372, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1093. {2412, 2472, 5, 6, 20, 5, NO_DFS, NO_PSCAN, 0},
  1094. {2412, 2472, 20, 0, 20, 5, NO_DFS, PSCAN_MKKA_G, 0},
  1095. {2412, 2472, 30, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1096. {2412, 2462, 27, 6, 20, 5, NO_DFS, NO_PSCAN, 0},
  1097. {2412, 2462, 20, 0, 20, 5, NO_DFS, PSCAN_MKKA_G, 0},
  1098. {2432, 2442, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1099. {2457, 2472, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1100. {2512, 2732, 5, 6, 20, 5, NO_DFS, NO_PSCAN, 0},
  1101. {2467, 2472, 20, 0, 20, 5, NO_DFS, PSCAN_MKKA2 | PSCAN_MKKA, 0},
  1102. {2312, 2372, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1103. {2412, 2462, 20, 0, 20, 5, NO_DFS, NO_PSCAN, 0},
  1104. {2467, 2472, 20, 0, 20, 5, NO_DFS, PSCAN_WWR | IS_ECM_CHAN, 0},
  1105. {2467, 2472, 20, 0, 20, 5, NO_DFS, NO_PSCAN | IS_ECM_CHAN, 0},
  1106. {2312, 2732, 27, 6, 20, 5, NO_DFS, NO_PSCAN, 0},
  1107. };
  1108. enum {
  1109. T1_2312_2372,
  1110. T1_2437_2437,
  1111. T2_2437_2437,
  1112. T3_2437_2437,
  1113. T1_2512_2732
  1114. };
  1115. static struct regDomain regDomains[] = {
  1116. {DEBUG_REG_DMN, FCC, DFS_FCC3, NO_PSCAN, NO_REQ,
  1117. BM(A_DEMO_ALL_CHANNELS, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1118. -1),
  1119. BM(T1_5130_5650, T1_5150_5670, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1120. -1),
  1121. BM(T1_5200_5240, T1_5280_5280, T1_5540_5660, T1_5765_5805, -1, -1,
  1122. -1, -1, -1, -1, -1, -1),
  1123. BM(F1_2312_2372, F1_2412_2472, F1_2484_2484, F1_2512_2732, -1, -1,
  1124. -1, -1, -1, -1, -1, -1),
  1125. BM(G_DEMO_ALL_CHANNELS, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1126. -1),
  1127. BM(T1_2312_2372, T1_2437_2437, T1_2512_2732, -1, -1, -1, -1, -1,
  1128. -1, -1, -1, -1)},
  1129. {APL1, FCC, NO_DFS, NO_PSCAN, NO_REQ,
  1130. BM(F4_5745_5825, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1131. BM(T2_5760_5800, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1132. BM(T1_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1133. BMZERO,
  1134. BMZERO,
  1135. BMZERO},
  1136. {APL2, FCC, NO_DFS, NO_PSCAN, NO_REQ,
  1137. BM(F1_5745_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1138. BM(T1_5760_5800, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1139. BM(T2_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1140. BMZERO,
  1141. BMZERO,
  1142. BMZERO},
  1143. {APL3, FCC, NO_DFS, NO_PSCAN, NO_REQ,
  1144. BM(F1_5280_5320, F2_5745_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1145. -1),
  1146. BM(T1_5290_5290, T1_5760_5800, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1147. -1),
  1148. BM(T1_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1149. BMZERO,
  1150. BMZERO,
  1151. BMZERO},
  1152. {APL4, FCC, NO_DFS, NO_PSCAN, NO_REQ,
  1153. BM(F4_5180_5240, F3_5745_5825, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1154. -1),
  1155. BM(T1_5210_5210, T3_5760_5800, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1156. -1),
  1157. BM(T1_5200_5200, T3_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1158. -1),
  1159. BMZERO,
  1160. BMZERO,
  1161. BMZERO},
  1162. {APL5, FCC, NO_DFS, NO_PSCAN, NO_REQ,
  1163. BM(F2_5745_5825, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1164. BM(T4_5760_5800, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1165. BM(T4_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1166. BMZERO,
  1167. BMZERO,
  1168. BMZERO},
  1169. {APL6, ETSI, DFS_ETSI, PSCAN_FCC_T | PSCAN_FCC, NO_REQ,
  1170. BM(F4_5180_5240, F2_5260_5320, F3_5745_5825, -1, -1, -1, -1, -1,
  1171. -1, -1, -1, -1),
  1172. BM(T2_5210_5210, T1_5250_5290, T1_5760_5800, -1, -1, -1, -1, -1,
  1173. -1, -1, -1, -1),
  1174. BM(T1_5200_5280, T5_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1175. -1),
  1176. BMZERO,
  1177. BMZERO,
  1178. BMZERO},
  1179. {APL7, ETSI, DFS_ETSI, PSCAN_ETSI, NO_REQ,
  1180. BM(F1_5280_5320, F5_5500_5700, F3_5745_5805, -1, -1, -1, -1, -1,
  1181. -1, -1, -1, -1),
  1182. BM(T3_5290_5290, T5_5760_5800, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1183. -1),
  1184. BM(T1_5540_5660, T6_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1185. -1),
  1186. BMZERO,
  1187. BMZERO,
  1188. BMZERO},
  1189. {APL8, ETSI, NO_DFS, NO_PSCAN,
  1190. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1191. BM(F6_5260_5320, F4_5745_5825, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1192. -1),
  1193. BM(T2_5290_5290, T2_5760_5800, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1194. -1),
  1195. BM(T1_5280_5280, T1_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1196. -1),
  1197. BMZERO,
  1198. BMZERO,
  1199. BMZERO},
  1200. {APL9, ETSI, DFS_ETSI, PSCAN_ETSI,
  1201. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1202. BM(F1_5180_5320, F1_5500_5620, F3_5745_5805, -1, -1, -1, -1, -1,
  1203. -1, -1, -1, -1),
  1204. BM(T3_5290_5290, T5_5760_5800, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1205. -1),
  1206. BM(T1_5540_5660, T6_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1207. -1),
  1208. BMZERO,
  1209. BMZERO,
  1210. BMZERO},
  1211. {APL10, ETSI, DFS_ETSI, PSCAN_ETSI,
  1212. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1213. BM(F1_5180_5320, F5_5500_5700, F3_5745_5805, -1, -1, -1, -1, -1,
  1214. -1, -1, -1, -1),
  1215. BM(T3_5290_5290, T5_5760_5800, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1216. -1),
  1217. BM(T1_5540_5660, T6_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1218. -1),
  1219. BMZERO,
  1220. BMZERO,
  1221. BMZERO},
  1222. {ETSI1, ETSI, DFS_ETSI, PSCAN_ETSI,
  1223. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1224. BM(F4_5180_5240, F2_5260_5320, F2_5500_5700, -1, -1, -1, -1, -1,
  1225. -1, -1, -1, -1),
  1226. BM(T1_5210_5290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1227. BM(T2_5200_5280, T2_5540_5660, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1228. -1),
  1229. BMZERO,
  1230. BMZERO,
  1231. BMZERO},
  1232. {ETSI2, ETSI, DFS_ETSI, PSCAN_ETSI,
  1233. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1234. BM(F3_5180_5240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1235. BM(T3_5210_5210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1236. BM(T2_5200_5200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1237. BMZERO,
  1238. BMZERO,
  1239. BMZERO},
  1240. {ETSI3, ETSI, DFS_ETSI, PSCAN_ETSI,
  1241. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1242. BM(F4_5180_5240, F2_5260_5320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1243. -1),
  1244. BM(T1_5210_5290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1245. BM(T2_5200_5280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1246. BMZERO,
  1247. BMZERO,
  1248. BMZERO},
  1249. {ETSI4, ETSI, DFS_ETSI, PSCAN_ETSI,
  1250. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1251. BM(F3_5180_5240, F1_5260_5320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1252. -1),
  1253. BM(T2_5210_5290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1254. BM(T3_5200_5280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1255. BMZERO,
  1256. BMZERO,
  1257. BMZERO},
  1258. {ETSI5, ETSI, DFS_ETSI, PSCAN_ETSI,
  1259. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1260. BM(F1_5180_5240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1261. BM(T4_5210_5210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1262. BM(T3_5200_5200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1263. BMZERO,
  1264. BMZERO,
  1265. BMZERO},
  1266. {ETSI6, ETSI, DFS_ETSI, PSCAN_ETSI,
  1267. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1268. BM(F5_5180_5240, F1_5260_5280, F3_5500_5700, -1, -1, -1, -1, -1,
  1269. -1, -1, -1, -1),
  1270. BM(T1_5210_5250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1271. BM(T4_5200_5280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1272. BMZERO,
  1273. BMZERO,
  1274. BMZERO},
  1275. {FCC1, FCC, NO_DFS, NO_PSCAN, NO_REQ,
  1276. BM(F2_5180_5240, F4_5260_5320, F5_5745_5825, -1, -1, -1, -1, -1,
  1277. -1, -1, -1, -1),
  1278. BM(T6_5210_5210, T2_5250_5290, T6_5760_5800, -1, -1, -1, -1, -1,
  1279. -1, -1, -1, -1),
  1280. BM(T1_5200_5240, T2_5280_5280, T7_5765_5805, -1, -1, -1, -1, -1,
  1281. -1, -1, -1, -1),
  1282. BMZERO,
  1283. BMZERO,
  1284. BMZERO},
  1285. {FCC2, FCC, NO_DFS, NO_PSCAN, NO_REQ,
  1286. BM(F6_5180_5240, F5_5260_5320, F6_5745_5825, -1, -1, -1, -1, -1,
  1287. -1, -1, -1, -1),
  1288. BM(T7_5210_5210, T3_5250_5290, T2_5760_5800, -1, -1, -1, -1, -1,
  1289. -1, -1, -1, -1),
  1290. BM(T7_5200_5200, T1_5240_5240, T2_5280_5280, T1_5765_5805, -1, -1,
  1291. -1, -1, -1, -1, -1, -1),
  1292. BMZERO,
  1293. BMZERO,
  1294. BMZERO},
  1295. {FCC3, FCC, DFS_FCC3, PSCAN_FCC | PSCAN_FCC_T, NO_REQ,
  1296. BM(F2_5180_5240, F3_5260_5320, F1_5500_5700, F5_5745_5825, -1, -1,
  1297. -1, -1, -1, -1, -1, -1),
  1298. BM(T6_5210_5210, T2_5760_5800, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1299. -1),
  1300. BM(T4_5200_5200, T8_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1301. -1),
  1302. BMZERO,
  1303. BMZERO,
  1304. BMZERO},
  1305. {FCC4, FCC, DFS_FCC3, PSCAN_FCC | PSCAN_FCC_T, NO_REQ,
  1306. BM(F1_4942_4987, F1_4945_4985, F1_4950_4980, -1, -1, -1, -1, -1,
  1307. -1, -1, -1, -1),
  1308. BM(T8_5210_5210, T4_5250_5290, T7_5760_5800, -1, -1, -1, -1, -1,
  1309. -1, -1, -1, -1),
  1310. BM(T1_5200_5240, T1_5280_5280, T9_5765_5805, -1, -1, -1, -1, -1,
  1311. -1, -1, -1, -1),
  1312. BMZERO,
  1313. BMZERO,
  1314. BMZERO},
  1315. {FCC5, FCC, NO_DFS, NO_PSCAN, NO_REQ,
  1316. BM(F2_5180_5240, F6_5745_5825, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1317. -1),
  1318. BM(T6_5210_5210, T2_5760_5800, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1319. -1),
  1320. BM(T8_5200_5200, T7_5765_5805, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1321. -1),
  1322. BMZERO,
  1323. BMZERO,
  1324. BMZERO},
  1325. {FCC6, FCC, DFS_FCC3, PSCAN_FCC, NO_REQ,
  1326. BM(F8_5180_5240, F5_5260_5320, F1_5500_5580, F1_5660_5700,
  1327. F6_5745_5825, -1, -1, -1, -1, -1, -1, -1),
  1328. BM(T7_5210_5210, T3_5250_5290, T2_5760_5800, -1, -1, -1, -1, -1,
  1329. -1, -1, -1, -1),
  1330. BM(T7_5200_5200, T1_5240_5240, T2_5280_5280, T1_5765_5805, -1, -1,
  1331. -1, -1, -1, -1, -1, -1),
  1332. BMZERO,
  1333. BMZERO,
  1334. BMZERO},
  1335. {MKK1, MKK, NO_DFS, PSCAN_MKK1, DISALLOW_ADHOC_11A_TURB,
  1336. BM(F1_5170_5230, F4_5180_5240, F2_5260_5320, F4_5500_5700, -1, -1,
  1337. -1, -1, -1, -1, -1, -1),
  1338. BM(T7_5210_5210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1339. BM(T5_5200_5200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1340. BMZERO,
  1341. BMZERO,
  1342. BMZERO},
  1343. {MKK2, MKK, NO_DFS, PSCAN_MKK2, DISALLOW_ADHOC_11A_TURB,
  1344. BM(F1_4915_4925, F1_4935_4945, F1_4920_4980, F1_5035_5040,
  1345. F1_5055_5055, F1_5040_5080, F1_5170_5230, F4_5180_5240,
  1346. F2_5260_5320, F4_5500_5700, -1, -1),
  1347. BM(T7_5210_5210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1348. BM(T5_5200_5200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1349. BMZERO,
  1350. BMZERO,
  1351. BMZERO},
  1352. {MKK3, MKK, NO_DFS, PSCAN_MKK3, DISALLOW_ADHOC_11A_TURB,
  1353. BM(F4_5180_5240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1354. BM(T9_5210_5210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1355. BM(T1_5200_5200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1356. BMZERO,
  1357. BMZERO,
  1358. BMZERO},
  1359. {MKK4, MKK, DFS_MKK4, PSCAN_MKK3, DISALLOW_ADHOC_11A_TURB,
  1360. BM(F4_5180_5240, F2_5260_5320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1361. -1),
  1362. BM(T10_5210_5210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1363. BM(T6_5200_5200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1364. BMZERO,
  1365. BMZERO,
  1366. BMZERO},
  1367. {MKK5, MKK, DFS_MKK4, PSCAN_MKK3, DISALLOW_ADHOC_11A_TURB,
  1368. BM(F4_5180_5240, F2_5260_5320, F4_5500_5700, -1, -1, -1, -1, -1,
  1369. -1, -1, -1, -1),
  1370. BM(T3_5210_5290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1371. BM(T5_5200_5280, T3_5540_5660, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1372. -1),
  1373. BMZERO,
  1374. BMZERO,
  1375. BMZERO},
  1376. {MKK6, MKK, NO_DFS, PSCAN_MKK1, DISALLOW_ADHOC_11A_TURB,
  1377. BM(F2_5170_5230, F4_5180_5240, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1378. -1),
  1379. BM(T3_5210_5210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1380. BM(T6_5200_5200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1381. BMZERO,
  1382. BMZERO,
  1383. BMZERO},
  1384. {MKK7, MKK, DFS_MKK4, PSCAN_MKK1 | PSCAN_MKK3,
  1385. DISALLOW_ADHOC_11A_TURB,
  1386. BM(F1_5170_5230, F4_5180_5240, F2_5260_5320, -1, -1, -1, -1, -1,
  1387. -1, -1, -1, -1),
  1388. BM(T3_5210_5290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1389. BM(T5_5200_5280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1390. BMZERO,
  1391. BMZERO,
  1392. BMZERO},
  1393. {MKK8, MKK, DFS_MKK4, PSCAN_MKK1 | PSCAN_MKK3,
  1394. DISALLOW_ADHOC_11A_TURB,
  1395. BM(F1_5170_5230, F4_5180_5240, F2_5260_5320, F4_5500_5700, -1, -1,
  1396. -1, -1, -1, -1, -1, -1),
  1397. BM(T3_5210_5290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1398. BM(T5_5200_5280, T3_5540_5660, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1399. -1),
  1400. BMZERO,
  1401. BMZERO,
  1402. BMZERO},
  1403. {MKK9, MKK, NO_DFS, PSCAN_MKK2 | PSCAN_MKK3,
  1404. DISALLOW_ADHOC_11A_TURB,
  1405. BM(F1_4915_4925, F1_4935_4945, F1_4920_4980, F1_5035_5040,
  1406. F1_5055_5055, F1_5040_5080, F4_5180_5240, -1, -1, -1, -1, -1),
  1407. BM(T9_5210_5210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1408. BM(T1_5200_5200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1409. BMZERO,
  1410. BMZERO,
  1411. BMZERO},
  1412. {MKK10, MKK, DFS_MKK4, PSCAN_MKK2 | PSCAN_MKK3,
  1413. DISALLOW_ADHOC_11A_TURB,
  1414. BM(F1_4915_4925, F1_4935_4945, F1_4920_4980, F1_5035_5040,
  1415. F1_5055_5055, F1_5040_5080, F4_5180_5240, F2_5260_5320, -1, -1,
  1416. -1, -1),
  1417. BM(T3_5210_5290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1418. BM(T1_5200_5280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1419. BMZERO,
  1420. BMZERO,
  1421. BMZERO},
  1422. {MKK11, MKK, DFS_MKK4, PSCAN_MKK3, DISALLOW_ADHOC_11A_TURB,
  1423. BM(F1_4915_4925, F1_4935_4945, F1_4920_4980, F1_5035_5040,
  1424. F1_5055_5055, F1_5040_5080, F4_5180_5240, F2_5260_5320,
  1425. F4_5500_5700, -1, -1, -1),
  1426. BM(T3_5210_5290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1427. BM(T1_5200_5280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1428. BMZERO,
  1429. BMZERO,
  1430. BMZERO},
  1431. {MKK12, MKK, DFS_MKK4, PSCAN_MKK1 | PSCAN_MKK3,
  1432. DISALLOW_ADHOC_11A_TURB,
  1433. BM(F1_4915_4925, F1_4935_4945, F1_4920_4980, F1_5035_5040,
  1434. F1_5055_5055, F1_5040_5080, F1_5170_5230, F4_5180_5240,
  1435. F2_5260_5320, F4_5500_5700, -1, -1),
  1436. BM(T3_5210_5290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1437. BM(T1_5200_5280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1438. BMZERO,
  1439. BMZERO,
  1440. BMZERO},
  1441. {MKK13, MKK, DFS_MKK4, PSCAN_MKK1 | PSCAN_MKK3,
  1442. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1443. BM(F1_5170_5230, F7_5180_5240, F2_5260_5320, F4_5500_5700, -1, -1,
  1444. -1, -1, -1, -1, -1, -1),
  1445. BMZERO,
  1446. BMZERO,
  1447. BMZERO,
  1448. BMZERO,
  1449. BMZERO},
  1450. {MKK14, MKK, DFS_MKK4, PSCAN_MKK1, DISALLOW_ADHOC_11A_TURB,
  1451. BM(F1_4915_4925, F1_4935_4945, F1_4920_4980, F1_5035_5040,
  1452. F1_5040_5080, F1_5055_5055, F1_5170_5230, F4_5180_5240, -1, -1,
  1453. -1, -1),
  1454. BMZERO,
  1455. BMZERO,
  1456. BMZERO,
  1457. BMZERO,
  1458. BMZERO},
  1459. {MKK15, MKK, DFS_MKK4, PSCAN_MKK1, DISALLOW_ADHOC_11A_TURB,
  1460. BM(F1_4915_4925, F1_4935_4945, F1_4920_4980, F1_5035_5040,
  1461. F1_5040_5080, F1_5055_5055, F1_5170_5230, F4_5180_5240,
  1462. F2_5260_5320, -1, -1, -1),
  1463. BMZERO,
  1464. BMZERO,
  1465. BMZERO,
  1466. BMZERO,
  1467. BMZERO},
  1468. {APLD, NO_CTL, NO_DFS, NO_PSCAN, NO_REQ,
  1469. BMZERO,
  1470. BMZERO,
  1471. BMZERO,
  1472. BM(F2_2312_2372, F2_2412_2472, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1473. -1),
  1474. BM(G2_2312_2372, G2_2412_2472, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1475. -1),
  1476. BMZERO},
  1477. {ETSIA, NO_CTL, NO_DFS, PSCAN_ETSIA,
  1478. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1479. BMZERO,
  1480. BMZERO,
  1481. BMZERO,
  1482. BM(F1_2457_2472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1483. BM(G1_2457_2472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1484. BM(T2_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1485. {ETSIB, ETSI, NO_DFS, PSCAN_ETSIB,
  1486. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1487. BMZERO,
  1488. BMZERO,
  1489. BMZERO,
  1490. BM(F1_2432_2442, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1491. BM(G1_2432_2442, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1492. BM(T2_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1493. {ETSIC, ETSI, NO_DFS, PSCAN_ETSIC,
  1494. DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB,
  1495. BMZERO,
  1496. BMZERO,
  1497. BMZERO,
  1498. BM(F3_2412_2472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1499. BM(G3_2412_2472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1500. BM(T2_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1501. {FCCA, FCC, NO_DFS, NO_PSCAN, NO_REQ,
  1502. BMZERO,
  1503. BMZERO,
  1504. BMZERO,
  1505. BM(F1_2412_2462, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1506. BM(G1_2412_2462, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1507. BM(T2_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1508. {MKKA, MKK, NO_DFS,
  1509. PSCAN_MKKA | PSCAN_MKKA_G | PSCAN_MKKA1 | PSCAN_MKKA1_G |
  1510. PSCAN_MKKA2 | PSCAN_MKKA2_G, DISALLOW_ADHOC_11A_TURB,
  1511. BMZERO,
  1512. BMZERO,
  1513. BMZERO,
  1514. BM(F2_2412_2462, F1_2467_2472, F2_2484_2484, -1, -1, -1, -1, -1,
  1515. -1, -1, -1, -1),
  1516. BM(G2_2412_2462, G1_2467_2472, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  1517. -1),
  1518. BM(T2_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1519. {MKKC, MKK, NO_DFS, NO_PSCAN, NO_REQ,
  1520. BMZERO,
  1521. BMZERO,
  1522. BMZERO,
  1523. BM(F2_2412_2472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1524. BM(G2_2412_2472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1525. BM(T2_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1526. {WORLD, ETSI, NO_DFS, NO_PSCAN, NO_REQ,
  1527. BMZERO,
  1528. BMZERO,
  1529. BMZERO,
  1530. BM(F2_2412_2472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1531. BM(G2_2412_2472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1532. BM(T2_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1533. {WOR0_WORLD, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, ADHOC_PER_11D,
  1534. BM(W1_5260_5320, W1_5180_5240, W1_5170_5230, W1_5745_5825,
  1535. W1_5500_5700, -1, -1, -1, -1, -1, -1, -1),
  1536. BM(WT1_5210_5250, WT1_5290_5290, WT1_5760_5800, -1, -1, -1, -1,
  1537. -1, -1, -1, -1, -1),
  1538. BMZERO,
  1539. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W1_2472_2472,
  1540. W1_2417_2432, W1_2447_2457, W1_2467_2467, W1_2484_2484, -1, -1,
  1541. -1, -1),
  1542. BM(WG1_2412_2462, WG1_2467_2472, -1, -1, -1, -1, -1, -1, -1, -1,
  1543. -1, -1),
  1544. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1545. {WOR01_WORLD, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR,
  1546. ADHOC_PER_11D,
  1547. BM(W1_5260_5320, W1_5180_5240, W1_5170_5230, W1_5745_5825,
  1548. W1_5500_5700, -1, -1, -1, -1, -1, -1, -1),
  1549. BM(WT1_5210_5250, WT1_5290_5290, WT1_5760_5800, -1, -1, -1, -1,
  1550. -1, -1, -1, -1, -1),
  1551. BMZERO,
  1552. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W1_2417_2432,
  1553. W1_2447_2457, -1, -1, -1, -1, -1, -1, -1),
  1554. BM(WG1_2412_2462, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1555. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1556. {WOR02_WORLD, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR,
  1557. ADHOC_PER_11D,
  1558. BM(W1_5260_5320, W1_5180_5240, W1_5170_5230, W1_5745_5825,
  1559. W1_5500_5700, -1, -1, -1, -1, -1, -1, -1),
  1560. BM(WT1_5210_5250, WT1_5290_5290, WT1_5760_5800, -1, -1, -1, -1,
  1561. -1, -1, -1, -1, -1),
  1562. BMZERO,
  1563. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W1_2472_2472,
  1564. W1_2417_2432, W1_2447_2457, W1_2467_2467, -1, -1, -1, -1, -1),
  1565. BM(WG1_2412_2462, WG1_2467_2472, -1, -1, -1, -1, -1, -1, -1, -1,
  1566. -1, -1),
  1567. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1568. {EU1_WORLD, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, ADHOC_PER_11D,
  1569. BM(W1_5260_5320, W1_5180_5240, W1_5170_5230, W1_5745_5825,
  1570. W1_5500_5700, -1, -1, -1, -1, -1, -1, -1),
  1571. BM(WT1_5210_5250, WT1_5290_5290, WT1_5760_5800, -1, -1, -1, -1,
  1572. -1, -1, -1, -1, -1),
  1573. BMZERO,
  1574. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W2_2472_2472,
  1575. W1_2417_2432, W1_2447_2457, W2_2467_2467, -1, -1, -1, -1, -1),
  1576. BM(WG1_2412_2462, WG2_2467_2472, -1, -1, -1, -1, -1, -1, -1, -1,
  1577. -1, -1),
  1578. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1579. {WOR1_WORLD, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, ADHOC_NO_11A,
  1580. BM(W1_5260_5320, W1_5180_5240, W1_5170_5230, W1_5745_5825,
  1581. W1_5500_5700, -1, -1, -1, -1, -1, -1, -1),
  1582. BMZERO,
  1583. BMZERO,
  1584. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W1_2472_2472,
  1585. W1_2417_2432, W1_2447_2457, W1_2467_2467, W1_2484_2484, -1, -1,
  1586. -1, -1),
  1587. BM(WG1_2412_2462, WG1_2467_2472, -1, -1, -1, -1, -1, -1, -1, -1,
  1588. -1, -1),
  1589. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1590. {WOR2_WORLD, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, ADHOC_NO_11A,
  1591. BM(W1_5260_5320, W1_5180_5240, W1_5170_5230, W1_5745_5825,
  1592. W1_5500_5700, -1, -1, -1, -1, -1, -1, -1),
  1593. BM(WT1_5210_5250, WT1_5290_5290, WT1_5760_5800, -1, -1, -1, -1,
  1594. -1, -1, -1, -1, -1),
  1595. BMZERO,
  1596. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W1_2472_2472,
  1597. W1_2417_2432, W1_2447_2457, W1_2467_2467, W1_2484_2484, -1, -1,
  1598. -1, -1),
  1599. BM(WG1_2412_2462, WG1_2467_2472, -1, -1, -1, -1, -1, -1, -1, -1,
  1600. -1, -1),
  1601. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1602. {WOR3_WORLD, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, ADHOC_PER_11D,
  1603. BM(W1_5260_5320, W1_5180_5240, W1_5170_5230, W1_5745_5825, -1, -1,
  1604. -1, -1, -1, -1, -1, -1),
  1605. BM(WT1_5210_5250, WT1_5290_5290, WT1_5760_5800, -1, -1, -1, -1,
  1606. -1, -1, -1, -1, -1),
  1607. BMZERO,
  1608. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W1_2472_2472,
  1609. W1_2417_2432, W1_2447_2457, W1_2467_2467, -1, -1, -1, -1, -1),
  1610. BM(WG1_2412_2462, WG2_2467_2472, -1, -1, -1, -1, -1, -1, -1, -1,
  1611. -1, -1),
  1612. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1613. {WOR4_WORLD, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, ADHOC_NO_11A,
  1614. BM(W1_5260_5320, W1_5180_5240, W1_5745_5825, -1, -1, -1, -1, -1,
  1615. -1, -1, -1, -1),
  1616. BM(WT1_5210_5250, WT1_5290_5290, WT1_5760_5800, -1, -1, -1, -1,
  1617. -1, -1, -1, -1, -1),
  1618. BMZERO,
  1619. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W1_2417_2432,
  1620. W1_2447_2457, -1, -1, -1, -1, -1, -1, -1),
  1621. BM(WG1_2412_2462, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1622. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1623. {WOR5_ETSIC, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, ADHOC_NO_11A,
  1624. BM(W1_5260_5320, W1_5180_5240, W1_5745_5825, -1, -1, -1, -1, -1,
  1625. -1, -1, -1, -1),
  1626. BMZERO,
  1627. BMZERO,
  1628. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W1_2472_2472,
  1629. W1_2417_2432, W1_2447_2457, W1_2467_2467, -1, -1, -1, -1, -1),
  1630. BM(WG1_2412_2462, WG1_2467_2472, -1, -1, -1, -1, -1, -1, -1, -1,
  1631. -1, -1),
  1632. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1633. {WOR9_WORLD, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, ADHOC_NO_11A,
  1634. BM(W1_5260_5320, W1_5180_5240, W1_5745_5825, W1_5500_5700, -1, -1,
  1635. -1, -1, -1, -1, -1, -1),
  1636. BM(WT1_5210_5250, WT1_5290_5290, WT1_5760_5800, -1, -1, -1, -1,
  1637. -1, -1, -1, -1, -1),
  1638. BMZERO,
  1639. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W1_2417_2432,
  1640. W1_2447_2457, -1, -1, -1, -1, -1, -1, -1),
  1641. BM(WG1_2412_2462, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1),
  1642. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1643. {WORA_WORLD, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, ADHOC_NO_11A,
  1644. BM(W1_5260_5320, W1_5180_5240, W1_5745_5825, W1_5500_5700, -1, -1,
  1645. -1, -1, -1, -1, -1, -1),
  1646. BMZERO,
  1647. BMZERO,
  1648. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W1_2472_2472,
  1649. W1_2417_2432, W1_2447_2457, W1_2467_2467, -1, -1, -1, -1, -1),
  1650. BM(WG1_2412_2462, WG1_2467_2472, -1, -1, -1, -1, -1, -1, -1, -1,
  1651. -1, -1),
  1652. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1653. {WORB_WORLD, NO_CTL, DFS_FCC3 | DFS_ETSI, PSCAN_WWR, ADHOC_NO_11A,
  1654. BM(W1_5260_5320, W1_5180_5240, W1_5500_5700, -1, -1, -1, -1, -1,
  1655. -1, -1, -1, -1),
  1656. BMZERO,
  1657. BMZERO,
  1658. BM(W1_2412_2412, W1_2437_2442, W1_2462_2462, W1_2472_2472,
  1659. W1_2417_2432, W1_2447_2457, W1_2467_2467, -1, -1, -1, -1, -1),
  1660. BM(WG1_2412_2462, WG1_2467_2472, -1, -1, -1, -1, -1, -1, -1, -1,
  1661. -1, -1),
  1662. BM(T3_2437_2437, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1)},
  1663. {NULL1, NO_CTL, NO_DFS, NO_PSCAN, NO_REQ,
  1664. BMZERO,
  1665. BMZERO,
  1666. BMZERO,
  1667. BMZERO,
  1668. BMZERO,
  1669. BMZERO}
  1670. };
  1671. static const struct cmode modes[] = {
  1672. {ATH9K_MODE_11A, CHANNEL_A},
  1673. {ATH9K_MODE_11B, CHANNEL_B},
  1674. {ATH9K_MODE_11G, CHANNEL_G},
  1675. {ATH9K_MODE_11NG_HT20, CHANNEL_G_HT20},
  1676. {ATH9K_MODE_11NG_HT40PLUS, CHANNEL_G_HT40PLUS},
  1677. {ATH9K_MODE_11NG_HT40MINUS, CHANNEL_G_HT40MINUS},
  1678. {ATH9K_MODE_11NA_HT20, CHANNEL_A_HT20},
  1679. {ATH9K_MODE_11NA_HT40PLUS, CHANNEL_A_HT40PLUS},
  1680. {ATH9K_MODE_11NA_HT40MINUS, CHANNEL_A_HT40MINUS},
  1681. };
  1682. static struct japan_bandcheck j_bandcheck[] = {
  1683. {F1_5170_5230, AR_EEPROM_EEREGCAP_EN_KK_U1_ODD},
  1684. {F4_5180_5240, AR_EEPROM_EEREGCAP_EN_KK_U1_EVEN},
  1685. {F2_5260_5320, AR_EEPROM_EEREGCAP_EN_KK_U2},
  1686. {F4_5500_5700, AR_EEPROM_EEREGCAP_EN_KK_MIDBAND}
  1687. };
  1688. #endif