diff options
author | David S. Miller <davem@davemloft.net> | 2009-12-25 19:34:56 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-25 19:34:56 -0500 |
commit | d346f49d0badd80aa9fc699fa9c6d5b23e778eb6 (patch) | |
tree | 9e9698ffe7966fbe7ce924a30843f87cdfa2646e /drivers/net/wireless/libertas/wext.c | |
parent | d87fd25d5ac4cd044e21b749a8f6cac90f093c71 (diff) | |
parent | b6ce5c33001b1dc83e6a1a6f30c5dccccea651b6 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'drivers/net/wireless/libertas/wext.c')
-rw-r--r-- | drivers/net/wireless/libertas/wext.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/drivers/net/wireless/libertas/wext.c b/drivers/net/wireless/libertas/wext.c index 4b1aab593a84..71f88a08e090 100644 --- a/drivers/net/wireless/libertas/wext.c +++ b/drivers/net/wireless/libertas/wext.c | |||
@@ -192,7 +192,7 @@ static void copy_active_data_rates(struct lbs_private *priv, u8 *rates) | |||
192 | lbs_deb_enter(LBS_DEB_WEXT); | 192 | lbs_deb_enter(LBS_DEB_WEXT); |
193 | 193 | ||
194 | if ((priv->connect_status != LBS_CONNECTED) && | 194 | if ((priv->connect_status != LBS_CONNECTED) && |
195 | (priv->mesh_connect_status != LBS_CONNECTED)) | 195 | !lbs_mesh_connected(priv)) |
196 | memcpy(rates, lbs_bg_rates, MAX_RATES); | 196 | memcpy(rates, lbs_bg_rates, MAX_RATES); |
197 | else | 197 | else |
198 | memcpy(rates, priv->curbssparams.rates, MAX_RATES); | 198 | memcpy(rates, priv->curbssparams.rates, MAX_RATES); |
@@ -298,6 +298,7 @@ static int lbs_get_nick(struct net_device *dev, struct iw_request_info *info, | |||
298 | return 0; | 298 | return 0; |
299 | } | 299 | } |
300 | 300 | ||
301 | #ifdef CONFIG_LIBERTAS_MESH | ||
301 | static int mesh_get_nick(struct net_device *dev, struct iw_request_info *info, | 302 | static int mesh_get_nick(struct net_device *dev, struct iw_request_info *info, |
302 | struct iw_point *dwrq, char *extra) | 303 | struct iw_point *dwrq, char *extra) |
303 | { | 304 | { |
@@ -307,7 +308,7 @@ static int mesh_get_nick(struct net_device *dev, struct iw_request_info *info, | |||
307 | 308 | ||
308 | /* Use nickname to indicate that mesh is on */ | 309 | /* Use nickname to indicate that mesh is on */ |
309 | 310 | ||
310 | if (priv->mesh_connect_status == LBS_CONNECTED) { | 311 | if (lbs_mesh_connected(priv)) { |
311 | strncpy(extra, "Mesh", 12); | 312 | strncpy(extra, "Mesh", 12); |
312 | extra[12] = '\0'; | 313 | extra[12] = '\0'; |
313 | dwrq->length = strlen(extra); | 314 | dwrq->length = strlen(extra); |
@@ -321,6 +322,7 @@ static int mesh_get_nick(struct net_device *dev, struct iw_request_info *info, | |||
321 | lbs_deb_leave(LBS_DEB_WEXT); | 322 | lbs_deb_leave(LBS_DEB_WEXT); |
322 | return 0; | 323 | return 0; |
323 | } | 324 | } |
325 | #endif | ||
324 | 326 | ||
325 | static int lbs_set_rts(struct net_device *dev, struct iw_request_info *info, | 327 | static int lbs_set_rts(struct net_device *dev, struct iw_request_info *info, |
326 | struct iw_param *vwrq, char *extra) | 328 | struct iw_param *vwrq, char *extra) |
@@ -422,6 +424,7 @@ static int lbs_get_mode(struct net_device *dev, | |||
422 | return 0; | 424 | return 0; |
423 | } | 425 | } |
424 | 426 | ||
427 | #ifdef CONFIG_LIBERTAS_MESH | ||
425 | static int mesh_wlan_get_mode(struct net_device *dev, | 428 | static int mesh_wlan_get_mode(struct net_device *dev, |
426 | struct iw_request_info *info, u32 * uwrq, | 429 | struct iw_request_info *info, u32 * uwrq, |
427 | char *extra) | 430 | char *extra) |
@@ -433,6 +436,7 @@ static int mesh_wlan_get_mode(struct net_device *dev, | |||
433 | lbs_deb_leave(LBS_DEB_WEXT); | 436 | lbs_deb_leave(LBS_DEB_WEXT); |
434 | return 0; | 437 | return 0; |
435 | } | 438 | } |
439 | #endif | ||
436 | 440 | ||
437 | static int lbs_get_txpow(struct net_device *dev, | 441 | static int lbs_get_txpow(struct net_device *dev, |
438 | struct iw_request_info *info, | 442 | struct iw_request_info *info, |
@@ -863,7 +867,7 @@ static struct iw_statistics *lbs_get_wireless_stats(struct net_device *dev) | |||
863 | 867 | ||
864 | /* If we're not associated, all quality values are meaningless */ | 868 | /* If we're not associated, all quality values are meaningless */ |
865 | if ((priv->connect_status != LBS_CONNECTED) && | 869 | if ((priv->connect_status != LBS_CONNECTED) && |
866 | (priv->mesh_connect_status != LBS_CONNECTED)) | 870 | !lbs_mesh_connected(priv)) |
867 | goto out; | 871 | goto out; |
868 | 872 | ||
869 | /* Quality by RSSI */ | 873 | /* Quality by RSSI */ |
@@ -1010,6 +1014,7 @@ out: | |||
1010 | return ret; | 1014 | return ret; |
1011 | } | 1015 | } |
1012 | 1016 | ||
1017 | #ifdef CONFIG_LIBERTAS_MESH | ||
1013 | static int lbs_mesh_set_freq(struct net_device *dev, | 1018 | static int lbs_mesh_set_freq(struct net_device *dev, |
1014 | struct iw_request_info *info, | 1019 | struct iw_request_info *info, |
1015 | struct iw_freq *fwrq, char *extra) | 1020 | struct iw_freq *fwrq, char *extra) |
@@ -1061,6 +1066,7 @@ out: | |||
1061 | lbs_deb_leave_args(LBS_DEB_WEXT, "ret %d", ret); | 1066 | lbs_deb_leave_args(LBS_DEB_WEXT, "ret %d", ret); |
1062 | return ret; | 1067 | return ret; |
1063 | } | 1068 | } |
1069 | #endif | ||
1064 | 1070 | ||
1065 | static int lbs_set_rate(struct net_device *dev, struct iw_request_info *info, | 1071 | static int lbs_set_rate(struct net_device *dev, struct iw_request_info *info, |
1066 | struct iw_param *vwrq, char *extra) | 1072 | struct iw_param *vwrq, char *extra) |
@@ -2108,6 +2114,7 @@ out: | |||
2108 | return ret; | 2114 | return ret; |
2109 | } | 2115 | } |
2110 | 2116 | ||
2117 | #ifdef CONFIG_LIBERTAS_MESH | ||
2111 | static int lbs_mesh_get_essid(struct net_device *dev, | 2118 | static int lbs_mesh_get_essid(struct net_device *dev, |
2112 | struct iw_request_info *info, | 2119 | struct iw_request_info *info, |
2113 | struct iw_point *dwrq, char *extra) | 2120 | struct iw_point *dwrq, char *extra) |
@@ -2161,6 +2168,7 @@ static int lbs_mesh_set_essid(struct net_device *dev, | |||
2161 | lbs_deb_leave_args(LBS_DEB_WEXT, "ret %d", ret); | 2168 | lbs_deb_leave_args(LBS_DEB_WEXT, "ret %d", ret); |
2162 | return ret; | 2169 | return ret; |
2163 | } | 2170 | } |
2171 | #endif | ||
2164 | 2172 | ||
2165 | /** | 2173 | /** |
2166 | * @brief Connect to the AP or Ad-hoc Network with specific bssid | 2174 | * @brief Connect to the AP or Ad-hoc Network with specific bssid |
@@ -2267,7 +2275,13 @@ static const iw_handler lbs_handler[] = { | |||
2267 | (iw_handler) lbs_get_encodeext,/* SIOCGIWENCODEEXT */ | 2275 | (iw_handler) lbs_get_encodeext,/* SIOCGIWENCODEEXT */ |
2268 | (iw_handler) NULL, /* SIOCSIWPMKSA */ | 2276 | (iw_handler) NULL, /* SIOCSIWPMKSA */ |
2269 | }; | 2277 | }; |
2278 | struct iw_handler_def lbs_handler_def = { | ||
2279 | .num_standard = ARRAY_SIZE(lbs_handler), | ||
2280 | .standard = (iw_handler *) lbs_handler, | ||
2281 | .get_wireless_stats = lbs_get_wireless_stats, | ||
2282 | }; | ||
2270 | 2283 | ||
2284 | #ifdef CONFIG_LIBERTAS_MESH | ||
2271 | static const iw_handler mesh_wlan_handler[] = { | 2285 | static const iw_handler mesh_wlan_handler[] = { |
2272 | (iw_handler) NULL, /* SIOCSIWCOMMIT */ | 2286 | (iw_handler) NULL, /* SIOCSIWCOMMIT */ |
2273 | (iw_handler) lbs_get_name, /* SIOCGIWNAME */ | 2287 | (iw_handler) lbs_get_name, /* SIOCGIWNAME */ |
@@ -2325,14 +2339,10 @@ static const iw_handler mesh_wlan_handler[] = { | |||
2325 | (iw_handler) lbs_get_encodeext,/* SIOCGIWENCODEEXT */ | 2339 | (iw_handler) lbs_get_encodeext,/* SIOCGIWENCODEEXT */ |
2326 | (iw_handler) NULL, /* SIOCSIWPMKSA */ | 2340 | (iw_handler) NULL, /* SIOCSIWPMKSA */ |
2327 | }; | 2341 | }; |
2328 | struct iw_handler_def lbs_handler_def = { | ||
2329 | .num_standard = ARRAY_SIZE(lbs_handler), | ||
2330 | .standard = (iw_handler *) lbs_handler, | ||
2331 | .get_wireless_stats = lbs_get_wireless_stats, | ||
2332 | }; | ||
2333 | 2342 | ||
2334 | struct iw_handler_def mesh_handler_def = { | 2343 | struct iw_handler_def mesh_handler_def = { |
2335 | .num_standard = ARRAY_SIZE(mesh_wlan_handler), | 2344 | .num_standard = ARRAY_SIZE(mesh_wlan_handler), |
2336 | .standard = (iw_handler *) mesh_wlan_handler, | 2345 | .standard = (iw_handler *) mesh_wlan_handler, |
2337 | .get_wireless_stats = lbs_get_wireless_stats, | 2346 | .get_wireless_stats = lbs_get_wireless_stats, |
2338 | }; | 2347 | }; |
2348 | #endif | ||