aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/wl12xx/main.c')
-rw-r--r--drivers/net/wireless/wl12xx/main.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 73973b4fc57f..0647d460b698 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -2317,7 +2317,7 @@ static int wl1271_unjoin(struct wl1271 *wl, struct wl12xx_vif *wlvif)
2317{ 2317{
2318 int ret; 2318 int ret;
2319 2319
2320 if (test_and_clear_bit(WL1271_FLAG_CS_PROGRESS, &wl->flags)) { 2320 if (test_and_clear_bit(WLVIF_FLAG_CS_PROGRESS, &wlvif->flags)) {
2321 wl12xx_cmd_stop_channel_switch(wl); 2321 wl12xx_cmd_stop_channel_switch(wl);
2322 ieee80211_chswitch_done(wl->vif, false); 2322 ieee80211_chswitch_done(wl->vif, false);
2323 } 2323 }
@@ -4275,6 +4275,7 @@ static void wl12xx_op_channel_switch(struct ieee80211_hw *hw,
4275 struct ieee80211_channel_switch *ch_switch) 4275 struct ieee80211_channel_switch *ch_switch)
4276{ 4276{
4277 struct wl1271 *wl = hw->priv; 4277 struct wl1271 *wl = hw->priv;
4278 struct wl12xx_vif *wlvif;
4278 int ret; 4279 int ret;
4279 4280
4280 wl1271_debug(DEBUG_MAC80211, "mac80211 channel switch"); 4281 wl1271_debug(DEBUG_MAC80211, "mac80211 channel switch");
@@ -4291,10 +4292,13 @@ static void wl12xx_op_channel_switch(struct ieee80211_hw *hw,
4291 if (ret < 0) 4292 if (ret < 0)
4292 goto out; 4293 goto out;
4293 4294
4294 ret = wl12xx_cmd_channel_switch(wl, ch_switch); 4295 /* TODO: change mac80211 to pass vif as param */
4296 wl12xx_for_each_wlvif_sta(wl, wlvif) {
4297 ret = wl12xx_cmd_channel_switch(wl, ch_switch);
4295 4298
4296 if (!ret) 4299 if (!ret)
4297 set_bit(WL1271_FLAG_CS_PROGRESS, &wl->flags); 4300 set_bit(WLVIF_FLAG_CS_PROGRESS, &wlvif->flags);
4301 }
4298 4302
4299 wl1271_ps_elp_sleep(wl); 4303 wl1271_ps_elp_sleep(wl);
4300 4304