mac80211: brcmsmac: add ap mode support
[openwrt.git] / package / mac80211 / patches / 862-brcmsmac-remove-brcms_bss_cfg-BSS.patch
1 --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
2 +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
3 @@ -1071,7 +1071,7 @@ brcms_b_txstatus(struct brcms_hardware *
4  
5  static void brcms_c_tbtt(struct brcms_c_info *wlc)
6  {
7 -       if (!wlc->bsscfg->BSS)
8 +       if (wlc->bsscfg->type == BRCMS_TYPE_ADHOC)
9                 /*
10                  * DirFrmQ is now valid...defer setting until end
11                  * of ATIM window
12 @@ -3061,16 +3061,8 @@ static bool brcms_c_ps_allowed(struct br
13         if (wlc->filter_flags & FIF_PROMISC_IN_BSS)
14                 return false;
15  
16 -       if (cfg->associated) {
17 -               /*
18 -                * disallow PS when one of the following
19 -                * bsscfg specific conditions meets
20 -                */
21 -               if (!cfg->BSS)
22 -                       return false;
23 -
24 +       if (cfg->associated)
25                 return false;
26 -       }
27  
28         return true;
29  }
30 @@ -5080,8 +5072,9 @@ int brcms_c_up(struct brcms_c_info *wlc)
31                                 struct brcms_bss_cfg *bsscfg = wlc->bsscfg;
32                                 mboolset(wlc->pub->radio_disabled,
33                                          WL_RADIO_HW_DISABLE);
34 -
35 -                               if (bsscfg->enable && bsscfg->BSS)
36 +                               if (bsscfg->enable &&
37 +                                   (bsscfg->type == BRCMS_TYPE_STATION ||
38 +                                    bsscfg->type == BRCMS_TYPE_ADHOC))
39                                         brcms_err(wlc->hw->d11core,
40                                                   "wl%d: up: rfdisable -> "
41                                                   "bsscfg_disable()\n",
42 @@ -7390,7 +7383,7 @@ void brcms_c_update_beacon(struct brcms_
43  {
44         struct brcms_bss_cfg *bsscfg = wlc->bsscfg;
45  
46 -       if (bsscfg->up && !bsscfg->BSS)
47 +       if (bsscfg->up && bsscfg->type == BRCMS_TYPE_AP)
48                 /* Clear the soft intmask */
49                 wlc->defmacintmask &= ~MI_BCNTPL;
50  }
51 @@ -7465,7 +7458,7 @@ void brcms_c_update_probe_resp(struct br
52         struct brcms_bss_cfg *bsscfg = wlc->bsscfg;
53  
54         /* update AP or IBSS probe responses */
55 -       if (bsscfg->up && !bsscfg->BSS)
56 +       if (bsscfg->up && bsscfg->type == BRCMS_TYPE_AP)
57                 brcms_c_bss_update_probe_resp(wlc, bsscfg, suspend);
58  }
59  
60 --- a/drivers/net/wireless/brcm80211/brcmsmac/main.h
61 +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.h
62 @@ -590,7 +590,6 @@ enum brcms_bss_type {
63   * up: is this configuration up operational
64   * enable: is this configuration enabled
65   * associated: is BSS in ASSOCIATED state
66 - * BSS: infraustructure or adhoc
67   * SSID_len: the length of SSID
68   * SSID: SSID string
69   *
70 @@ -610,7 +609,6 @@ struct brcms_bss_cfg {
71         bool up;
72         bool enable;
73         bool associated;
74 -       bool BSS;
75         u8 SSID_len;
76         u8 SSID[IEEE80211_MAX_SSID_LEN];
77         u8 BSSID[ETH_ALEN];