diff options
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap/wl1271/0006-wl12xx-Unset-bssid-filter-ssid-and-bssid-from-firmwa.patch')
-rw-r--r-- | extras/recipes-kernel/linux/linux-omap/wl1271/0006-wl12xx-Unset-bssid-filter-ssid-and-bssid-from-firmwa.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap/wl1271/0006-wl12xx-Unset-bssid-filter-ssid-and-bssid-from-firmwa.patch b/extras/recipes-kernel/linux/linux-omap/wl1271/0006-wl12xx-Unset-bssid-filter-ssid-and-bssid-from-firmwa.patch new file mode 100644 index 00000000..5b83bc96 --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap/wl1271/0006-wl12xx-Unset-bssid-filter-ssid-and-bssid-from-firmwa.patch | |||
@@ -0,0 +1,44 @@ | |||
1 | From 54b32b60bed66ac4ecf00279466496d9d4e80afa Mon Sep 17 00:00:00 2001 | ||
2 | From: Juuso Oikarinen <juuso.oikarinen@nokia.com> | ||
3 | Date: Mon, 22 Nov 2010 12:59:08 +0200 | ||
4 | Subject: [PATCH 06/15] wl12xx: Unset bssid filter, ssid and bssid from firmware on disassoc | ||
5 | |||
6 | On the disassociation event from the mac80211, the wl12xx driver does not | ||
7 | clear the chipset configuration related to the AP - i.e. it does not perform | ||
8 | a DISCONNECT and then a JOIN with zero SSID and dummy BSSID. Also, it does not | ||
9 | unset the BSSID filter. | ||
10 | |||
11 | Often this is not a problem, as the above is performed upon entering idle | ||
12 | state. But if a scenario arises where a new association is attempted without | ||
13 | cycling through idle state, the new association will fail. | ||
14 | |||
15 | Fix this by resetting the firmware state on disassociation. | ||
16 | |||
17 | Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> | ||
18 | Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com> | ||
19 | Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> | ||
20 | --- | ||
21 | drivers/net/wireless/wl12xx/wl1271_main.c | 5 ++++- | ||
22 | 1 files changed, 4 insertions(+), 1 deletions(-) | ||
23 | |||
24 | diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c | ||
25 | index 78273c9..db97648 100644 | ||
26 | --- a/drivers/net/wireless/wl12xx/wl1271_main.c | ||
27 | +++ b/drivers/net/wireless/wl12xx/wl1271_main.c | ||
28 | @@ -1919,9 +1919,12 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw, | ||
29 | |||
30 | /* Disable the keep-alive feature */ | ||
31 | ret = wl1271_acx_keep_alive_mode(wl, false); | ||
32 | - | ||
33 | if (ret < 0) | ||
34 | goto out_sleep; | ||
35 | + | ||
36 | + /* restore the bssid filter and go to dummy bssid */ | ||
37 | + wl1271_unjoin(wl); | ||
38 | + wl1271_dummy_join(wl); | ||
39 | } | ||
40 | |||
41 | } | ||
42 | -- | ||
43 | 1.6.6.1 | ||
44 | |||