diff options
author | John W. Linville <linville@tuxdriver.com> | 2009-12-28 15:09:11 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-12-28 15:09:11 -0500 |
commit | ea1e4b842049fcc4741096538114871a74859314 (patch) | |
tree | c2336ab480ac0fd62e0dc41b391d99c97158dc9c /drivers/net/wireless/wl12xx | |
parent | b6ce5c33001b1dc83e6a1a6f30c5dccccea651b6 (diff) | |
parent | 92c6f8d849178582fc527aaf1e51dd37a74767d3 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
Diffstat (limited to 'drivers/net/wireless/wl12xx')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1251_main.c | 36 |
1 files changed, 15 insertions, 21 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1251_main.c b/drivers/net/wireless/wl12xx/wl1251_main.c index 63511ca131b1..6aeffbe9e401 100644 --- a/drivers/net/wireless/wl12xx/wl1251_main.c +++ b/drivers/net/wireless/wl12xx/wl1251_main.c | |||
@@ -630,10 +630,6 @@ static int wl1251_op_config(struct ieee80211_hw *hw, u32 changed) | |||
630 | goto out_sleep; | 630 | goto out_sleep; |
631 | } | 631 | } |
632 | 632 | ||
633 | ret = wl1251_build_null_data(wl); | ||
634 | if (ret < 0) | ||
635 | goto out_sleep; | ||
636 | |||
637 | if (conf->flags & IEEE80211_CONF_PS && !wl->psm_requested) { | 633 | if (conf->flags & IEEE80211_CONF_PS && !wl->psm_requested) { |
638 | wl1251_debug(DEBUG_PSM, "psm enabled"); | 634 | wl1251_debug(DEBUG_PSM, "psm enabled"); |
639 | 635 | ||
@@ -1116,6 +1112,21 @@ static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw, | |||
1116 | if (ret < 0) | 1112 | if (ret < 0) |
1117 | goto out; | 1113 | goto out; |
1118 | 1114 | ||
1115 | if (changed & BSS_CHANGED_BSSID) { | ||
1116 | memcpy(wl->bssid, bss_conf->bssid, ETH_ALEN); | ||
1117 | |||
1118 | ret = wl1251_build_null_data(wl); | ||
1119 | if (ret < 0) | ||
1120 | goto out; | ||
1121 | |||
1122 | if (wl->bss_type != BSS_TYPE_IBSS) { | ||
1123 | ret = wl1251_join(wl, wl->bss_type, wl->channel, | ||
1124 | wl->beacon_int, wl->dtim_period); | ||
1125 | if (ret < 0) | ||
1126 | goto out_sleep; | ||
1127 | } | ||
1128 | } | ||
1129 | |||
1119 | if (changed & BSS_CHANGED_ASSOC) { | 1130 | if (changed & BSS_CHANGED_ASSOC) { |
1120 | if (bss_conf->assoc) { | 1131 | if (bss_conf->assoc) { |
1121 | wl->beacon_int = bss_conf->beacon_int; | 1132 | wl->beacon_int = bss_conf->beacon_int; |
@@ -1175,23 +1186,6 @@ static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw, | |||
1175 | } | 1186 | } |
1176 | } | 1187 | } |
1177 | 1188 | ||
1178 | if (changed & BSS_CHANGED_BSSID) { | ||
1179 | memcpy(wl->bssid, bss_conf->bssid, ETH_ALEN); | ||
1180 | |||
1181 | ret = wl1251_build_null_data(wl); | ||
1182 | if (ret < 0) | ||
1183 | goto out; | ||
1184 | |||
1185 | if (wl->bss_type != BSS_TYPE_IBSS) { | ||
1186 | ret = wl1251_join(wl, wl->bss_type, wl->channel, | ||
1187 | wl->beacon_int, wl->dtim_period); | ||
1188 | if (ret < 0) | ||
1189 | goto out_sleep; | ||
1190 | wl1251_warning("Set ctsprotect failed %d", ret); | ||
1191 | goto out_sleep; | ||
1192 | } | ||
1193 | } | ||
1194 | |||
1195 | if (changed & BSS_CHANGED_BEACON) { | 1189 | if (changed & BSS_CHANGED_BEACON) { |
1196 | beacon = ieee80211_beacon_get(hw, vif); | 1190 | beacon = ieee80211_beacon_get(hw, vif); |
1197 | ret = wl1251_cmd_template_set(wl, CMD_BEACON, beacon->data, | 1191 | ret = wl1251_cmd_template_set(wl, CMD_BEACON, beacon->data, |