mac80211: brcmsmac: add ap mode support
[openwrt.git] / package / mac80211 / patches / 863-brcmsmac-remove-brcms_bss_cfg-associated.patch
diff --git a/package/mac80211/patches/863-brcmsmac-remove-brcms_bss_cfg-associated.patch b/package/mac80211/patches/863-brcmsmac-remove-brcms_bss_cfg-associated.patch
new file mode 100644 (file)
index 0000000..7f84f00
--- /dev/null
@@ -0,0 +1,74 @@
+--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
++++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
+@@ -3051,8 +3051,6 @@ static void brcms_b_antsel_set(struct br
+  */
+ static bool brcms_c_ps_allowed(struct brcms_c_info *wlc)
+ {
+-      struct brcms_bss_cfg *cfg = wlc->bsscfg;
+-
+       /* disallow PS when one of the following global conditions meets */
+       if (!wlc->pub->associated)
+               return false;
+@@ -3061,9 +3059,6 @@ static bool brcms_c_ps_allowed(struct br
+       if (wlc->filter_flags & FIF_PROMISC_IN_BSS)
+               return false;
+-      if (cfg->associated)
+-              return false;
+-
+       return true;
+ }
+@@ -3821,7 +3816,7 @@ static void brcms_c_set_home_chanspec(st
+       if (wlc->home_chanspec != chanspec) {
+               wlc->home_chanspec = chanspec;
+-              if (wlc->bsscfg->associated)
++              if (wlc->pub->associated)
+                       wlc->bsscfg->current_bss->chanspec = chanspec;
+       }
+ }
+@@ -5435,7 +5430,7 @@ static void brcms_c_ofdm_rateset_war(str
+       u8 r;
+       bool war = false;
+-      if (wlc->bsscfg->associated)
++      if (wlc->pub->associated)
+               r = wlc->bsscfg->current_bss->rateset.rates[0];
+       else
+               r = wlc->default_bss->rateset.rates[0];
+@@ -5529,7 +5524,7 @@ int brcms_c_set_rateset(struct brcms_c_i
+       /* merge rateset coming in with the current mcsset */
+       if (wlc->pub->_n_enab & SUPPORT_11N) {
+               struct brcms_bss_info *mcsset_bss;
+-              if (wlc->bsscfg->associated)
++              if (wlc->pub->associated)
+                       mcsset_bss = wlc->bsscfg->current_bss;
+               else
+                       mcsset_bss = wlc->default_bss;
+@@ -7498,7 +7493,6 @@ void brcms_c_scan_stop(struct brcms_c_in
+ void brcms_c_associate_upd(struct brcms_c_info *wlc, bool state)
+ {
+       wlc->pub->associated = state;
+-      wlc->bsscfg->associated = state;
+ }
+ /*
+--- a/drivers/net/wireless/brcm80211/brcmsmac/main.h
++++ b/drivers/net/wireless/brcm80211/brcmsmac/main.h
+@@ -589,7 +589,6 @@ enum brcms_bss_type {
+  * type: interface type
+  * up: is this configuration up operational
+  * enable: is this configuration enabled
+- * associated: is BSS in ASSOCIATED state
+  * SSID_len: the length of SSID
+  * SSID: SSID string
+  *
+@@ -608,7 +607,6 @@ struct brcms_bss_cfg {
+       enum brcms_bss_type type;
+       bool up;
+       bool enable;
+-      bool associated;
+       u8 SSID_len;
+       u8 SSID[IEEE80211_MAX_SSID_LEN];
+       u8 BSSID[ETH_ALEN];