brcm80211: smac: clean up channel.c
Much of the code is either unsed or never put to any useful purpose. Remove this code in advance of reworking the driver's regulatory support. Reviewed-by: Arend Van Spriel <arend@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Brett Rudley <brudley@broadcom.com> Signed-off-by: Seth Forshee <seth.forshee@canonical.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
a3ce5cc1a6
commit
2810a619ca
|
@ -58,18 +58,8 @@
|
||||||
LOCALE_CHAN_12_13 | \
|
LOCALE_CHAN_12_13 | \
|
||||||
LOCALE_CHAN_14)
|
LOCALE_CHAN_14)
|
||||||
|
|
||||||
#define LOCALE_RADAR_SET_NONE 0
|
|
||||||
#define LOCALE_RADAR_SET_1 1
|
|
||||||
|
|
||||||
#define LOCALE_RESTRICTED_NONE 0
|
#define LOCALE_RESTRICTED_NONE 0
|
||||||
#define LOCALE_RESTRICTED_SET_2G_SHORT 1
|
#define LOCALE_RESTRICTED_SET_2G_SHORT 1
|
||||||
#define LOCALE_RESTRICTED_CHAN_165 2
|
|
||||||
#define LOCALE_CHAN_ALL_5G 3
|
|
||||||
#define LOCALE_RESTRICTED_JAPAN_LEGACY 4
|
|
||||||
#define LOCALE_RESTRICTED_11D_2G 5
|
|
||||||
#define LOCALE_RESTRICTED_11D_5G 6
|
|
||||||
#define LOCALE_RESTRICTED_LOW_HI 7
|
|
||||||
#define LOCALE_RESTRICTED_12_13_14 8
|
|
||||||
|
|
||||||
#define LOCALE_2G_IDX_i 0
|
#define LOCALE_2G_IDX_i 0
|
||||||
#define LOCALE_5G_IDX_11 0
|
#define LOCALE_5G_IDX_11 0
|
||||||
|
@ -118,8 +108,6 @@
|
||||||
(((c) < 100) ? 2 : \
|
(((c) < 100) ? 2 : \
|
||||||
(((c) < 149) ? 3 : 4))))
|
(((c) < 149) ? 3 : 4))))
|
||||||
|
|
||||||
#define ISDFS_EU(fl) (((fl) & BRCMS_DFS_EU) == BRCMS_DFS_EU)
|
|
||||||
|
|
||||||
struct brcms_cm_band {
|
struct brcms_cm_band {
|
||||||
/* struct locale_info flags */
|
/* struct locale_info flags */
|
||||||
u8 locale_flags;
|
u8 locale_flags;
|
||||||
|
@ -127,9 +115,6 @@ struct brcms_cm_band {
|
||||||
struct brcms_chanvec valid_channels;
|
struct brcms_chanvec valid_channels;
|
||||||
/* List of restricted use channels */
|
/* List of restricted use channels */
|
||||||
const struct brcms_chanvec *restricted_channels;
|
const struct brcms_chanvec *restricted_channels;
|
||||||
/* List of radar sensitive channels */
|
|
||||||
const struct brcms_chanvec *radar_channels;
|
|
||||||
u8 PAD[8];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* locale per-channel tx power limits for MIMO frames
|
/* locale per-channel tx power limits for MIMO frames
|
||||||
|
@ -158,7 +143,6 @@ struct brcms_cm_info {
|
||||||
char srom_ccode[BRCM_CNTRY_BUF_SZ]; /* Country Code in SROM */
|
char srom_ccode[BRCM_CNTRY_BUF_SZ]; /* Country Code in SROM */
|
||||||
uint srom_regrev; /* Regulatory Rev for the SROM ccode */
|
uint srom_regrev; /* Regulatory Rev for the SROM ccode */
|
||||||
const struct country_info *country; /* current country def */
|
const struct country_info *country; /* current country def */
|
||||||
char ccode[BRCM_CNTRY_BUF_SZ]; /* current internal Country Code */
|
|
||||||
uint regrev; /* current Regulatory Revision */
|
uint regrev; /* current Regulatory Revision */
|
||||||
char country_abbrev[BRCM_CNTRY_BUF_SZ]; /* current advertised ccode */
|
char country_abbrev[BRCM_CNTRY_BUF_SZ]; /* current advertised ccode */
|
||||||
/* per-band state (one per phy/radio) */
|
/* per-band state (one per phy/radio) */
|
||||||
|
@ -171,14 +155,10 @@ struct brcms_cm_info {
|
||||||
/* locale channel and power info. */
|
/* locale channel and power info. */
|
||||||
struct locale_info {
|
struct locale_info {
|
||||||
u32 valid_channels;
|
u32 valid_channels;
|
||||||
/* List of radar sensitive channels */
|
|
||||||
u8 radar_channels;
|
|
||||||
/* List of channels used only if APs are detected */
|
/* List of channels used only if APs are detected */
|
||||||
u8 restricted_channels;
|
u8 restricted_channels;
|
||||||
/* Max tx pwr in qdBm for each sub-band */
|
/* Max tx pwr in qdBm for each sub-band */
|
||||||
s8 maxpwr[BRCMS_MAXPWR_TBL_SIZE];
|
s8 maxpwr[BRCMS_MAXPWR_TBL_SIZE];
|
||||||
/* Country IE advertised max tx pwr in dBm per sub-band */
|
|
||||||
s8 pub_maxpwr[BAND_5G_PWR_LVLS];
|
|
||||||
u8 flags;
|
u8 flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -196,46 +176,10 @@ static const struct brcms_chanvec chanvec_none = {
|
||||||
0x00, 0x00, 0x00, 0x00}
|
0x00, 0x00, 0x00, 0x00}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* All 2.4 GHz HW channels */
|
|
||||||
static const struct brcms_chanvec chanvec_all_2G = {
|
|
||||||
{0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00}
|
|
||||||
};
|
|
||||||
|
|
||||||
/* All 5 GHz HW channels */
|
|
||||||
static const struct brcms_chanvec chanvec_all_5G = {
|
|
||||||
{0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0x11, 0x11,
|
|
||||||
0x01, 0x00, 0x00, 0x00, 0x10, 0x11, 0x11, 0x11,
|
|
||||||
0x11, 0x11, 0x20, 0x22, 0x22, 0x00, 0x00, 0x11,
|
|
||||||
0x11, 0x11, 0x11, 0x01}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Radar channel sets
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Channels 52 - 64, 100 - 140 */
|
|
||||||
static const struct brcms_chanvec radar_set1 = {
|
|
||||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x11, /* 52 - 60 */
|
|
||||||
0x01, 0x00, 0x00, 0x00, 0x10, 0x11, 0x11, 0x11, /* 64, 100 - 124 */
|
|
||||||
0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 128 - 140 */
|
|
||||||
0x00, 0x00, 0x00, 0x00}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Restricted channel sets
|
* Restricted channel sets
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Channels 34, 38, 42, 46 */
|
|
||||||
static const struct brcms_chanvec restricted_set_japan_legacy = {
|
|
||||||
{0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00}
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Channels 12, 13 */
|
/* Channels 12, 13 */
|
||||||
static const struct brcms_chanvec restricted_set_2g_short = {
|
static const struct brcms_chanvec restricted_set_2g_short = {
|
||||||
{0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
{0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
@ -244,47 +188,11 @@ static const struct brcms_chanvec restricted_set_2g_short = {
|
||||||
0x00, 0x00, 0x00, 0x00}
|
0x00, 0x00, 0x00, 0x00}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Channel 165 */
|
|
||||||
static const struct brcms_chanvec restricted_chan_165 = {
|
|
||||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00}
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Channels 36 - 48 & 149 - 165 */
|
|
||||||
static const struct brcms_chanvec restricted_low_hi = {
|
|
||||||
{0x00, 0x00, 0x00, 0x00, 0x10, 0x11, 0x01, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x20, 0x22, 0x22, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00}
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Channels 12 - 14 */
|
|
||||||
static const struct brcms_chanvec restricted_set_12_13_14 = {
|
|
||||||
{0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00}
|
|
||||||
};
|
|
||||||
|
|
||||||
/* global memory to provide working buffer for expanded locale */
|
/* global memory to provide working buffer for expanded locale */
|
||||||
|
|
||||||
static const struct brcms_chanvec *g_table_radar_set[] = {
|
|
||||||
&chanvec_none,
|
|
||||||
&radar_set1
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct brcms_chanvec *g_table_restricted_chan[] = {
|
static const struct brcms_chanvec *g_table_restricted_chan[] = {
|
||||||
&chanvec_none, /* restricted_set_none */
|
&chanvec_none, /* restricted_set_none */
|
||||||
&restricted_set_2g_short,
|
&restricted_set_2g_short,
|
||||||
&restricted_chan_165,
|
|
||||||
&chanvec_all_5G,
|
|
||||||
&restricted_set_japan_legacy,
|
|
||||||
&chanvec_all_2G, /* restricted_set_11d_2G */
|
|
||||||
&chanvec_all_5G, /* restricted_set_11d_5G */
|
|
||||||
&restricted_low_hi,
|
|
||||||
&restricted_set_12_13_14
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct brcms_chanvec locale_2g_01_11 = {
|
static const struct brcms_chanvec locale_2g_01_11 = {
|
||||||
|
@ -445,11 +353,9 @@ static void brcms_c_locale_get_channels(const struct locale_info *locale,
|
||||||
*/
|
*/
|
||||||
static const struct locale_info locale_i = { /* locale i. channel 1 - 13 */
|
static const struct locale_info locale_i = { /* locale i. channel 1 - 13 */
|
||||||
LOCALE_CHAN_01_11 | LOCALE_CHAN_12_13,
|
LOCALE_CHAN_01_11 | LOCALE_CHAN_12_13,
|
||||||
LOCALE_RADAR_SET_NONE,
|
|
||||||
LOCALE_RESTRICTED_SET_2G_SHORT,
|
LOCALE_RESTRICTED_SET_2G_SHORT,
|
||||||
{QDB(19), QDB(19), QDB(19),
|
{QDB(19), QDB(19), QDB(19),
|
||||||
QDB(19), QDB(19), QDB(19)},
|
QDB(19), QDB(19), QDB(19)},
|
||||||
{20, 20, 20, 0},
|
|
||||||
BRCMS_EIRP
|
BRCMS_EIRP
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -459,10 +365,8 @@ static const struct locale_info locale_i = { /* locale i. channel 1 - 13 */
|
||||||
static const struct locale_info locale_11 = {
|
static const struct locale_info locale_11 = {
|
||||||
/* locale 11. channel 36 - 48, 52 - 64, 100 - 140, 149 - 165 */
|
/* locale 11. channel 36 - 48, 52 - 64, 100 - 140, 149 - 165 */
|
||||||
LOCALE_CHAN_36_64 | LOCALE_CHAN_100_140 | LOCALE_CHAN_149_165,
|
LOCALE_CHAN_36_64 | LOCALE_CHAN_100_140 | LOCALE_CHAN_149_165,
|
||||||
LOCALE_RADAR_SET_1,
|
|
||||||
LOCALE_RESTRICTED_NONE,
|
LOCALE_RESTRICTED_NONE,
|
||||||
{QDB(21), QDB(21), QDB(21), QDB(21), QDB(21)},
|
{QDB(21), QDB(21), QDB(21), QDB(21), QDB(21)},
|
||||||
{23, 23, 23, 30, 30},
|
|
||||||
BRCMS_EIRP | BRCMS_DFS_EU
|
BRCMS_EIRP | BRCMS_DFS_EU
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -544,13 +448,6 @@ static const struct locale_mimo_info *brcms_c_get_mimo_5g(u8 locale_idx)
|
||||||
return g_mimo_5g_table[locale_idx];
|
return g_mimo_5g_table[locale_idx];
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
brcms_c_country_aggregate_map(struct brcms_cm_info *wlc_cm, const char *ccode,
|
|
||||||
char *mapped_ccode, uint *mapped_regrev)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Indicates whether the country provided is valid to pass
|
* Indicates whether the country provided is valid to pass
|
||||||
* to cfg80211 or not.
|
* to cfg80211 or not.
|
||||||
|
@ -620,7 +517,6 @@ brcms_c_countrycode_map(struct brcms_cm_info *wlc_cm, const char *ccode,
|
||||||
const struct country_info *country;
|
const struct country_info *country;
|
||||||
uint srom_regrev = wlc_cm->srom_regrev;
|
uint srom_regrev = wlc_cm->srom_regrev;
|
||||||
const char *srom_ccode = wlc_cm->srom_ccode;
|
const char *srom_ccode = wlc_cm->srom_ccode;
|
||||||
int mapped;
|
|
||||||
|
|
||||||
/* check for currently supported ccode size */
|
/* check for currently supported ccode size */
|
||||||
if (strlen(ccode) > (BRCM_CNTRY_BUF_SZ - 1)) {
|
if (strlen(ccode) > (BRCM_CNTRY_BUF_SZ - 1)) {
|
||||||
|
@ -639,12 +535,7 @@ brcms_c_countrycode_map(struct brcms_cm_info *wlc_cm, const char *ccode,
|
||||||
*/
|
*/
|
||||||
if (!strcmp(srom_ccode, ccode)) {
|
if (!strcmp(srom_ccode, ccode)) {
|
||||||
*mapped_regrev = srom_regrev;
|
*mapped_regrev = srom_regrev;
|
||||||
mapped = 0;
|
|
||||||
wiphy_err(wlc->wiphy, "srom_code == ccode %s\n", __func__);
|
wiphy_err(wlc->wiphy, "srom_code == ccode %s\n", __func__);
|
||||||
} else {
|
|
||||||
mapped =
|
|
||||||
brcms_c_country_aggregate_map(wlc_cm, ccode, mapped_ccode,
|
|
||||||
mapped_regrev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* find the matching built-in country definition */
|
/* find the matching built-in country definition */
|
||||||
|
@ -902,8 +793,6 @@ brcms_c_channels_init(struct brcms_cm_info *wlc_cm,
|
||||||
|
|
||||||
wlc_cm->bandstate[band->bandunit].restricted_channels =
|
wlc_cm->bandstate[band->bandunit].restricted_channels =
|
||||||
g_table_restricted_chan[li->restricted_channels];
|
g_table_restricted_chan[li->restricted_channels];
|
||||||
wlc_cm->bandstate[band->bandunit].radar_channels =
|
|
||||||
g_table_radar_set[li->radar_channels];
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* set the channel availability, masking out the channels
|
* set the channel availability, masking out the channels
|
||||||
|
@ -938,17 +827,11 @@ brcms_c_set_country_common(struct brcms_cm_info *wlc_cm,
|
||||||
{
|
{
|
||||||
const struct locale_info *locale;
|
const struct locale_info *locale;
|
||||||
struct brcms_c_info *wlc = wlc_cm->wlc;
|
struct brcms_c_info *wlc = wlc_cm->wlc;
|
||||||
char prev_country_abbrev[BRCM_CNTRY_BUF_SZ];
|
|
||||||
|
|
||||||
/* save current country state */
|
/* save current country state */
|
||||||
wlc_cm->country = country;
|
wlc_cm->country = country;
|
||||||
|
|
||||||
memset(&prev_country_abbrev, 0, BRCM_CNTRY_BUF_SZ);
|
|
||||||
strncpy(prev_country_abbrev, wlc_cm->country_abbrev,
|
|
||||||
BRCM_CNTRY_BUF_SZ - 1);
|
|
||||||
|
|
||||||
strncpy(wlc_cm->country_abbrev, country_abbrev, BRCM_CNTRY_BUF_SZ - 1);
|
strncpy(wlc_cm->country_abbrev, country_abbrev, BRCM_CNTRY_BUF_SZ - 1);
|
||||||
strncpy(wlc_cm->ccode, ccode, BRCM_CNTRY_BUF_SZ - 1);
|
|
||||||
wlc_cm->regrev = regrev;
|
wlc_cm->regrev = regrev;
|
||||||
|
|
||||||
if ((wlc->pub->_n_enab & SUPPORT_11N) !=
|
if ((wlc->pub->_n_enab & SUPPORT_11N) !=
|
||||||
|
@ -1014,16 +897,12 @@ brcms_c_set_countrycode_rev(struct brcms_cm_info *wlc_cm,
|
||||||
static int
|
static int
|
||||||
brcms_c_set_countrycode(struct brcms_cm_info *wlc_cm, const char *ccode)
|
brcms_c_set_countrycode(struct brcms_cm_info *wlc_cm, const char *ccode)
|
||||||
{
|
{
|
||||||
char country_abbrev[BRCM_CNTRY_BUF_SZ];
|
return brcms_c_set_countrycode_rev(wlc_cm, ccode, ccode, -1);
|
||||||
strncpy(country_abbrev, ccode, BRCM_CNTRY_BUF_SZ);
|
|
||||||
return brcms_c_set_countrycode_rev(wlc_cm, country_abbrev, ccode, -1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct brcms_cm_info *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc)
|
struct brcms_cm_info *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc)
|
||||||
{
|
{
|
||||||
struct brcms_cm_info *wlc_cm;
|
struct brcms_cm_info *wlc_cm;
|
||||||
char country_abbrev[BRCM_CNTRY_BUF_SZ];
|
|
||||||
const struct country_info *country;
|
|
||||||
struct brcms_pub *pub = wlc->pub;
|
struct brcms_pub *pub = wlc->pub;
|
||||||
struct ssb_sprom *sprom = &wlc->hw->d11core->bus->sprom;
|
struct ssb_sprom *sprom = &wlc->hw->d11core->bus->sprom;
|
||||||
|
|
||||||
|
@ -1040,21 +919,14 @@ struct brcms_cm_info *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc)
|
||||||
if (sprom->alpha2 && brcms_c_country_valid(sprom->alpha2))
|
if (sprom->alpha2 && brcms_c_country_valid(sprom->alpha2))
|
||||||
strncpy(wlc->pub->srom_ccode, sprom->alpha2, sizeof(sprom->alpha2));
|
strncpy(wlc->pub->srom_ccode, sprom->alpha2, sizeof(sprom->alpha2));
|
||||||
|
|
||||||
/*
|
|
||||||
* internal country information which must match
|
|
||||||
* regulatory constraints in firmware
|
|
||||||
*/
|
|
||||||
memset(country_abbrev, 0, BRCM_CNTRY_BUF_SZ);
|
|
||||||
strncpy(country_abbrev, "X2", sizeof(country_abbrev) - 1);
|
|
||||||
country = brcms_c_country_lookup(wlc, country_abbrev);
|
|
||||||
|
|
||||||
/* save default country for exiting 11d regulatory mode */
|
/* save default country for exiting 11d regulatory mode */
|
||||||
strncpy(wlc->country_default, country_abbrev, BRCM_CNTRY_BUF_SZ - 1);
|
strncpy(wlc->country_default, "X2", BRCM_CNTRY_BUF_SZ - 1);
|
||||||
|
|
||||||
/* initialize autocountry_default to driver default */
|
/* initialize autocountry_default to driver default */
|
||||||
strncpy(wlc->autocountry_default, "X2", BRCM_CNTRY_BUF_SZ - 1);
|
strncpy(wlc->autocountry_default, wlc->country_default,
|
||||||
|
BRCM_CNTRY_BUF_SZ - 1);
|
||||||
|
|
||||||
brcms_c_set_countrycode(wlc_cm, country_abbrev);
|
brcms_c_set_countrycode(wlc_cm, wlc->country_default);
|
||||||
|
|
||||||
return wlc_cm;
|
return wlc_cm;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue