diff options
Diffstat (limited to 'drivers/net/wireless/rtlwifi/regd.c')
| -rw-r--r-- | drivers/net/wireless/rtlwifi/regd.c | 61 | 
1 files changed, 26 insertions, 35 deletions
diff --git a/drivers/net/wireless/rtlwifi/regd.c b/drivers/net/wireless/rtlwifi/regd.c index d7d0d4948b0..a4eb9b27143 100644 --- a/drivers/net/wireless/rtlwifi/regd.c +++ b/drivers/net/wireless/rtlwifi/regd.c @@ -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) @@ -172,7 +168,8 @@ static void _rtl_reg_apply_beaconing_flags(struct wiphy *wiphy,  			    (ch->flags & IEEE80211_CHAN_RADAR))  				continue;  			if (initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE) { -				reg_rule = freq_reg_info(wiphy, ch->center_freq); +				reg_rule = freq_reg_info(wiphy, +							 MHZ_TO_KHZ(ch->center_freq));  				if (IS_ERR(reg_rule))  					continue; @@ -185,16 +182,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 +211,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;  	} @@ -235,19 +227,19 @@ 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); +	reg_rule = freq_reg_info(wiphy, MHZ_TO_KHZ(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); +	reg_rule = freq_reg_info(wiphy, MHZ_TO_KHZ(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 +276,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;  	}  } @@ -354,9 +345,9 @@ static int _rtl_regd_init_wiphy(struct rtl_regulatory *reg,  	wiphy->reg_notifier = reg_notifier; -	wiphy->flags |= WIPHY_FLAG_CUSTOM_REGULATORY; -	wiphy->flags &= ~WIPHY_FLAG_STRICT_REGULATORY; -	wiphy->flags &= ~WIPHY_FLAG_DISABLE_BEACON_HINTS; +	wiphy->regulatory_flags |= REGULATORY_CUSTOM_REG; +	wiphy->regulatory_flags &= ~REGULATORY_STRICT_REG; +	wiphy->regulatory_flags &= ~REGULATORY_DISABLE_BEACON_HINTS;  	regd = _rtl_regdomain_select(reg);  	wiphy_apply_custom_regulatory(wiphy, regd);  | 
