mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-04 02:16:45 +07:00
cfg80211: consolidate passive-scan and no-ibss flags
These two flags are used for the same purpose, just combine them into a no-ir flag to annotate no initiating radiation is allowed. Old userspace sending either flag will have it treated as the no-ir flag. To be considerate to older userspace we also send both the no-ir flag and the old no-ibss flags. Newer userspace will have to be aware of older kernels. Update all places in the tree using these flags with the following semantic patch: @@ @@ -NL80211_RRF_PASSIVE_SCAN +NL80211_RRF_NO_IR @@ @@ -NL80211_RRF_NO_IBSS +NL80211_RRF_NO_IR @@ @@ -IEEE80211_CHAN_PASSIVE_SCAN +IEEE80211_CHAN_NO_IR @@ @@ -IEEE80211_CHAN_NO_IBSS +IEEE80211_CHAN_NO_IR @@ @@ -NL80211_RRF_NO_IR | NL80211_RRF_NO_IR +NL80211_RRF_NO_IR @@ @@ -IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_IR +IEEE80211_CHAN_NO_IR @@ @@ -(NL80211_RRF_NO_IR) +NL80211_RRF_NO_IR @@ @@ -(IEEE80211_CHAN_NO_IR) +IEEE80211_CHAN_NO_IR Along with some hand-optimisations in documentation, to remove duplicates and to fix some indentation. Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com> [do all the driver updates in one go] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
c17bff87be
commit
8fe02e167e
@ -159,10 +159,10 @@ struct ieee80211_regdomain mydriver_jp_regdom = {
|
||||
REG_RULE(2412-20, 2484+20, 40, 6, 20, 0),
|
||||
/* IEEE 802.11a, channels 34..48 */
|
||||
REG_RULE(5170-20, 5240+20, 40, 6, 20,
|
||||
NL80211_RRF_PASSIVE_SCAN),
|
||||
NL80211_RRF_NO_IR),
|
||||
/* IEEE 802.11a, channels 52..64 */
|
||||
REG_RULE(5260-20, 5320+20, 40, 6, 20,
|
||||
NL80211_RRF_NO_IBSS |
|
||||
NL80211_RRF_NO_IR|
|
||||
NL80211_RRF_DFS),
|
||||
}
|
||||
};
|
||||
|
@ -1351,12 +1351,12 @@ static int ath10k_update_channel_list(struct ath10k *ar)
|
||||
ch->allow_vht = true;
|
||||
|
||||
ch->allow_ibss =
|
||||
!(channel->flags & IEEE80211_CHAN_NO_IBSS);
|
||||
!(channel->flags & IEEE80211_CHAN_NO_IR);
|
||||
|
||||
ch->ht40plus =
|
||||
!(channel->flags & IEEE80211_CHAN_NO_HT40PLUS);
|
||||
|
||||
passive = channel->flags & IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
passive = channel->flags & IEEE80211_CHAN_NO_IR;
|
||||
ch->passive = passive;
|
||||
|
||||
ch->freq = channel->center_freq;
|
||||
|
@ -37,17 +37,18 @@ static int __ath_regd_init(struct ath_regulatory *reg);
|
||||
|
||||
/* We enable active scan on these a case by case basis by regulatory domain */
|
||||
#define ATH9K_2GHZ_CH12_13 REG_RULE(2467-10, 2472+10, 40, 0, 20,\
|
||||
NL80211_RRF_PASSIVE_SCAN)
|
||||
NL80211_RRF_NO_IR)
|
||||
#define ATH9K_2GHZ_CH14 REG_RULE(2484-10, 2484+10, 40, 0, 20,\
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_OFDM)
|
||||
NL80211_RRF_NO_IR | \
|
||||
NL80211_RRF_NO_OFDM)
|
||||
|
||||
/* We allow IBSS on these on a case by case basis by regulatory domain */
|
||||
#define ATH9K_5GHZ_5150_5350 REG_RULE(5150-10, 5350+10, 80, 0, 30,\
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
#define ATH9K_5GHZ_5470_5850 REG_RULE(5470-10, 5850+10, 80, 0, 30,\
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
#define ATH9K_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 80, 0, 30,\
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
|
||||
#define ATH9K_2GHZ_ALL ATH9K_2GHZ_CH01_11, \
|
||||
ATH9K_2GHZ_CH12_13, \
|
||||
@ -223,18 +224,11 @@ ath_reg_apply_beaconing_flags(struct wiphy *wiphy,
|
||||
* default during init, prior to calling our
|
||||
* regulatory_hint().
|
||||
*/
|
||||
if (!(reg_rule->flags &
|
||||
NL80211_RRF_NO_IBSS))
|
||||
ch->flags &=
|
||||
~IEEE80211_CHAN_NO_IBSS;
|
||||
if (!(reg_rule->flags &
|
||||
NL80211_RRF_PASSIVE_SCAN))
|
||||
ch->flags &=
|
||||
~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (!(reg_rule->flags & NL80211_RRF_NO_IR))
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
} else {
|
||||
if (ch->beacon_found)
|
||||
ch->flags &= ~(IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN);
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -260,11 +254,11 @@ ath_reg_apply_active_scan_flags(struct wiphy *wiphy,
|
||||
*/
|
||||
if (initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE) {
|
||||
ch = &sband->channels[11]; /* CH 12 */
|
||||
if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (ch->flags & IEEE80211_CHAN_NO_IR)
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
ch = &sband->channels[12]; /* CH 13 */
|
||||
if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (ch->flags & IEEE80211_CHAN_NO_IR)
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -278,17 +272,17 @@ ath_reg_apply_active_scan_flags(struct wiphy *wiphy,
|
||||
ch = &sband->channels[11]; /* CH 12 */
|
||||
reg_rule = freq_reg_info(wiphy, ch->center_freq);
|
||||
if (!IS_ERR(reg_rule)) {
|
||||
if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
|
||||
if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (!(reg_rule->flags & NL80211_RRF_NO_IR))
|
||||
if (ch->flags & IEEE80211_CHAN_NO_IR)
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
}
|
||||
|
||||
ch = &sband->channels[12]; /* CH 13 */
|
||||
reg_rule = freq_reg_info(wiphy, ch->center_freq);
|
||||
if (!IS_ERR(reg_rule)) {
|
||||
if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
|
||||
if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (!(reg_rule->flags & NL80211_RRF_NO_IR))
|
||||
if (ch->flags & IEEE80211_CHAN_NO_IR)
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
}
|
||||
}
|
||||
|
||||
@ -320,8 +314,7 @@ static void ath_reg_apply_radar_flags(struct wiphy *wiphy)
|
||||
*/
|
||||
if (!(ch->flags & IEEE80211_CHAN_DISABLED))
|
||||
ch->flags |= IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
IEEE80211_CHAN_NO_IR;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -812,7 +812,7 @@ static s32 brcmf_p2p_run_escan(struct brcmf_cfg80211_info *cfg,
|
||||
struct ieee80211_channel *chan = request->channels[i];
|
||||
|
||||
if (chan->flags & (IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN))
|
||||
IEEE80211_CHAN_NO_IR))
|
||||
continue;
|
||||
|
||||
chanspecs[i] = channel_to_chanspec(&p2p->cfg->d11inf,
|
||||
|
@ -202,9 +202,9 @@ static struct ieee80211_supported_band __wl_band_5ghz_a = {
|
||||
|
||||
/* This is to override regulatory domains defined in cfg80211 module (reg.c)
|
||||
* By default world regulatory domain defined in reg.c puts the flags
|
||||
* NL80211_RRF_PASSIVE_SCAN and NL80211_RRF_NO_IBSS for 5GHz channels (for
|
||||
* 36..48 and 149..165). With respect to these flags, wpa_supplicant doesn't
|
||||
* start p2p operations on 5GHz channels. All the changes in world regulatory
|
||||
* NL80211_RRF_NO_IR for 5GHz channels (for * 36..48 and 149..165).
|
||||
* With respect to these flags, wpa_supplicant doesn't * start p2p
|
||||
* operations on 5GHz channels. All the changes in world regulatory
|
||||
* domain are to be done here.
|
||||
*/
|
||||
static const struct ieee80211_regdomain brcmf_regdom = {
|
||||
@ -5197,10 +5197,10 @@ static s32 brcmf_construct_reginfo(struct brcmf_cfg80211_info *cfg, u32 bw_cap)
|
||||
if (channel & WL_CHAN_RADAR)
|
||||
band_chan_arr[index].flags |=
|
||||
(IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IBSS);
|
||||
IEEE80211_CHAN_NO_IR);
|
||||
if (channel & WL_CHAN_PASSIVE)
|
||||
band_chan_arr[index].flags |=
|
||||
IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
IEEE80211_CHAN_NO_IR;
|
||||
}
|
||||
}
|
||||
if (!update)
|
||||
|
@ -59,23 +59,18 @@
|
||||
|
||||
#define BRCM_2GHZ_2412_2462 REG_RULE(2412-10, 2462+10, 40, 0, 19, 0)
|
||||
#define BRCM_2GHZ_2467_2472 REG_RULE(2467-10, 2472+10, 20, 0, 19, \
|
||||
NL80211_RRF_PASSIVE_SCAN | \
|
||||
NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
|
||||
#define BRCM_5GHZ_5180_5240 REG_RULE(5180-10, 5240+10, 40, 0, 21, \
|
||||
NL80211_RRF_PASSIVE_SCAN | \
|
||||
NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
#define BRCM_5GHZ_5260_5320 REG_RULE(5260-10, 5320+10, 40, 0, 21, \
|
||||
NL80211_RRF_PASSIVE_SCAN | \
|
||||
NL80211_RRF_DFS | \
|
||||
NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
#define BRCM_5GHZ_5500_5700 REG_RULE(5500-10, 5700+10, 40, 0, 21, \
|
||||
NL80211_RRF_PASSIVE_SCAN | \
|
||||
NL80211_RRF_DFS | \
|
||||
NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
#define BRCM_5GHZ_5745_5825 REG_RULE(5745-10, 5825+10, 40, 0, 21, \
|
||||
NL80211_RRF_PASSIVE_SCAN | \
|
||||
NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
|
||||
static const struct ieee80211_regdomain brcms_regdom_x2 = {
|
||||
.n_reg_rules = 6,
|
||||
@ -395,7 +390,7 @@ brcms_c_channel_set_chanspec(struct brcms_cm_info *wlc_cm, u16 chanspec,
|
||||
brcms_c_set_gmode(wlc, wlc->protection->gmode_user, false);
|
||||
|
||||
brcms_b_set_chanspec(wlc->hw, chanspec,
|
||||
!!(ch->flags & IEEE80211_CHAN_PASSIVE_SCAN),
|
||||
!!(ch->flags & IEEE80211_CHAN_NO_IR),
|
||||
&txpwr);
|
||||
}
|
||||
|
||||
@ -657,8 +652,8 @@ static void brcms_reg_apply_radar_flags(struct wiphy *wiphy)
|
||||
*/
|
||||
if (!(ch->flags & IEEE80211_CHAN_DISABLED))
|
||||
ch->flags |= IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
IEEE80211_CHAN_NO_IR |
|
||||
IEEE80211_CHAN_NO_IR;
|
||||
}
|
||||
}
|
||||
|
||||
@ -688,14 +683,10 @@ brcms_reg_apply_beaconing_flags(struct wiphy *wiphy,
|
||||
if (IS_ERR(rule))
|
||||
continue;
|
||||
|
||||
if (!(rule->flags & NL80211_RRF_NO_IBSS))
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IBSS;
|
||||
if (!(rule->flags & NL80211_RRF_PASSIVE_SCAN))
|
||||
ch->flags &=
|
||||
~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (!(rule->flags & NL80211_RRF_NO_IR))
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
} else if (ch->beacon_found) {
|
||||
ch->flags &= ~(IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN);
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -125,13 +125,13 @@ static struct ieee80211_channel brcms_2ghz_chantable[] = {
|
||||
CHAN2GHZ(10, 2457, IEEE80211_CHAN_NO_HT40PLUS),
|
||||
CHAN2GHZ(11, 2462, IEEE80211_CHAN_NO_HT40PLUS),
|
||||
CHAN2GHZ(12, 2467,
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_NO_IR |
|
||||
IEEE80211_CHAN_NO_HT40PLUS),
|
||||
CHAN2GHZ(13, 2472,
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_NO_IR |
|
||||
IEEE80211_CHAN_NO_HT40PLUS),
|
||||
CHAN2GHZ(14, 2484,
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_NO_IR |
|
||||
IEEE80211_CHAN_NO_HT40PLUS | IEEE80211_CHAN_NO_HT40MINUS |
|
||||
IEEE80211_CHAN_NO_OFDM)
|
||||
};
|
||||
@ -144,51 +144,51 @@ static struct ieee80211_channel brcms_5ghz_nphy_chantable[] = {
|
||||
CHAN5GHZ(48, IEEE80211_CHAN_NO_HT40PLUS),
|
||||
/* UNII-2 */
|
||||
CHAN5GHZ(52,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
CHAN5GHZ(56,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
CHAN5GHZ(60,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
CHAN5GHZ(64,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
/* MID */
|
||||
CHAN5GHZ(100,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
CHAN5GHZ(104,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
CHAN5GHZ(108,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
CHAN5GHZ(112,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
CHAN5GHZ(116,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
CHAN5GHZ(120,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
CHAN5GHZ(124,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
CHAN5GHZ(128,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
CHAN5GHZ(132,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
|
||||
CHAN5GHZ(136,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
|
||||
CHAN5GHZ(140,
|
||||
IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS |
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS |
|
||||
IEEE80211_CHAN_NO_HT40MINUS),
|
||||
/* UNII-3 */
|
||||
CHAN5GHZ(149, IEEE80211_CHAN_NO_HT40MINUS),
|
||||
|
@ -197,9 +197,9 @@ void cw1200_scan_work(struct work_struct *work)
|
||||
if ((*it)->band != first->band)
|
||||
break;
|
||||
if (((*it)->flags ^ first->flags) &
|
||||
IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
IEEE80211_CHAN_NO_IR)
|
||||
break;
|
||||
if (!(first->flags & IEEE80211_CHAN_PASSIVE_SCAN) &&
|
||||
if (!(first->flags & IEEE80211_CHAN_NO_IR) &&
|
||||
(*it)->max_power != first->max_power)
|
||||
break;
|
||||
}
|
||||
@ -210,7 +210,7 @@ void cw1200_scan_work(struct work_struct *work)
|
||||
else
|
||||
scan.max_tx_rate = WSM_TRANSMIT_RATE_1;
|
||||
scan.num_probes =
|
||||
(first->flags & IEEE80211_CHAN_PASSIVE_SCAN) ? 0 : 2;
|
||||
(first->flags & IEEE80211_CHAN_NO_IR) ? 0 : 2;
|
||||
scan.num_ssids = priv->scan.n_ssids;
|
||||
scan.ssids = &priv->scan.ssids[0];
|
||||
scan.num_channels = it - priv->scan.curr;
|
||||
@ -233,7 +233,7 @@ void cw1200_scan_work(struct work_struct *work)
|
||||
}
|
||||
for (i = 0; i < scan.num_channels; ++i) {
|
||||
scan.ch[i].number = priv->scan.curr[i]->hw_value;
|
||||
if (priv->scan.curr[i]->flags & IEEE80211_CHAN_PASSIVE_SCAN) {
|
||||
if (priv->scan.curr[i]->flags & IEEE80211_CHAN_NO_IR) {
|
||||
scan.ch[i].min_chan_time = 50;
|
||||
scan.ch[i].max_chan_time = 100;
|
||||
} else {
|
||||
@ -241,7 +241,7 @@ void cw1200_scan_work(struct work_struct *work)
|
||||
scan.ch[i].max_chan_time = 25;
|
||||
}
|
||||
}
|
||||
if (!(first->flags & IEEE80211_CHAN_PASSIVE_SCAN) &&
|
||||
if (!(first->flags & IEEE80211_CHAN_NO_IR) &&
|
||||
priv->scan.output_power != first->max_power) {
|
||||
priv->scan.output_power = first->max_power;
|
||||
wsm_set_output_power(priv,
|
||||
|
@ -1930,10 +1930,10 @@ static int ipw2100_wdev_init(struct net_device *dev)
|
||||
bg_band->channels[i].max_power = geo->bg[i].max_power;
|
||||
if (geo->bg[i].flags & LIBIPW_CH_PASSIVE_ONLY)
|
||||
bg_band->channels[i].flags |=
|
||||
IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
IEEE80211_CHAN_NO_IR;
|
||||
if (geo->bg[i].flags & LIBIPW_CH_NO_IBSS)
|
||||
bg_band->channels[i].flags |=
|
||||
IEEE80211_CHAN_NO_IBSS;
|
||||
IEEE80211_CHAN_NO_IR;
|
||||
if (geo->bg[i].flags & LIBIPW_CH_RADAR_DETECT)
|
||||
bg_band->channels[i].flags |=
|
||||
IEEE80211_CHAN_RADAR;
|
||||
|
@ -11472,10 +11472,10 @@ static int ipw_wdev_init(struct net_device *dev)
|
||||
bg_band->channels[i].max_power = geo->bg[i].max_power;
|
||||
if (geo->bg[i].flags & LIBIPW_CH_PASSIVE_ONLY)
|
||||
bg_band->channels[i].flags |=
|
||||
IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
IEEE80211_CHAN_NO_IR;
|
||||
if (geo->bg[i].flags & LIBIPW_CH_NO_IBSS)
|
||||
bg_band->channels[i].flags |=
|
||||
IEEE80211_CHAN_NO_IBSS;
|
||||
IEEE80211_CHAN_NO_IR;
|
||||
if (geo->bg[i].flags & LIBIPW_CH_RADAR_DETECT)
|
||||
bg_band->channels[i].flags |=
|
||||
IEEE80211_CHAN_RADAR;
|
||||
@ -11511,10 +11511,10 @@ static int ipw_wdev_init(struct net_device *dev)
|
||||
a_band->channels[i].max_power = geo->a[i].max_power;
|
||||
if (geo->a[i].flags & LIBIPW_CH_PASSIVE_ONLY)
|
||||
a_band->channels[i].flags |=
|
||||
IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
IEEE80211_CHAN_NO_IR;
|
||||
if (geo->a[i].flags & LIBIPW_CH_NO_IBSS)
|
||||
a_band->channels[i].flags |=
|
||||
IEEE80211_CHAN_NO_IBSS;
|
||||
IEEE80211_CHAN_NO_IR;
|
||||
if (geo->a[i].flags & LIBIPW_CH_RADAR_DETECT)
|
||||
a_band->channels[i].flags |=
|
||||
IEEE80211_CHAN_RADAR;
|
||||
|
@ -1595,7 +1595,7 @@ il3945_get_channels_for_scan(struct il_priv *il, enum ieee80211_band band,
|
||||
* and use long active_dwell time.
|
||||
*/
|
||||
if (!is_active || il_is_channel_passive(ch_info) ||
|
||||
(chan->flags & IEEE80211_CHAN_PASSIVE_SCAN)) {
|
||||
(chan->flags & IEEE80211_CHAN_NO_IR)) {
|
||||
scan_ch->type = 0; /* passive */
|
||||
if (IL_UCODE_API(il->ucode_ver) == 1)
|
||||
scan_ch->active_dwell =
|
||||
|
@ -805,7 +805,7 @@ il4965_get_channels_for_scan(struct il_priv *il, struct ieee80211_vif *vif,
|
||||
}
|
||||
|
||||
if (!is_active || il_is_channel_passive(ch_info) ||
|
||||
(chan->flags & IEEE80211_CHAN_PASSIVE_SCAN))
|
||||
(chan->flags & IEEE80211_CHAN_NO_IR))
|
||||
scan_ch->type = SCAN_CHANNEL_TYPE_PASSIVE;
|
||||
else
|
||||
scan_ch->type = SCAN_CHANNEL_TYPE_ACTIVE;
|
||||
|
@ -3445,10 +3445,10 @@ il_init_geos(struct il_priv *il)
|
||||
|
||||
if (il_is_channel_valid(ch)) {
|
||||
if (!(ch->flags & EEPROM_CHANNEL_IBSS))
|
||||
geo_ch->flags |= IEEE80211_CHAN_NO_IBSS;
|
||||
geo_ch->flags |= IEEE80211_CHAN_NO_IR;
|
||||
|
||||
if (!(ch->flags & EEPROM_CHANNEL_ACTIVE))
|
||||
geo_ch->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
geo_ch->flags |= IEEE80211_CHAN_NO_IR;
|
||||
|
||||
if (ch->flags & EEPROM_CHANNEL_RADAR)
|
||||
geo_ch->flags |= IEEE80211_CHAN_RADAR;
|
||||
|
@ -567,12 +567,12 @@ il_dbgfs_channels_read(struct file *file, char __user *user_buf, size_t count,
|
||||
flags & IEEE80211_CHAN_RADAR ?
|
||||
" (IEEE 802.11h required)" : "",
|
||||
((channels[i].
|
||||
flags & IEEE80211_CHAN_NO_IBSS) ||
|
||||
flags & IEEE80211_CHAN_NO_IR) ||
|
||||
(channels[i].
|
||||
flags & IEEE80211_CHAN_RADAR)) ? "" :
|
||||
", IBSS",
|
||||
channels[i].
|
||||
flags & IEEE80211_CHAN_PASSIVE_SCAN ?
|
||||
flags & IEEE80211_CHAN_NO_IR ?
|
||||
"passive only" : "active/passive");
|
||||
}
|
||||
supp_band = il_get_hw_mode(il, IEEE80211_BAND_5GHZ);
|
||||
@ -594,12 +594,12 @@ il_dbgfs_channels_read(struct file *file, char __user *user_buf, size_t count,
|
||||
flags & IEEE80211_CHAN_RADAR ?
|
||||
" (IEEE 802.11h required)" : "",
|
||||
((channels[i].
|
||||
flags & IEEE80211_CHAN_NO_IBSS) ||
|
||||
flags & IEEE80211_CHAN_NO_IR) ||
|
||||
(channels[i].
|
||||
flags & IEEE80211_CHAN_RADAR)) ? "" :
|
||||
", IBSS",
|
||||
channels[i].
|
||||
flags & IEEE80211_CHAN_PASSIVE_SCAN ?
|
||||
flags & IEEE80211_CHAN_NO_IR ?
|
||||
"passive only" : "active/passive");
|
||||
}
|
||||
ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
|
||||
|
@ -352,12 +352,12 @@ static ssize_t iwl_dbgfs_channels_read(struct file *file, char __user *user_buf,
|
||||
channels[i].max_power,
|
||||
channels[i].flags & IEEE80211_CHAN_RADAR ?
|
||||
" (IEEE 802.11h required)" : "",
|
||||
((channels[i].flags & IEEE80211_CHAN_NO_IBSS)
|
||||
((channels[i].flags & IEEE80211_CHAN_NO_IR)
|
||||
|| (channels[i].flags &
|
||||
IEEE80211_CHAN_RADAR)) ? "" :
|
||||
", IBSS",
|
||||
channels[i].flags &
|
||||
IEEE80211_CHAN_PASSIVE_SCAN ?
|
||||
IEEE80211_CHAN_NO_IR ?
|
||||
"passive only" : "active/passive");
|
||||
}
|
||||
supp_band = iwl_get_hw_mode(priv, IEEE80211_BAND_5GHZ);
|
||||
@ -375,12 +375,12 @@ static ssize_t iwl_dbgfs_channels_read(struct file *file, char __user *user_buf,
|
||||
channels[i].max_power,
|
||||
channels[i].flags & IEEE80211_CHAN_RADAR ?
|
||||
" (IEEE 802.11h required)" : "",
|
||||
((channels[i].flags & IEEE80211_CHAN_NO_IBSS)
|
||||
((channels[i].flags & IEEE80211_CHAN_NO_IR)
|
||||
|| (channels[i].flags &
|
||||
IEEE80211_CHAN_RADAR)) ? "" :
|
||||
", IBSS",
|
||||
channels[i].flags &
|
||||
IEEE80211_CHAN_PASSIVE_SCAN ?
|
||||
IEEE80211_CHAN_NO_IR ?
|
||||
"passive only" : "active/passive");
|
||||
}
|
||||
ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
|
||||
|
@ -544,7 +544,7 @@ static int iwl_get_channels_for_scan(struct iwl_priv *priv,
|
||||
channel = chan->hw_value;
|
||||
scan_ch->channel = cpu_to_le16(channel);
|
||||
|
||||
if (!is_active || (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN))
|
||||
if (!is_active || (chan->flags & IEEE80211_CHAN_NO_IR))
|
||||
scan_ch->type = SCAN_CHANNEL_TYPE_PASSIVE;
|
||||
else
|
||||
scan_ch->type = SCAN_CHANNEL_TYPE_ACTIVE;
|
||||
|
@ -614,10 +614,10 @@ static int iwl_init_channel_map(struct device *dev, const struct iwl_cfg *cfg,
|
||||
channel->flags = IEEE80211_CHAN_NO_HT40;
|
||||
|
||||
if (!(eeprom_ch->flags & EEPROM_CHANNEL_IBSS))
|
||||
channel->flags |= IEEE80211_CHAN_NO_IBSS;
|
||||
channel->flags |= IEEE80211_CHAN_NO_IR;
|
||||
|
||||
if (!(eeprom_ch->flags & EEPROM_CHANNEL_ACTIVE))
|
||||
channel->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
channel->flags |= IEEE80211_CHAN_NO_IR;
|
||||
|
||||
if (eeprom_ch->flags & EEPROM_CHANNEL_RADAR)
|
||||
channel->flags |= IEEE80211_CHAN_RADAR;
|
||||
|
@ -223,10 +223,10 @@ static int iwl_init_channel_map(struct device *dev, const struct iwl_cfg *cfg,
|
||||
channel->flags |= IEEE80211_CHAN_NO_160MHZ;
|
||||
|
||||
if (!(ch_flags & NVM_CHANNEL_IBSS))
|
||||
channel->flags |= IEEE80211_CHAN_NO_IBSS;
|
||||
channel->flags |= IEEE80211_CHAN_NO_IR;
|
||||
|
||||
if (!(ch_flags & NVM_CHANNEL_ACTIVE))
|
||||
channel->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
channel->flags |= IEEE80211_CHAN_NO_IR;
|
||||
|
||||
if (ch_flags & NVM_CHANNEL_RADAR)
|
||||
channel->flags |= IEEE80211_CHAN_RADAR;
|
||||
|
@ -192,7 +192,7 @@ static void iwl_mvm_scan_fill_channels(struct iwl_scan_cmd *cmd,
|
||||
for (i = 0; i < cmd->channel_count; i++) {
|
||||
chan->channel = cpu_to_le16(req->channels[i]->hw_value);
|
||||
chan->type = cpu_to_le32(type);
|
||||
if (req->channels[i]->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
if (req->channels[i]->flags & IEEE80211_CHAN_NO_IR)
|
||||
chan->type &= cpu_to_le32(~SCAN_CHANNEL_TYPE_ACTIVE);
|
||||
chan->active_dwell = cpu_to_le16(active_dwell);
|
||||
chan->passive_dwell = cpu_to_le16(passive_dwell);
|
||||
@ -642,7 +642,7 @@ static void iwl_build_channel_cfg(struct iwl_mvm *mvm,
|
||||
channels->iter_count[index] = cpu_to_le16(1);
|
||||
channels->iter_interval[index] = 0;
|
||||
|
||||
if (!(s_band->channels[i].flags & IEEE80211_CHAN_PASSIVE_SCAN))
|
||||
if (!(s_band->channels[i].flags & IEEE80211_CHAN_NO_IR))
|
||||
channels->type[index] |=
|
||||
cpu_to_le32(IWL_SCAN_OFFLOAD_CHANNEL_ACTIVE);
|
||||
|
||||
|
@ -159,7 +159,7 @@ static const struct ieee80211_regdomain hwsim_world_regdom_custom_02 = {
|
||||
.reg_rules = {
|
||||
REG_RULE(2412-10, 2462+10, 40, 0, 20, 0),
|
||||
REG_RULE(5725-10, 5850+10, 40, 0, 30,
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS),
|
||||
NL80211_RRF_NO_IR),
|
||||
}
|
||||
};
|
||||
|
||||
@ -1485,7 +1485,7 @@ static void hw_scan_work(struct work_struct *work)
|
||||
req->channels[hwsim->scan_chan_idx]->center_freq);
|
||||
|
||||
hwsim->tmp_chan = req->channels[hwsim->scan_chan_idx];
|
||||
if (hwsim->tmp_chan->flags & IEEE80211_CHAN_PASSIVE_SCAN ||
|
||||
if (hwsim->tmp_chan->flags & IEEE80211_CHAN_NO_IR ||
|
||||
!req->n_ssids) {
|
||||
dwell = 120;
|
||||
} else {
|
||||
|
@ -50,24 +50,24 @@ static const struct ieee80211_regdomain mwifiex_world_regdom_custom = {
|
||||
REG_RULE(2412-10, 2462+10, 40, 3, 20, 0),
|
||||
/* Channel 12 - 13 */
|
||||
REG_RULE(2467-10, 2472+10, 20, 3, 20,
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS),
|
||||
NL80211_RRF_NO_IR),
|
||||
/* Channel 14 */
|
||||
REG_RULE(2484-10, 2484+10, 20, 3, 20,
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS |
|
||||
NL80211_RRF_NO_IR |
|
||||
NL80211_RRF_NO_OFDM),
|
||||
/* Channel 36 - 48 */
|
||||
REG_RULE(5180-10, 5240+10, 40, 3, 20,
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS),
|
||||
NL80211_RRF_NO_IR),
|
||||
/* Channel 149 - 165 */
|
||||
REG_RULE(5745-10, 5825+10, 40, 3, 20,
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS),
|
||||
NL80211_RRF_NO_IR),
|
||||
/* Channel 52 - 64 */
|
||||
REG_RULE(5260-10, 5320+10, 40, 3, 30,
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS |
|
||||
NL80211_RRF_NO_IR |
|
||||
NL80211_RRF_DFS),
|
||||
/* Channel 100 - 140 */
|
||||
REG_RULE(5500-10, 5700+10, 40, 3, 30,
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS |
|
||||
NL80211_RRF_NO_IR |
|
||||
NL80211_RRF_DFS),
|
||||
}
|
||||
};
|
||||
@ -1968,7 +1968,7 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
|
||||
user_scan_cfg->chan_list[i].chan_number = chan->hw_value;
|
||||
user_scan_cfg->chan_list[i].radio_type = chan->band;
|
||||
|
||||
if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
if (chan->flags & IEEE80211_CHAN_NO_IR)
|
||||
user_scan_cfg->chan_list[i].scan_type =
|
||||
MWIFIEX_SCAN_TYPE_PASSIVE;
|
||||
else
|
||||
|
@ -515,14 +515,14 @@ mwifiex_scan_create_channel_list(struct mwifiex_private *priv,
|
||||
scan_chan_list[chan_idx].max_scan_time =
|
||||
cpu_to_le16((u16) user_scan_in->
|
||||
chan_list[0].scan_time);
|
||||
else if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
else if (ch->flags & IEEE80211_CHAN_NO_IR)
|
||||
scan_chan_list[chan_idx].max_scan_time =
|
||||
cpu_to_le16(adapter->passive_scan_time);
|
||||
else
|
||||
scan_chan_list[chan_idx].max_scan_time =
|
||||
cpu_to_le16(adapter->active_scan_time);
|
||||
|
||||
if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
if (ch->flags & IEEE80211_CHAN_NO_IR)
|
||||
scan_chan_list[chan_idx].chan_scan_mode_bitmap
|
||||
|= MWIFIEX_PASSIVE_SCAN;
|
||||
else
|
||||
|
@ -59,30 +59,26 @@ static struct country_code_to_enum_rd allCountries[] = {
|
||||
*/
|
||||
#define RTL819x_2GHZ_CH12_13 \
|
||||
REG_RULE(2467-10, 2472+10, 40, 0, 20,\
|
||||
NL80211_RRF_PASSIVE_SCAN)
|
||||
NL80211_RRF_NO_IR)
|
||||
|
||||
#define RTL819x_2GHZ_CH14 \
|
||||
REG_RULE(2484-10, 2484+10, 40, 0, 20, \
|
||||
NL80211_RRF_PASSIVE_SCAN | \
|
||||
NL80211_RRF_NO_OFDM)
|
||||
NL80211_RRF_NO_IR | NL80211_RRF_NO_OFDM)
|
||||
|
||||
/* 5G chan 36 - chan 64*/
|
||||
#define RTL819x_5GHZ_5150_5350 \
|
||||
REG_RULE(5150-10, 5350+10, 40, 0, 30, \
|
||||
NL80211_RRF_PASSIVE_SCAN | \
|
||||
NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
|
||||
/* 5G chan 100 - chan 165*/
|
||||
#define RTL819x_5GHZ_5470_5850 \
|
||||
REG_RULE(5470-10, 5850+10, 40, 0, 30, \
|
||||
NL80211_RRF_PASSIVE_SCAN | \
|
||||
NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
|
||||
/* 5G chan 149 - chan 165*/
|
||||
#define RTL819x_5GHZ_5725_5850 \
|
||||
REG_RULE(5725-10, 5850+10, 40, 0, 30, \
|
||||
NL80211_RRF_PASSIVE_SCAN | \
|
||||
NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
|
||||
#define RTL819x_5GHZ_ALL \
|
||||
(RTL819x_5GHZ_5150_5350, RTL819x_5GHZ_5470_5850)
|
||||
@ -185,16 +181,11 @@ static void _rtl_reg_apply_beaconing_flags(struct wiphy *wiphy,
|
||||
*regulatory_hint().
|
||||
*/
|
||||
|
||||
if (!(reg_rule->flags & NL80211_RRF_NO_IBSS))
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IBSS;
|
||||
if (!(reg_rule->
|
||||
flags & NL80211_RRF_PASSIVE_SCAN))
|
||||
ch->flags &=
|
||||
~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (!(reg_rule->flags & NL80211_RRF_NO_IR))
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
} else {
|
||||
if (ch->beacon_found)
|
||||
ch->flags &= ~(IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN);
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -219,11 +210,11 @@ static void _rtl_reg_apply_active_scan_flags(struct wiphy *wiphy,
|
||||
*/
|
||||
if (initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE) {
|
||||
ch = &sband->channels[11]; /* CH 12 */
|
||||
if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (ch->flags & IEEE80211_CHAN_NO_IR)
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
ch = &sband->channels[12]; /* CH 13 */
|
||||
if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (ch->flags & IEEE80211_CHAN_NO_IR)
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -237,17 +228,17 @@ static void _rtl_reg_apply_active_scan_flags(struct wiphy *wiphy,
|
||||
ch = &sband->channels[11]; /* CH 12 */
|
||||
reg_rule = freq_reg_info(wiphy, ch->center_freq);
|
||||
if (!IS_ERR(reg_rule)) {
|
||||
if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
|
||||
if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (!(reg_rule->flags & NL80211_RRF_NO_IR))
|
||||
if (ch->flags & IEEE80211_CHAN_NO_IR)
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
}
|
||||
|
||||
ch = &sband->channels[12]; /* CH 13 */
|
||||
reg_rule = freq_reg_info(wiphy, ch->center_freq);
|
||||
if (!IS_ERR(reg_rule)) {
|
||||
if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
|
||||
if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (!(reg_rule->flags & NL80211_RRF_NO_IR))
|
||||
if (ch->flags & IEEE80211_CHAN_NO_IR)
|
||||
ch->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
}
|
||||
}
|
||||
|
||||
@ -284,8 +275,7 @@ static void _rtl_reg_apply_radar_flags(struct wiphy *wiphy)
|
||||
*/
|
||||
if (!(ch->flags & IEEE80211_CHAN_DISABLED))
|
||||
ch->flags |= IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
IEEE80211_CHAN_NO_IR;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@ static int wl1271_get_scan_channels(struct wl1271 *wl,
|
||||
* In active scans, we only scan channels not
|
||||
* marked as passive.
|
||||
*/
|
||||
(passive || !(flags & IEEE80211_CHAN_PASSIVE_SCAN))) {
|
||||
(passive || !(flags & IEEE80211_CHAN_NO_IR))) {
|
||||
wl1271_debug(DEBUG_SCAN, "band %d, center_freq %d ",
|
||||
req->channels[i]->band,
|
||||
req->channels[i]->center_freq);
|
||||
|
@ -1688,7 +1688,7 @@ int wlcore_cmd_regdomain_config_locked(struct wl1271 *wl)
|
||||
|
||||
if (channel->flags & (IEEE80211_CHAN_DISABLED |
|
||||
IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN))
|
||||
IEEE80211_CHAN_NO_IR))
|
||||
continue;
|
||||
|
||||
ch_bit_idx = wlcore_get_reg_conf_ch_idx(b, ch);
|
||||
|
@ -91,8 +91,7 @@ static void wl1271_reg_notify(struct wiphy *wiphy,
|
||||
continue;
|
||||
|
||||
if (ch->flags & IEEE80211_CHAN_RADAR)
|
||||
ch->flags |= IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
ch->flags |= IEEE80211_CHAN_NO_IR;
|
||||
|
||||
}
|
||||
|
||||
|
@ -188,16 +188,14 @@ wlcore_scan_get_channels(struct wl1271 *wl,
|
||||
flags = req_channels[i]->flags;
|
||||
|
||||
if (force_passive)
|
||||
flags |= IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
flags |= IEEE80211_CHAN_NO_IR;
|
||||
|
||||
if ((req_channels[i]->band == band) &&
|
||||
!(flags & IEEE80211_CHAN_DISABLED) &&
|
||||
(!!(flags & IEEE80211_CHAN_RADAR) == radar) &&
|
||||
/* if radar is set, we ignore the passive flag */
|
||||
(radar ||
|
||||
!!(flags & IEEE80211_CHAN_PASSIVE_SCAN) == passive)) {
|
||||
|
||||
|
||||
!!(flags & IEEE80211_CHAN_NO_IR) == passive)) {
|
||||
if (flags & IEEE80211_CHAN_RADAR) {
|
||||
channels[j].flags |= SCAN_CHANNEL_FLAGS_DFS;
|
||||
|
||||
@ -220,7 +218,7 @@ wlcore_scan_get_channels(struct wl1271 *wl,
|
||||
(band == IEEE80211_BAND_2GHZ) &&
|
||||
(channels[j].channel >= 12) &&
|
||||
(channels[j].channel <= 14) &&
|
||||
(flags & IEEE80211_CHAN_PASSIVE_SCAN) &&
|
||||
(flags & IEEE80211_CHAN_NO_IR) &&
|
||||
!force_passive) {
|
||||
/* pactive channels treated as DFS */
|
||||
channels[j].flags = SCAN_CHANNEL_FLAGS_DFS;
|
||||
@ -243,8 +241,8 @@ wlcore_scan_get_channels(struct wl1271 *wl,
|
||||
max_dwell_time_active,
|
||||
flags & IEEE80211_CHAN_RADAR ?
|
||||
", DFS" : "",
|
||||
flags & IEEE80211_CHAN_PASSIVE_SCAN ?
|
||||
", PASSIVE" : "");
|
||||
flags & IEEE80211_CHAN_NO_IR ?
|
||||
", NO-IR" : "");
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
@ -91,9 +91,8 @@ enum ieee80211_band {
|
||||
* Channel flags set by the regulatory control code.
|
||||
*
|
||||
* @IEEE80211_CHAN_DISABLED: This channel is disabled.
|
||||
* @IEEE80211_CHAN_PASSIVE_SCAN: Only passive scanning is permitted
|
||||
* on this channel.
|
||||
* @IEEE80211_CHAN_NO_IBSS: IBSS is not allowed on this channel.
|
||||
* @IEEE80211_CHAN_NO_IR: do not initiate radiation, this includes
|
||||
* sending probe requests or beaconing.
|
||||
* @IEEE80211_CHAN_RADAR: Radar detection is required on this channel.
|
||||
* @IEEE80211_CHAN_NO_HT40PLUS: extension channel above this channel
|
||||
* is not permitted.
|
||||
@ -113,8 +112,8 @@ enum ieee80211_band {
|
||||
*/
|
||||
enum ieee80211_channel_flags {
|
||||
IEEE80211_CHAN_DISABLED = 1<<0,
|
||||
IEEE80211_CHAN_PASSIVE_SCAN = 1<<1,
|
||||
IEEE80211_CHAN_NO_IBSS = 1<<2,
|
||||
IEEE80211_CHAN_NO_IR = 1<<1,
|
||||
/* hole at 1<<2 */
|
||||
IEEE80211_CHAN_RADAR = 1<<3,
|
||||
IEEE80211_CHAN_NO_HT40PLUS = 1<<4,
|
||||
IEEE80211_CHAN_NO_HT40MINUS = 1<<5,
|
||||
|
@ -2231,10 +2231,9 @@ enum nl80211_band_attr {
|
||||
* @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz
|
||||
* @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current
|
||||
* regulatory domain.
|
||||
* @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is
|
||||
* permitted on this channel in current regulatory domain.
|
||||
* @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted
|
||||
* on this channel in current regulatory domain.
|
||||
* @NL80211_FREQUENCY_ATTR_NO_IR: no mechanisms that initiate radiation
|
||||
* are permitted on this channel, this includes sending probe
|
||||
* requests, or modes of operation that require beaconing.
|
||||
* @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory
|
||||
* on this channel in current regulatory domain.
|
||||
* @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm
|
||||
@ -2261,8 +2260,8 @@ enum nl80211_frequency_attr {
|
||||
__NL80211_FREQUENCY_ATTR_INVALID,
|
||||
NL80211_FREQUENCY_ATTR_FREQ,
|
||||
NL80211_FREQUENCY_ATTR_DISABLED,
|
||||
NL80211_FREQUENCY_ATTR_PASSIVE_SCAN,
|
||||
NL80211_FREQUENCY_ATTR_NO_IBSS,
|
||||
NL80211_FREQUENCY_ATTR_NO_IR,
|
||||
__NL80211_FREQUENCY_ATTR_NO_IBSS,
|
||||
NL80211_FREQUENCY_ATTR_RADAR,
|
||||
NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
|
||||
NL80211_FREQUENCY_ATTR_DFS_STATE,
|
||||
@ -2278,6 +2277,9 @@ enum nl80211_frequency_attr {
|
||||
};
|
||||
|
||||
#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
|
||||
#define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR
|
||||
#define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR
|
||||
#define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR
|
||||
|
||||
/**
|
||||
* enum nl80211_bitrate_attr - bitrate attributes
|
||||
@ -2420,8 +2422,9 @@ enum nl80211_sched_scan_match_attr {
|
||||
* @NL80211_RRF_DFS: DFS support is required to be used
|
||||
* @NL80211_RRF_PTP_ONLY: this is only for Point To Point links
|
||||
* @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links
|
||||
* @NL80211_RRF_PASSIVE_SCAN: passive scan is required
|
||||
* @NL80211_RRF_NO_IBSS: no IBSS is allowed
|
||||
* @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed,
|
||||
* this includes probe requests or modes of operation that require
|
||||
* beaconing.
|
||||
*/
|
||||
enum nl80211_reg_rule_flags {
|
||||
NL80211_RRF_NO_OFDM = 1<<0,
|
||||
@ -2431,10 +2434,17 @@ enum nl80211_reg_rule_flags {
|
||||
NL80211_RRF_DFS = 1<<4,
|
||||
NL80211_RRF_PTP_ONLY = 1<<5,
|
||||
NL80211_RRF_PTMP_ONLY = 1<<6,
|
||||
NL80211_RRF_PASSIVE_SCAN = 1<<7,
|
||||
NL80211_RRF_NO_IBSS = 1<<8,
|
||||
NL80211_RRF_NO_IR = 1<<7,
|
||||
__NL80211_RRF_NO_IBSS = 1<<8,
|
||||
};
|
||||
|
||||
#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
|
||||
#define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR
|
||||
#define NL80211_RRF_NO_IR NL80211_RRF_NO_IR
|
||||
|
||||
/* For backport compatibility with older userspace */
|
||||
#define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS)
|
||||
|
||||
/**
|
||||
* enum nl80211_dfs_regions - regulatory DFS regions
|
||||
*
|
||||
|
@ -526,7 +526,7 @@ static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata,
|
||||
ieee80211_hw_config(local, 0);
|
||||
|
||||
if ((req->channels[0]->flags &
|
||||
IEEE80211_CHAN_PASSIVE_SCAN) ||
|
||||
IEEE80211_CHAN_NO_IR) ||
|
||||
!local->scan_req->n_ssids) {
|
||||
next_delay = IEEE80211_PASSIVE_CHANNEL_TIME;
|
||||
} else {
|
||||
@ -572,7 +572,7 @@ ieee80211_scan_get_channel_time(struct ieee80211_channel *chan)
|
||||
* TODO: channel switching also consumes quite some time,
|
||||
* add that delay as well to get a better estimation
|
||||
*/
|
||||
if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN)
|
||||
if (chan->flags & IEEE80211_CHAN_NO_IR)
|
||||
return IEEE80211_PASSIVE_CHANNEL_TIME;
|
||||
return IEEE80211_PROBE_DELAY + IEEE80211_CHANNEL_TIME;
|
||||
}
|
||||
@ -696,7 +696,7 @@ static void ieee80211_scan_state_set_channel(struct ieee80211_local *local,
|
||||
*
|
||||
* In any case, it is not necessary for a passive scan.
|
||||
*/
|
||||
if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN ||
|
||||
if (chan->flags & IEEE80211_CHAN_NO_IR ||
|
||||
!local->scan_req->n_ssids) {
|
||||
*next_delay = IEEE80211_PASSIVE_CHANNEL_TIME;
|
||||
local->next_scan_state = SCAN_DECISION;
|
||||
@ -881,7 +881,7 @@ int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata,
|
||||
struct ieee80211_channel *tmp_ch =
|
||||
&local->hw.wiphy->bands[band]->channels[i];
|
||||
|
||||
if (tmp_ch->flags & (IEEE80211_CHAN_NO_IBSS |
|
||||
if (tmp_ch->flags & (IEEE80211_CHAN_NO_IR |
|
||||
IEEE80211_CHAN_DISABLED))
|
||||
continue;
|
||||
|
||||
@ -895,7 +895,7 @@ int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata,
|
||||
|
||||
local->int_scan_req->n_channels = n_ch;
|
||||
} else {
|
||||
if (WARN_ON_ONCE(chan->flags & (IEEE80211_CHAN_NO_IBSS |
|
||||
if (WARN_ON_ONCE(chan->flags & (IEEE80211_CHAN_NO_IR |
|
||||
IEEE80211_CHAN_DISABLED)))
|
||||
goto unlock;
|
||||
|
||||
|
@ -1724,8 +1724,7 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
|
||||
* radar detection by itself. We can do that later by adding a
|
||||
* monitor flag interfaces used for AP support.
|
||||
*/
|
||||
if ((chan->flags & (IEEE80211_CHAN_NO_IBSS | IEEE80211_CHAN_RADAR |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN)))
|
||||
if ((chan->flags & (IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_RADAR)))
|
||||
goto fail_rcu;
|
||||
|
||||
ieee80211_xmit(sdata, skb, chan->band);
|
||||
|
@ -467,8 +467,7 @@ bool cfg80211_reg_can_beacon(struct wiphy *wiphy,
|
||||
|
||||
res = cfg80211_chandef_usable(wiphy, chandef,
|
||||
IEEE80211_CHAN_DISABLED |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN |
|
||||
IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_NO_IR |
|
||||
IEEE80211_CHAN_RADAR);
|
||||
|
||||
trace_cfg80211_return_bool(res);
|
||||
|
@ -107,10 +107,13 @@ active && /^[ \t]*\(/ {
|
||||
} else if (flagarray[arg] == "PTMP-ONLY") {
|
||||
flags = flags "\n\t\t\tNL80211_RRF_PTMP_ONLY | "
|
||||
} else if (flagarray[arg] == "PASSIVE-SCAN") {
|
||||
flags = flags "\n\t\t\tNL80211_RRF_PASSIVE_SCAN | "
|
||||
flags = flags "\n\t\t\tNL80211_RRF_NO_IR | "
|
||||
} else if (flagarray[arg] == "NO-IBSS") {
|
||||
flags = flags "\n\t\t\tNL80211_RRF_NO_IBSS | "
|
||||
flags = flags "\n\t\t\tNL80211_RRF_NO_IR | "
|
||||
} else if (flagarray[arg] == "NO-IR") {
|
||||
flags = flags "\n\t\t\tNL80211_RRF_NO_IR | "
|
||||
}
|
||||
|
||||
}
|
||||
flags = flags "0"
|
||||
printf "\t\tREG_RULE(%d, %d, %d, %d, %d, %s),\n", start, end, bw, gain, power, flags
|
||||
|
@ -274,7 +274,7 @@ int cfg80211_ibss_wext_join(struct cfg80211_registered_device *rdev,
|
||||
|
||||
for (i = 0; i < sband->n_channels; i++) {
|
||||
chan = &sband->channels[i];
|
||||
if (chan->flags & IEEE80211_CHAN_NO_IBSS)
|
||||
if (chan->flags & IEEE80211_CHAN_NO_IR)
|
||||
continue;
|
||||
if (chan->flags & IEEE80211_CHAN_DISABLED)
|
||||
continue;
|
||||
@ -345,7 +345,7 @@ int cfg80211_ibss_wext_siwfreq(struct net_device *dev,
|
||||
chan = ieee80211_get_channel(wdev->wiphy, freq);
|
||||
if (!chan)
|
||||
return -EINVAL;
|
||||
if (chan->flags & IEEE80211_CHAN_NO_IBSS ||
|
||||
if (chan->flags & IEEE80211_CHAN_NO_IR ||
|
||||
chan->flags & IEEE80211_CHAN_DISABLED)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -141,8 +141,7 @@ int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev,
|
||||
|
||||
for (i = 0; i < sband->n_channels; i++) {
|
||||
chan = &sband->channels[i];
|
||||
if (chan->flags & (IEEE80211_CHAN_NO_IBSS |
|
||||
IEEE80211_CHAN_PASSIVE_SCAN |
|
||||
if (chan->flags & (IEEE80211_CHAN_NO_IR |
|
||||
IEEE80211_CHAN_DISABLED |
|
||||
IEEE80211_CHAN_RADAR))
|
||||
continue;
|
||||
|
@ -545,12 +545,12 @@ static int nl80211_msg_put_channel(struct sk_buff *msg,
|
||||
if ((chan->flags & IEEE80211_CHAN_DISABLED) &&
|
||||
nla_put_flag(msg, NL80211_FREQUENCY_ATTR_DISABLED))
|
||||
goto nla_put_failure;
|
||||
if ((chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) &&
|
||||
nla_put_flag(msg, NL80211_FREQUENCY_ATTR_PASSIVE_SCAN))
|
||||
goto nla_put_failure;
|
||||
if ((chan->flags & IEEE80211_CHAN_NO_IBSS) &&
|
||||
nla_put_flag(msg, NL80211_FREQUENCY_ATTR_NO_IBSS))
|
||||
goto nla_put_failure;
|
||||
if (chan->flags & IEEE80211_CHAN_NO_IR) {
|
||||
if (nla_put_flag(msg, NL80211_FREQUENCY_ATTR_NO_IR))
|
||||
goto nla_put_failure;
|
||||
if (nla_put_flag(msg, __NL80211_FREQUENCY_ATTR_NO_IBSS))
|
||||
goto nla_put_failure;
|
||||
}
|
||||
if (chan->flags & IEEE80211_CHAN_RADAR) {
|
||||
if (nla_put_flag(msg, NL80211_FREQUENCY_ATTR_RADAR))
|
||||
goto nla_put_failure;
|
||||
|
@ -163,35 +163,29 @@ static const struct ieee80211_regdomain world_regdom = {
|
||||
REG_RULE(2412-10, 2462+10, 40, 6, 20, 0),
|
||||
/* IEEE 802.11b/g, channels 12..13. */
|
||||
REG_RULE(2467-10, 2472+10, 40, 6, 20,
|
||||
NL80211_RRF_PASSIVE_SCAN |
|
||||
NL80211_RRF_NO_IBSS),
|
||||
NL80211_RRF_NO_IR),
|
||||
/* IEEE 802.11 channel 14 - Only JP enables
|
||||
* this and for 802.11b only */
|
||||
REG_RULE(2484-10, 2484+10, 20, 6, 20,
|
||||
NL80211_RRF_PASSIVE_SCAN |
|
||||
NL80211_RRF_NO_IBSS |
|
||||
NL80211_RRF_NO_IR |
|
||||
NL80211_RRF_NO_OFDM),
|
||||
/* IEEE 802.11a, channel 36..48 */
|
||||
REG_RULE(5180-10, 5240+10, 160, 6, 20,
|
||||
NL80211_RRF_PASSIVE_SCAN |
|
||||
NL80211_RRF_NO_IBSS),
|
||||
NL80211_RRF_NO_IR),
|
||||
|
||||
/* IEEE 802.11a, channel 52..64 - DFS required */
|
||||
REG_RULE(5260-10, 5320+10, 160, 6, 20,
|
||||
NL80211_RRF_PASSIVE_SCAN |
|
||||
NL80211_RRF_NO_IBSS |
|
||||
NL80211_RRF_NO_IR |
|
||||
NL80211_RRF_DFS),
|
||||
|
||||
/* IEEE 802.11a, channel 100..144 - DFS required */
|
||||
REG_RULE(5500-10, 5720+10, 160, 6, 20,
|
||||
NL80211_RRF_PASSIVE_SCAN |
|
||||
NL80211_RRF_NO_IBSS |
|
||||
NL80211_RRF_NO_IR |
|
||||
NL80211_RRF_DFS),
|
||||
|
||||
/* IEEE 802.11a, channel 149..165 */
|
||||
REG_RULE(5745-10, 5825+10, 80, 6, 20,
|
||||
NL80211_RRF_PASSIVE_SCAN |
|
||||
NL80211_RRF_NO_IBSS),
|
||||
NL80211_RRF_NO_IR),
|
||||
|
||||
/* IEEE 802.11ad (60gHz), channels 1..3 */
|
||||
REG_RULE(56160+2160*1-1080, 56160+2160*3+1080, 2160, 0, 0, 0),
|
||||
@ -698,10 +692,8 @@ regdom_intersect(const struct ieee80211_regdomain *rd1,
|
||||
static u32 map_regdom_flags(u32 rd_flags)
|
||||
{
|
||||
u32 channel_flags = 0;
|
||||
if (rd_flags & NL80211_RRF_PASSIVE_SCAN)
|
||||
channel_flags |= IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
if (rd_flags & NL80211_RRF_NO_IBSS)
|
||||
channel_flags |= IEEE80211_CHAN_NO_IBSS;
|
||||
if (rd_flags & NL80211_RRF_NO_IR_ALL)
|
||||
channel_flags |= IEEE80211_CHAN_NO_IR;
|
||||
if (rd_flags & NL80211_RRF_DFS)
|
||||
channel_flags |= IEEE80211_CHAN_RADAR;
|
||||
if (rd_flags & NL80211_RRF_NO_OFDM)
|
||||
@ -1066,13 +1058,8 @@ static void handle_reg_beacon(struct wiphy *wiphy, unsigned int chan_idx,
|
||||
chan_before.center_freq = chan->center_freq;
|
||||
chan_before.flags = chan->flags;
|
||||
|
||||
if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) {
|
||||
chan->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
|
||||
channel_changed = true;
|
||||
}
|
||||
|
||||
if (chan->flags & IEEE80211_CHAN_NO_IBSS) {
|
||||
chan->flags &= ~IEEE80211_CHAN_NO_IBSS;
|
||||
if (chan->flags & IEEE80211_CHAN_NO_IR) {
|
||||
chan->flags &= ~IEEE80211_CHAN_NO_IR;
|
||||
channel_changed = true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user