diff options
author | John W. Linville <linville@tuxdriver.com> | 2009-12-18 17:59:02 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-12-28 16:31:37 -0500 |
commit | baeb66fe2306783e3b9a492b03882f2e249b2eeb (patch) | |
tree | 9c904289cf3a3cd5a538f46a4413090c4b277cb9 /net/wireless/reg.c | |
parent | 8f648c00039a42e67a9dff034c77d41502dab1f3 (diff) |
wireless: remove CONFIG_WIRELESS_OLD_REGULATORY
This is no longer needed with the availability of
CONFIG_CFG80211_INTERNAL_REGDB.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/reg.c')
-rw-r--r-- | net/wireless/reg.c | 89 |
1 files changed, 2 insertions, 87 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index dc13c3ffeca6..87ea60d84c3c 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c | |||
@@ -129,78 +129,6 @@ static char *ieee80211_regdom = "00"; | |||
129 | module_param(ieee80211_regdom, charp, 0444); | 129 | module_param(ieee80211_regdom, charp, 0444); |
130 | MODULE_PARM_DESC(ieee80211_regdom, "IEEE 802.11 regulatory domain code"); | 130 | MODULE_PARM_DESC(ieee80211_regdom, "IEEE 802.11 regulatory domain code"); |
131 | 131 | ||
132 | #ifdef CONFIG_WIRELESS_OLD_REGULATORY | ||
133 | /* | ||
134 | * We assume 40 MHz bandwidth for the old regulatory work. | ||
135 | * We make emphasis we are using the exact same frequencies | ||
136 | * as before | ||
137 | */ | ||
138 | |||
139 | static const struct ieee80211_regdomain us_regdom = { | ||
140 | .n_reg_rules = 6, | ||
141 | .alpha2 = "US", | ||
142 | .reg_rules = { | ||
143 | /* IEEE 802.11b/g, channels 1..11 */ | ||
144 | REG_RULE(2412-10, 2462+10, 40, 6, 27, 0), | ||
145 | /* IEEE 802.11a, channel 36..48 */ | ||
146 | REG_RULE(5180-10, 5240+10, 40, 6, 17, 0), | ||
147 | /* IEEE 802.11a, channels 48..64 */ | ||
148 | REG_RULE(5260-10, 5320+10, 40, 6, 20, NL80211_RRF_DFS), | ||
149 | /* IEEE 802.11a, channels 100..124 */ | ||
150 | REG_RULE(5500-10, 5590+10, 40, 6, 20, NL80211_RRF_DFS), | ||
151 | /* IEEE 802.11a, channels 132..144 */ | ||
152 | REG_RULE(5660-10, 5700+10, 40, 6, 20, NL80211_RRF_DFS), | ||
153 | /* IEEE 802.11a, channels 149..165, outdoor */ | ||
154 | REG_RULE(5745-10, 5825+10, 40, 6, 30, 0), | ||
155 | } | ||
156 | }; | ||
157 | |||
158 | static const struct ieee80211_regdomain jp_regdom = { | ||
159 | .n_reg_rules = 6, | ||
160 | .alpha2 = "JP", | ||
161 | .reg_rules = { | ||
162 | /* IEEE 802.11b/g, channels 1..11 */ | ||
163 | REG_RULE(2412-10, 2462+10, 40, 6, 20, 0), | ||
164 | /* IEEE 802.11b/g, channels 12..13 */ | ||
165 | REG_RULE(2467-10, 2472+10, 20, 6, 20, 0), | ||
166 | /* IEEE 802.11b/g, channel 14 */ | ||
167 | REG_RULE(2484-10, 2484+10, 20, 6, 20, NL80211_RRF_NO_OFDM), | ||
168 | /* IEEE 802.11a, channels 36..48 */ | ||
169 | REG_RULE(5180-10, 5240+10, 40, 6, 20, 0), | ||
170 | /* IEEE 802.11a, channels 52..64 */ | ||
171 | REG_RULE(5260-10, 5320+10, 40, 6, 20, NL80211_RRF_DFS), | ||
172 | /* IEEE 802.11a, channels 100..144 */ | ||
173 | REG_RULE(5500-10, 5700+10, 40, 6, 23, NL80211_RRF_DFS), | ||
174 | } | ||
175 | }; | ||
176 | |||
177 | static const struct ieee80211_regdomain *static_regdom(char *alpha2) | ||
178 | { | ||
179 | if (alpha2[0] == 'U' && alpha2[1] == 'S') | ||
180 | return &us_regdom; | ||
181 | if (alpha2[0] == 'J' && alpha2[1] == 'P') | ||
182 | return &jp_regdom; | ||
183 | /* Use world roaming rules for "EU", since it was a pseudo | ||
184 | domain anyway... */ | ||
185 | if (alpha2[0] == 'E' && alpha2[1] == 'U') | ||
186 | return &world_regdom; | ||
187 | /* Default, world roaming rules */ | ||
188 | return &world_regdom; | ||
189 | } | ||
190 | |||
191 | static bool is_old_static_regdom(const struct ieee80211_regdomain *rd) | ||
192 | { | ||
193 | if (rd == &us_regdom || rd == &jp_regdom || rd == &world_regdom) | ||
194 | return true; | ||
195 | return false; | ||
196 | } | ||
197 | #else | ||
198 | static inline bool is_old_static_regdom(const struct ieee80211_regdomain *rd) | ||
199 | { | ||
200 | return false; | ||
201 | } | ||
202 | #endif | ||
203 | |||
204 | static void reset_regdomains(void) | 132 | static void reset_regdomains(void) |
205 | { | 133 | { |
206 | /* avoid freeing static information or freeing something twice */ | 134 | /* avoid freeing static information or freeing something twice */ |
@@ -210,8 +138,6 @@ static void reset_regdomains(void) | |||
210 | cfg80211_world_regdom = NULL; | 138 | cfg80211_world_regdom = NULL; |
211 | if (cfg80211_regdomain == &world_regdom) | 139 | if (cfg80211_regdomain == &world_regdom) |
212 | cfg80211_regdomain = NULL; | 140 | cfg80211_regdomain = NULL; |
213 | if (is_old_static_regdom(cfg80211_regdomain)) | ||
214 | cfg80211_regdomain = NULL; | ||
215 | 141 | ||
216 | kfree(cfg80211_regdomain); | 142 | kfree(cfg80211_regdomain); |
217 | kfree(cfg80211_world_regdom); | 143 | kfree(cfg80211_world_regdom); |
@@ -1490,8 +1416,6 @@ static int ignore_request(struct wiphy *wiphy, | |||
1490 | return REG_INTERSECT; | 1416 | return REG_INTERSECT; |
1491 | case NL80211_REGDOM_SET_BY_DRIVER: | 1417 | case NL80211_REGDOM_SET_BY_DRIVER: |
1492 | if (last_request->initiator == NL80211_REGDOM_SET_BY_CORE) { | 1418 | if (last_request->initiator == NL80211_REGDOM_SET_BY_CORE) { |
1493 | if (is_old_static_regdom(cfg80211_regdomain)) | ||
1494 | return 0; | ||
1495 | if (regdom_changes(pending_request->alpha2)) | 1419 | if (regdom_changes(pending_request->alpha2)) |
1496 | return 0; | 1420 | return 0; |
1497 | return -EALREADY; | 1421 | return -EALREADY; |
@@ -1528,8 +1452,7 @@ static int ignore_request(struct wiphy *wiphy, | |||
1528 | return -EAGAIN; | 1452 | return -EAGAIN; |
1529 | } | 1453 | } |
1530 | 1454 | ||
1531 | if (!is_old_static_regdom(cfg80211_regdomain) && | 1455 | if (!regdom_changes(pending_request->alpha2)) |
1532 | !regdom_changes(pending_request->alpha2)) | ||
1533 | return -EALREADY; | 1456 | return -EALREADY; |
1534 | 1457 | ||
1535 | return 0; | 1458 | return 0; |
@@ -2111,8 +2034,7 @@ static int __set_regdom(const struct ieee80211_regdomain *rd) | |||
2111 | * If someone else asked us to change the rd lets only bother | 2034 | * If someone else asked us to change the rd lets only bother |
2112 | * checking if the alpha2 changes if CRDA was already called | 2035 | * checking if the alpha2 changes if CRDA was already called |
2113 | */ | 2036 | */ |
2114 | if (!is_old_static_regdom(cfg80211_regdomain) && | 2037 | if (!regdom_changes(rd->alpha2)) |
2115 | !regdom_changes(rd->alpha2)) | ||
2116 | return -EINVAL; | 2038 | return -EINVAL; |
2117 | } | 2039 | } |
2118 | 2040 | ||
@@ -2311,15 +2233,8 @@ int regulatory_init(void) | |||
2311 | spin_lock_init(®_requests_lock); | 2233 | spin_lock_init(®_requests_lock); |
2312 | spin_lock_init(®_pending_beacons_lock); | 2234 | spin_lock_init(®_pending_beacons_lock); |
2313 | 2235 | ||
2314 | #ifdef CONFIG_WIRELESS_OLD_REGULATORY | ||
2315 | cfg80211_regdomain = static_regdom(ieee80211_regdom); | ||
2316 | |||
2317 | printk(KERN_INFO "cfg80211: Using static regulatory domain info\n"); | ||
2318 | print_regdomain_info(cfg80211_regdomain); | ||
2319 | #else | ||
2320 | cfg80211_regdomain = cfg80211_world_regdom; | 2236 | cfg80211_regdomain = cfg80211_world_regdom; |
2321 | 2237 | ||
2322 | #endif | ||
2323 | /* We always try to get an update for the static regdomain */ | 2238 | /* We always try to get an update for the static regdomain */ |
2324 | err = regulatory_hint_core(cfg80211_regdomain->alpha2); | 2239 | err = regulatory_hint_core(cfg80211_regdomain->alpha2); |
2325 | if (err) { | 2240 | if (err) { |