diff options
author | Luciano Coelho <luciano.coelho@nokia.com> | 2009-10-12 15:08:43 +0300 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-10-27 16:48:02 -0400 |
commit | d6e19d135dadb1895296668914d0a15bc3cafcbf (patch) | |
tree | a661ff6aaba4de765be8140bcc4da47ccadd85ff /drivers/net/wireless/wl12xx/wl1271_main.c | |
parent | 25a7dc6d22adda590be4932ebc772ea35914880c (diff) |
wl1271: workaround to send a disconnect before rejoining
We don't get any indication from the stack when we have disassociated. In
wl1271, it is important to send a CMD_DISCONNECT before joining again,
because the firmware cleans some things up. So we check if we're already
joined and disconnect if that's the case.
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl1271_main.c')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1271_main.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c index 3662715c031..b9f20918a25 100644 --- a/drivers/net/wireless/wl12xx/wl1271_main.c +++ b/drivers/net/wireless/wl12xx/wl1271_main.c @@ -648,6 +648,8 @@ static void wl1271_op_stop(struct ieee80211_hw *hw) wl->tx_security_seq_32 = 0; wl->time_offset = 0; wl->session_counter = 0; + wl->joined = false; + for (i = 0; i < NUM_TX_QUEUES; i++) wl->tx_blocks_freed[i] = 0; @@ -1395,6 +1397,7 @@ static int __devinit wl1271_probe(struct spi_device *spi) wl->basic_rate_set = WL1271_DEFAULT_BASIC_RATE_SET; wl->band = IEEE80211_BAND_2GHZ; wl->vif = NULL; + wl->joined = false; for (i = 0; i < ACX_TX_DESCRIPTORS; i++) wl->tx_frames[i] = NULL; |