wl1251-modules: Add in more patches to fix and issue with NetworkManager and show...
[openpandora.oe.git] / recipes / pandora-system / wl1251-modules / no-scan-while-connected.patch
1 diff --git a/drivers/net/wireless/wl12xx/wl1251.h b/drivers/net/wireless/wl12xx/wl1251.h
2 index 4f5f02a..d8087ac 100644
3 --- a/drivers/net/wireless/wl12xx/wl1251.h
4 +++ b/drivers/net/wireless/wl12xx/wl1251.h
5 @@ -381,6 +381,8 @@ struct wl1251 {
6  
7         u32 chip_id;
8         char fw_ver[21];
9 +
10 +       bool associated;
11  };
12  
13  int wl1251_plt_start(struct wl1251 *wl);
14 diff --git a/drivers/net/wireless/wl12xx/wl1251_main.c b/drivers/net/wireless/wl12xx/wl1251_main.c
15 index 7a8e489..0e1ae21 100644
16 --- a/drivers/net/wireless/wl12xx/wl1251_main.c
17 +++ b/drivers/net/wireless/wl12xx/wl1251_main.c
18 @@ -869,6 +869,13 @@ static int wl1251_op_hw_scan(struct ieee80211_hw *hw,
19  
20         wl1251_debug(DEBUG_MAC80211, "mac80211 hw scan");
21  
22 +       /*
23 +        * FIXME: scanning while associated causes lockups,
24 +        * so we don't allow that
25 +        */
26 +       if (wl->associated)
27 +               return -EBUSY;
28 +
29         if (req->n_ssids) {
30                 ssid = req->ssids[0].ssid;
31                 ssid_len = req->ssids[0].ssid_len;
32 @@ -987,6 +994,7 @@ static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw,
33         }
34  
35         if (changed & BSS_CHANGED_ASSOC) {
36 +               wl->associated = bss_conf->assoc;
37                 if (bss_conf->assoc) {
38                         wl->beacon_int = bss_conf->beacon_int;
39