summaryrefslogtreecommitdiffstats
path: root/extras/recipes-kernel/linux/linux-omap/wl1271/0006-wl12xx-Unset-bssid-filter-ssid-and-bssid-from-firmwa.patch
diff options
context:
space:
mode:
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.patch44
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 @@
1From 54b32b60bed66ac4ecf00279466496d9d4e80afa Mon Sep 17 00:00:00 2001
2From: Juuso Oikarinen <juuso.oikarinen@nokia.com>
3Date: Mon, 22 Nov 2010 12:59:08 +0200
4Subject: [PATCH 06/15] wl12xx: Unset bssid filter, ssid and bssid from firmware on disassoc
5
6On the disassociation event from the mac80211, the wl12xx driver does not
7clear the chipset configuration related to the AP - i.e. it does not perform
8a DISCONNECT and then a JOIN with zero SSID and dummy BSSID. Also, it does not
9unset the BSSID filter.
10
11Often this is not a problem, as the above is performed upon entering idle
12state. But if a scenario arises where a new association is attempted without
13cycling through idle state, the new association will fail.
14
15Fix this by resetting the firmware state on disassociation.
16
17Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
18Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
19Signed-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
24diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
25index 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--
431.6.6.1
44