From 2754907a13a9b7c38e0b9fabdb642a6a8155e4fa Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 24 Feb 2013 01:11:20 +0000 Subject: mac80211: brcmsmac: add ap mode support This does not work very well. I did not got this running in 5GHz mode and it was not very fast. SVN-Revision: 35763 --- .../862-brcmsmac-remove-brcms_bss_cfg-BSS.patch | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 package/mac80211/patches/862-brcmsmac-remove-brcms_bss_cfg-BSS.patch (limited to 'package/mac80211/patches/862-brcmsmac-remove-brcms_bss_cfg-BSS.patch') diff --git a/package/mac80211/patches/862-brcmsmac-remove-brcms_bss_cfg-BSS.patch b/package/mac80211/patches/862-brcmsmac-remove-brcms_bss_cfg-BSS.patch new file mode 100644 index 0000000000..a7ffcf6a78 --- /dev/null +++ b/package/mac80211/patches/862-brcmsmac-remove-brcms_bss_cfg-BSS.patch @@ -0,0 +1,77 @@ +--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c ++++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c +@@ -1071,7 +1071,7 @@ brcms_b_txstatus(struct brcms_hardware * + + static void brcms_c_tbtt(struct brcms_c_info *wlc) + { +- if (!wlc->bsscfg->BSS) ++ if (wlc->bsscfg->type == BRCMS_TYPE_ADHOC) + /* + * DirFrmQ is now valid...defer setting until end + * of ATIM window +@@ -3061,16 +3061,8 @@ static bool brcms_c_ps_allowed(struct br + if (wlc->filter_flags & FIF_PROMISC_IN_BSS) + return false; + +- if (cfg->associated) { +- /* +- * disallow PS when one of the following +- * bsscfg specific conditions meets +- */ +- if (!cfg->BSS) +- return false; +- ++ if (cfg->associated) + return false; +- } + + return true; + } +@@ -5080,8 +5072,9 @@ int brcms_c_up(struct brcms_c_info *wlc) + struct brcms_bss_cfg *bsscfg = wlc->bsscfg; + mboolset(wlc->pub->radio_disabled, + WL_RADIO_HW_DISABLE); +- +- if (bsscfg->enable && bsscfg->BSS) ++ if (bsscfg->enable && ++ (bsscfg->type == BRCMS_TYPE_STATION || ++ bsscfg->type == BRCMS_TYPE_ADHOC)) + brcms_err(wlc->hw->d11core, + "wl%d: up: rfdisable -> " + "bsscfg_disable()\n", +@@ -7390,7 +7383,7 @@ void brcms_c_update_beacon(struct brcms_ + { + struct brcms_bss_cfg *bsscfg = wlc->bsscfg; + +- if (bsscfg->up && !bsscfg->BSS) ++ if (bsscfg->up && bsscfg->type == BRCMS_TYPE_AP) + /* Clear the soft intmask */ + wlc->defmacintmask &= ~MI_BCNTPL; + } +@@ -7465,7 +7458,7 @@ void brcms_c_update_probe_resp(struct br + struct brcms_bss_cfg *bsscfg = wlc->bsscfg; + + /* update AP or IBSS probe responses */ +- if (bsscfg->up && !bsscfg->BSS) ++ if (bsscfg->up && bsscfg->type == BRCMS_TYPE_AP) + brcms_c_bss_update_probe_resp(wlc, bsscfg, suspend); + } + +--- a/drivers/net/wireless/brcm80211/brcmsmac/main.h ++++ b/drivers/net/wireless/brcm80211/brcmsmac/main.h +@@ -590,7 +590,6 @@ enum brcms_bss_type { + * up: is this configuration up operational + * enable: is this configuration enabled + * associated: is BSS in ASSOCIATED state +- * BSS: infraustructure or adhoc + * SSID_len: the length of SSID + * SSID: SSID string + * +@@ -610,7 +609,6 @@ struct brcms_bss_cfg { + bool up; + bool enable; + bool associated; +- bool BSS; + u8 SSID_len; + u8 SSID[IEEE80211_MAX_SSID_LEN]; + u8 BSSID[ETH_ALEN]; -- cgit v1.2.3