diff options
author | Juuso Oikarinen <juuso.oikarinen@nokia.com> | 2010-11-22 05:59:08 -0500 |
---|---|---|
committer | Luciano Coelho <luciano.coelho@nokia.com> | 2010-11-22 09:45:14 -0500 |
commit | b84a7d3d9e7cd5a25f4fd32142cebdf4481a74a4 (patch) | |
tree | bbccc94eb0ce0a6c8b9624f3186ebfcae418edec /drivers/net/wireless/wl12xx/main.c | |
parent | 68d069c45f73e8aeda0249891daec1f7e2f0e067 (diff) |
wl12xx: Unset bssid filter, ssid and bssid from firmware on disassoc
On the disassociation event from the mac80211, the wl12xx driver does not
clear the chipset configuration related to the AP - i.e. it does not perform
a DISCONNECT and then a JOIN with zero SSID and dummy BSSID. Also, it does not
unset the BSSID filter.
Often this is not a problem, as the above is performed upon entering idle
state. But if a scenario arises where a new association is attempted without
cycling through idle state, the new association will fail.
Fix this by resetting the firmware state on disassociation.
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/main.c')
-rw-r--r-- | drivers/net/wireless/wl12xx/main.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c index 31f0e2f6ffc3..708ffe304c6d 100644 --- a/drivers/net/wireless/wl12xx/main.c +++ b/drivers/net/wireless/wl12xx/main.c | |||
@@ -2011,9 +2011,12 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw, | |||
2011 | 2011 | ||
2012 | /* Disable the keep-alive feature */ | 2012 | /* Disable the keep-alive feature */ |
2013 | ret = wl1271_acx_keep_alive_mode(wl, false); | 2013 | ret = wl1271_acx_keep_alive_mode(wl, false); |
2014 | |||
2015 | if (ret < 0) | 2014 | if (ret < 0) |
2016 | goto out_sleep; | 2015 | goto out_sleep; |
2016 | |||
2017 | /* restore the bssid filter and go to dummy bssid */ | ||
2018 | wl1271_unjoin(wl); | ||
2019 | wl1271_dummy_join(wl); | ||
2017 | } | 2020 | } |
2018 | 2021 | ||
2019 | } | 2022 | } |