| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 1 | /* | 
| Sujith | cee075a | 2009-03-13 09:07:23 +0530 | [diff] [blame] | 2 |  * Copyright (c) 2008-2009 Atheros Communications Inc. | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 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 |  | 
 | 17 | #ifndef REGD_H | 
 | 18 | #define REGD_H | 
 | 19 |  | 
| Bob Copeland | c02cf37 | 2009-03-30 22:30:28 -0400 | [diff] [blame] | 20 | #include <linux/nl80211.h> | 
| Bob Copeland | 3a702e4 | 2009-03-30 22:30:29 -0400 | [diff] [blame] | 21 | #include <net/cfg80211.h> | 
| Bob Copeland | 3a702e4 | 2009-03-30 22:30:29 -0400 | [diff] [blame] | 22 |  | 
| Luis R. Rodriguez | 608b88c | 2009-08-17 18:07:23 -0700 | [diff] [blame] | 23 | #include "ath.h" | 
 | 24 |  | 
| Joerg Albert | 7f42c37 | 2009-09-05 16:07:43 +0200 | [diff] [blame] | 25 | enum ctl_group { | 
 | 26 | 	CTL_FCC = 0x10, | 
 | 27 | 	CTL_MKK = 0x40, | 
 | 28 | 	CTL_ETSI = 0x30, | 
 | 29 | }; | 
 | 30 |  | 
| Bob Copeland | 3a702e4 | 2009-03-30 22:30:29 -0400 | [diff] [blame] | 31 | #define NO_CTL 0xff | 
 | 32 | #define SD_NO_CTL               0xE0 | 
 | 33 | #define NO_CTL                  0xff | 
 | 34 | #define CTL_MODE_M              7 | 
 | 35 | #define CTL_11A                 0 | 
 | 36 | #define CTL_11B                 1 | 
 | 37 | #define CTL_11G                 2 | 
 | 38 | #define CTL_2GHT20              5 | 
 | 39 | #define CTL_5GHT20              6 | 
 | 40 | #define CTL_2GHT40              7 | 
 | 41 | #define CTL_5GHT40              8 | 
 | 42 |  | 
 | 43 | #define CTRY_DEBUG 0x1ff | 
 | 44 | #define CTRY_DEFAULT 0 | 
 | 45 |  | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 46 | #define COUNTRY_ERD_FLAG        0x8000 | 
 | 47 | #define WORLDWIDE_ROAMING_FLAG  0x4000 | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 48 |  | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 49 | #define MULTI_DOMAIN_MASK 0xFF00 | 
 | 50 |  | 
 | 51 | #define WORLD_SKU_MASK          0x00F0 | 
 | 52 | #define WORLD_SKU_PREFIX        0x0060 | 
 | 53 |  | 
 | 54 | #define CHANNEL_HALF_BW         10 | 
 | 55 | #define CHANNEL_QUARTER_BW      5 | 
 | 56 |  | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 57 | struct country_code_to_enum_rd { | 
 | 58 | 	u16 countryCode; | 
 | 59 | 	u16 regDmnEnum; | 
 | 60 | 	const char *isoName; | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 61 | }; | 
 | 62 |  | 
 | 63 | enum CountryCode { | 
 | 64 | 	CTRY_ALBANIA = 8, | 
 | 65 | 	CTRY_ALGERIA = 12, | 
 | 66 | 	CTRY_ARGENTINA = 32, | 
 | 67 | 	CTRY_ARMENIA = 51, | 
| Vivek Natarajan | bd6b444 | 2009-10-27 11:32:52 +0530 | [diff] [blame] | 68 | 	CTRY_ARUBA = 533, | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 69 | 	CTRY_AUSTRALIA = 36, | 
 | 70 | 	CTRY_AUSTRIA = 40, | 
 | 71 | 	CTRY_AZERBAIJAN = 31, | 
 | 72 | 	CTRY_BAHRAIN = 48, | 
| Vivek Natarajan | bd6b444 | 2009-10-27 11:32:52 +0530 | [diff] [blame] | 73 | 	CTRY_BANGLADESH = 50, | 
 | 74 | 	CTRY_BARBADOS = 52, | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 75 | 	CTRY_BELARUS = 112, | 
 | 76 | 	CTRY_BELGIUM = 56, | 
 | 77 | 	CTRY_BELIZE = 84, | 
 | 78 | 	CTRY_BOLIVIA = 68, | 
 | 79 | 	CTRY_BOSNIA_HERZ = 70, | 
 | 80 | 	CTRY_BRAZIL = 76, | 
 | 81 | 	CTRY_BRUNEI_DARUSSALAM = 96, | 
 | 82 | 	CTRY_BULGARIA = 100, | 
| Vivek Natarajan | bd6b444 | 2009-10-27 11:32:52 +0530 | [diff] [blame] | 83 | 	CTRY_CAMBODIA = 116, | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 84 | 	CTRY_CANADA = 124, | 
 | 85 | 	CTRY_CHILE = 152, | 
 | 86 | 	CTRY_CHINA = 156, | 
 | 87 | 	CTRY_COLOMBIA = 170, | 
 | 88 | 	CTRY_COSTA_RICA = 188, | 
 | 89 | 	CTRY_CROATIA = 191, | 
 | 90 | 	CTRY_CYPRUS = 196, | 
 | 91 | 	CTRY_CZECH = 203, | 
 | 92 | 	CTRY_DENMARK = 208, | 
 | 93 | 	CTRY_DOMINICAN_REPUBLIC = 214, | 
 | 94 | 	CTRY_ECUADOR = 218, | 
 | 95 | 	CTRY_EGYPT = 818, | 
 | 96 | 	CTRY_EL_SALVADOR = 222, | 
 | 97 | 	CTRY_ESTONIA = 233, | 
 | 98 | 	CTRY_FAEROE_ISLANDS = 234, | 
 | 99 | 	CTRY_FINLAND = 246, | 
 | 100 | 	CTRY_FRANCE = 250, | 
 | 101 | 	CTRY_GEORGIA = 268, | 
 | 102 | 	CTRY_GERMANY = 276, | 
 | 103 | 	CTRY_GREECE = 300, | 
| Vivek Natarajan | bd6b444 | 2009-10-27 11:32:52 +0530 | [diff] [blame] | 104 | 	CTRY_GREENLAND = 304, | 
 | 105 | 	CTRY_GRENEDA = 308, | 
 | 106 | 	CTRY_GUAM = 316, | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 107 | 	CTRY_GUATEMALA = 320, | 
| Vivek Natarajan | bd6b444 | 2009-10-27 11:32:52 +0530 | [diff] [blame] | 108 | 	CTRY_HAITI = 332, | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 109 | 	CTRY_HONDURAS = 340, | 
 | 110 | 	CTRY_HONG_KONG = 344, | 
 | 111 | 	CTRY_HUNGARY = 348, | 
 | 112 | 	CTRY_ICELAND = 352, | 
 | 113 | 	CTRY_INDIA = 356, | 
 | 114 | 	CTRY_INDONESIA = 360, | 
 | 115 | 	CTRY_IRAN = 364, | 
 | 116 | 	CTRY_IRAQ = 368, | 
 | 117 | 	CTRY_IRELAND = 372, | 
 | 118 | 	CTRY_ISRAEL = 376, | 
 | 119 | 	CTRY_ITALY = 380, | 
 | 120 | 	CTRY_JAMAICA = 388, | 
 | 121 | 	CTRY_JAPAN = 392, | 
 | 122 | 	CTRY_JORDAN = 400, | 
 | 123 | 	CTRY_KAZAKHSTAN = 398, | 
 | 124 | 	CTRY_KENYA = 404, | 
 | 125 | 	CTRY_KOREA_NORTH = 408, | 
 | 126 | 	CTRY_KOREA_ROC = 410, | 
 | 127 | 	CTRY_KOREA_ROC2 = 411, | 
 | 128 | 	CTRY_KOREA_ROC3 = 412, | 
 | 129 | 	CTRY_KUWAIT = 414, | 
 | 130 | 	CTRY_LATVIA = 428, | 
 | 131 | 	CTRY_LEBANON = 422, | 
 | 132 | 	CTRY_LIBYA = 434, | 
 | 133 | 	CTRY_LIECHTENSTEIN = 438, | 
 | 134 | 	CTRY_LITHUANIA = 440, | 
 | 135 | 	CTRY_LUXEMBOURG = 442, | 
 | 136 | 	CTRY_MACAU = 446, | 
 | 137 | 	CTRY_MACEDONIA = 807, | 
 | 138 | 	CTRY_MALAYSIA = 458, | 
 | 139 | 	CTRY_MALTA = 470, | 
 | 140 | 	CTRY_MEXICO = 484, | 
 | 141 | 	CTRY_MONACO = 492, | 
 | 142 | 	CTRY_MOROCCO = 504, | 
 | 143 | 	CTRY_NEPAL = 524, | 
 | 144 | 	CTRY_NETHERLANDS = 528, | 
 | 145 | 	CTRY_NETHERLANDS_ANTILLES = 530, | 
 | 146 | 	CTRY_NEW_ZEALAND = 554, | 
 | 147 | 	CTRY_NICARAGUA = 558, | 
 | 148 | 	CTRY_NORWAY = 578, | 
 | 149 | 	CTRY_OMAN = 512, | 
 | 150 | 	CTRY_PAKISTAN = 586, | 
 | 151 | 	CTRY_PANAMA = 591, | 
 | 152 | 	CTRY_PAPUA_NEW_GUINEA = 598, | 
 | 153 | 	CTRY_PARAGUAY = 600, | 
 | 154 | 	CTRY_PERU = 604, | 
 | 155 | 	CTRY_PHILIPPINES = 608, | 
 | 156 | 	CTRY_POLAND = 616, | 
 | 157 | 	CTRY_PORTUGAL = 620, | 
 | 158 | 	CTRY_PUERTO_RICO = 630, | 
 | 159 | 	CTRY_QATAR = 634, | 
 | 160 | 	CTRY_ROMANIA = 642, | 
 | 161 | 	CTRY_RUSSIA = 643, | 
 | 162 | 	CTRY_SAUDI_ARABIA = 682, | 
 | 163 | 	CTRY_SERBIA_MONTENEGRO = 891, | 
 | 164 | 	CTRY_SINGAPORE = 702, | 
 | 165 | 	CTRY_SLOVAKIA = 703, | 
 | 166 | 	CTRY_SLOVENIA = 705, | 
 | 167 | 	CTRY_SOUTH_AFRICA = 710, | 
 | 168 | 	CTRY_SPAIN = 724, | 
 | 169 | 	CTRY_SRI_LANKA = 144, | 
 | 170 | 	CTRY_SWEDEN = 752, | 
 | 171 | 	CTRY_SWITZERLAND = 756, | 
 | 172 | 	CTRY_SYRIA = 760, | 
 | 173 | 	CTRY_TAIWAN = 158, | 
 | 174 | 	CTRY_THAILAND = 764, | 
 | 175 | 	CTRY_TRINIDAD_Y_TOBAGO = 780, | 
 | 176 | 	CTRY_TUNISIA = 788, | 
 | 177 | 	CTRY_TURKEY = 792, | 
 | 178 | 	CTRY_UAE = 784, | 
 | 179 | 	CTRY_UKRAINE = 804, | 
 | 180 | 	CTRY_UNITED_KINGDOM = 826, | 
 | 181 | 	CTRY_UNITED_STATES = 840, | 
 | 182 | 	CTRY_UNITED_STATES_FCC49 = 842, | 
 | 183 | 	CTRY_URUGUAY = 858, | 
 | 184 | 	CTRY_UZBEKISTAN = 860, | 
 | 185 | 	CTRY_VENEZUELA = 862, | 
 | 186 | 	CTRY_VIET_NAM = 704, | 
 | 187 | 	CTRY_YEMEN = 887, | 
 | 188 | 	CTRY_ZIMBABWE = 716, | 
 | 189 | 	CTRY_JAPAN1 = 393, | 
 | 190 | 	CTRY_JAPAN2 = 394, | 
 | 191 | 	CTRY_JAPAN3 = 395, | 
 | 192 | 	CTRY_JAPAN4 = 396, | 
 | 193 | 	CTRY_JAPAN5 = 397, | 
 | 194 | 	CTRY_JAPAN6 = 4006, | 
 | 195 | 	CTRY_JAPAN7 = 4007, | 
 | 196 | 	CTRY_JAPAN8 = 4008, | 
 | 197 | 	CTRY_JAPAN9 = 4009, | 
 | 198 | 	CTRY_JAPAN10 = 4010, | 
 | 199 | 	CTRY_JAPAN11 = 4011, | 
 | 200 | 	CTRY_JAPAN12 = 4012, | 
 | 201 | 	CTRY_JAPAN13 = 4013, | 
 | 202 | 	CTRY_JAPAN14 = 4014, | 
 | 203 | 	CTRY_JAPAN15 = 4015, | 
 | 204 | 	CTRY_JAPAN16 = 4016, | 
 | 205 | 	CTRY_JAPAN17 = 4017, | 
 | 206 | 	CTRY_JAPAN18 = 4018, | 
 | 207 | 	CTRY_JAPAN19 = 4019, | 
 | 208 | 	CTRY_JAPAN20 = 4020, | 
 | 209 | 	CTRY_JAPAN21 = 4021, | 
 | 210 | 	CTRY_JAPAN22 = 4022, | 
 | 211 | 	CTRY_JAPAN23 = 4023, | 
 | 212 | 	CTRY_JAPAN24 = 4024, | 
 | 213 | 	CTRY_JAPAN25 = 4025, | 
 | 214 | 	CTRY_JAPAN26 = 4026, | 
 | 215 | 	CTRY_JAPAN27 = 4027, | 
 | 216 | 	CTRY_JAPAN28 = 4028, | 
 | 217 | 	CTRY_JAPAN29 = 4029, | 
 | 218 | 	CTRY_JAPAN30 = 4030, | 
 | 219 | 	CTRY_JAPAN31 = 4031, | 
 | 220 | 	CTRY_JAPAN32 = 4032, | 
 | 221 | 	CTRY_JAPAN33 = 4033, | 
 | 222 | 	CTRY_JAPAN34 = 4034, | 
 | 223 | 	CTRY_JAPAN35 = 4035, | 
 | 224 | 	CTRY_JAPAN36 = 4036, | 
 | 225 | 	CTRY_JAPAN37 = 4037, | 
 | 226 | 	CTRY_JAPAN38 = 4038, | 
 | 227 | 	CTRY_JAPAN39 = 4039, | 
 | 228 | 	CTRY_JAPAN40 = 4040, | 
 | 229 | 	CTRY_JAPAN41 = 4041, | 
 | 230 | 	CTRY_JAPAN42 = 4042, | 
 | 231 | 	CTRY_JAPAN43 = 4043, | 
 | 232 | 	CTRY_JAPAN44 = 4044, | 
 | 233 | 	CTRY_JAPAN45 = 4045, | 
 | 234 | 	CTRY_JAPAN46 = 4046, | 
 | 235 | 	CTRY_JAPAN47 = 4047, | 
 | 236 | 	CTRY_JAPAN48 = 4048, | 
 | 237 | 	CTRY_JAPAN49 = 4049, | 
 | 238 | 	CTRY_JAPAN50 = 4050, | 
 | 239 | 	CTRY_JAPAN51 = 4051, | 
 | 240 | 	CTRY_JAPAN52 = 4052, | 
 | 241 | 	CTRY_JAPAN53 = 4053, | 
 | 242 | 	CTRY_JAPAN54 = 4054, | 
 | 243 | 	CTRY_JAPAN55 = 4055, | 
 | 244 | 	CTRY_JAPAN56 = 4056, | 
 | 245 | 	CTRY_JAPAN57 = 4057, | 
 | 246 | 	CTRY_JAPAN58 = 4058, | 
 | 247 | 	CTRY_JAPAN59 = 4059, | 
 | 248 | 	CTRY_AUSTRALIA2 = 5000, | 
 | 249 | 	CTRY_CANADA2 = 5001, | 
 | 250 | 	CTRY_BELGIUM2 = 5002 | 
 | 251 | }; | 
 | 252 |  | 
| Bob Copeland | 3a702e4 | 2009-03-30 22:30:29 -0400 | [diff] [blame] | 253 | bool ath_is_world_regd(struct ath_regulatory *reg); | 
| Bob Copeland | e3bb249 | 2009-03-30 22:30:30 -0400 | [diff] [blame] | 254 | int ath_regd_init(struct ath_regulatory *reg, struct wiphy *wiphy, | 
 | 255 | 		  int (*reg_notifier)(struct wiphy *wiphy, | 
 | 256 | 		  struct regulatory_request *request)); | 
| Bob Copeland | 3a702e4 | 2009-03-30 22:30:29 -0400 | [diff] [blame] | 257 | u32 ath_regd_get_band_ctl(struct ath_regulatory *reg, | 
 | 258 | 			  enum ieee80211_band band); | 
 | 259 | int ath_reg_notifier_apply(struct wiphy *wiphy, | 
 | 260 | 			   struct regulatory_request *request, | 
 | 261 | 			   struct ath_regulatory *reg); | 
| Luis R. Rodriguez | f078f20 | 2008-08-04 00:16:41 -0700 | [diff] [blame] | 262 |  | 
 | 263 | #endif |