Commit f9be7492 authored by Roland Vossen's avatar Roland Vossen Committed by Greg Kroah-Hartman

staging: brcm80211: removed band related global vars from softmac

Global variables are undesirable unless they are read only. Variables are
now maintained in a device specific structure.
Reported-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 8298f411
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "pub.h" #include "pub.h"
#include "ucode_loader.h" #include "ucode_loader.h"
#include "mac80211_if.h" #include "mac80211_if.h"
#include "main.h"
#define N_TX_QUEUES 4 /* #tx queues on mac80211<->driver interface */ #define N_TX_QUEUES 4 /* #tx queues on mac80211<->driver interface */
...@@ -225,7 +226,7 @@ static struct ieee80211_rate legacy_ratetable[] = { ...@@ -225,7 +226,7 @@ static struct ieee80211_rate legacy_ratetable[] = {
RATE(540, 0), RATE(540, 0),
}; };
static struct ieee80211_supported_band brcms_band_2GHz_nphy = { static const struct ieee80211_supported_band brcms_band_2GHz_nphy_template = {
.band = IEEE80211_BAND_2GHZ, .band = IEEE80211_BAND_2GHZ,
.channels = brcms_2ghz_chantable, .channels = brcms_2ghz_chantable,
.n_channels = ARRAY_SIZE(brcms_2ghz_chantable), .n_channels = ARRAY_SIZE(brcms_2ghz_chantable),
...@@ -247,7 +248,7 @@ static struct ieee80211_supported_band brcms_band_2GHz_nphy = { ...@@ -247,7 +248,7 @@ static struct ieee80211_supported_band brcms_band_2GHz_nphy = {
} }
}; };
static struct ieee80211_supported_band brcms_band_5GHz_nphy = { static const struct ieee80211_supported_band brcms_band_5GHz_nphy_template = {
.band = IEEE80211_BAND_5GHZ, .band = IEEE80211_BAND_5GHZ,
.channels = brcms_5ghz_nphy_chantable, .channels = brcms_5ghz_nphy_chantable,
.n_channels = ARRAY_SIZE(brcms_5ghz_nphy_chantable), .n_channels = ARRAY_SIZE(brcms_5ghz_nphy_chantable),
...@@ -981,22 +982,24 @@ static irqreturn_t brcms_isr(int irq, void *dev_id) ...@@ -981,22 +982,24 @@ static irqreturn_t brcms_isr(int irq, void *dev_id)
static int ieee_hw_rate_init(struct ieee80211_hw *hw) static int ieee_hw_rate_init(struct ieee80211_hw *hw)
{ {
struct brcms_info *wl = hw->priv; struct brcms_info *wl = hw->priv;
int has_5g; struct brcms_c_info *wlc = wl->wlc;
struct ieee80211_supported_band *band;
int has_5g = 0;
u16 phy_type; u16 phy_type;
has_5g = 0;
hw->wiphy->bands[IEEE80211_BAND_2GHZ] = NULL; hw->wiphy->bands[IEEE80211_BAND_2GHZ] = NULL;
hw->wiphy->bands[IEEE80211_BAND_5GHZ] = NULL; hw->wiphy->bands[IEEE80211_BAND_5GHZ] = NULL;
phy_type = brcms_c_get_phy_type(wl->wlc, 0); phy_type = brcms_c_get_phy_type(wl->wlc, 0);
if (phy_type == PHY_TYPE_N || phy_type == PHY_TYPE_LCN) { if (phy_type == PHY_TYPE_N || phy_type == PHY_TYPE_LCN) {
band = &wlc->bandstate[BAND_2G_INDEX]->band;
*band = brcms_band_2GHz_nphy_template;
if (phy_type == PHY_TYPE_LCN) { if (phy_type == PHY_TYPE_LCN) {
/* Single stream */ /* Single stream */
brcms_band_2GHz_nphy.ht_cap.mcs.rx_mask[1] = 0; band->ht_cap.mcs.rx_mask[1] = 0;
brcms_band_2GHz_nphy.ht_cap.mcs.rx_highest = 72; band->ht_cap.mcs.rx_highest = 72;
} }
hw->wiphy->bands[IEEE80211_BAND_2GHZ] = &brcms_band_2GHz_nphy; hw->wiphy->bands[IEEE80211_BAND_2GHZ] = band;
} else { } else {
return -EPERM; return -EPERM;
} }
...@@ -1004,11 +1007,13 @@ static int ieee_hw_rate_init(struct ieee80211_hw *hw) ...@@ -1004,11 +1007,13 @@ static int ieee_hw_rate_init(struct ieee80211_hw *hw)
/* Assume all bands use the same phy. True for 11n devices. */ /* Assume all bands use the same phy. True for 11n devices. */
if (wl->pub->_nbands > 1) { if (wl->pub->_nbands > 1) {
has_5g++; has_5g++;
if (phy_type == PHY_TYPE_N || phy_type == PHY_TYPE_LCN) if (phy_type == PHY_TYPE_N || phy_type == PHY_TYPE_LCN) {
hw->wiphy->bands[IEEE80211_BAND_5GHZ] = band = &wlc->bandstate[BAND_5G_INDEX]->band;
&brcms_band_5GHz_nphy; *band = brcms_band_5GHz_nphy_template;
else hw->wiphy->bands[IEEE80211_BAND_5GHZ] = band;
} else {
return -EPERM; return -EPERM;
}
} }
return 0; return 0;
} }
......
...@@ -281,6 +281,7 @@ struct brcms_band { ...@@ -281,6 +281,7 @@ struct brcms_band {
u16 CWmin; /* minimum size of contention window, in unit of aSlotTime */ u16 CWmin; /* minimum size of contention window, in unit of aSlotTime */
u16 CWmax; /* maximum size of contention window, in unit of aSlotTime */ u16 CWmax; /* maximum size of contention window, in unit of aSlotTime */
struct ieee80211_supported_band band;
}; };
/* module control blocks */ /* module control blocks */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment