mirror of
https://github.com/torvalds/linux.git
synced 2024-11-08 21:21:47 +00:00
ath: move common dynamic regulatory domain setting to a helper
This moves the dynamic regulatory domain selection code into a helper. Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
03f27120fb
commit
8a3b6c800a
@ -356,14 +356,48 @@ static u16 ath_regd_find_country_by_name(char *alpha2)
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int __ath_reg_dyn_country(struct wiphy *wiphy,
|
||||
struct ath_regulatory *reg,
|
||||
struct regulatory_request *request)
|
||||
{
|
||||
u16 country_code;
|
||||
|
||||
if (!ath_is_world_regd(reg))
|
||||
return -EINVAL;
|
||||
|
||||
country_code = ath_regd_find_country_by_name(request->alpha2);
|
||||
if (country_code == (u16) -1)
|
||||
return -EINVAL;
|
||||
|
||||
reg->current_rd = COUNTRY_ERD_FLAG;
|
||||
reg->current_rd |= country_code;
|
||||
|
||||
__ath_regd_init(reg);
|
||||
|
||||
ath_reg_apply_world_flags(wiphy, request->initiator, reg);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ath_reg_dyn_country(struct wiphy *wiphy,
|
||||
struct ath_regulatory *reg,
|
||||
struct regulatory_request *request)
|
||||
{
|
||||
if (__ath_reg_dyn_country(wiphy, reg, request))
|
||||
return;
|
||||
|
||||
printk(KERN_DEBUG "ath: regdomain 0x%0x "
|
||||
"dynamically updated by %s\n",
|
||||
reg->current_rd,
|
||||
reg_initiator_name(request->initiator));
|
||||
}
|
||||
|
||||
void ath_reg_notifier_apply(struct wiphy *wiphy,
|
||||
struct regulatory_request *request,
|
||||
struct ath_regulatory *reg)
|
||||
{
|
||||
struct ath_common *common = container_of(reg, struct ath_common,
|
||||
regulatory);
|
||||
u16 country_code;
|
||||
|
||||
/* We always apply this */
|
||||
ath_reg_apply_radar_flags(wiphy);
|
||||
|
||||
@ -391,22 +425,7 @@ void ath_reg_notifier_apply(struct wiphy *wiphy,
|
||||
case NL80211_REGDOM_SET_BY_USER:
|
||||
break;
|
||||
case NL80211_REGDOM_SET_BY_COUNTRY_IE:
|
||||
if (!ath_is_world_regd(reg))
|
||||
break;
|
||||
|
||||
country_code = ath_regd_find_country_by_name(request->alpha2);
|
||||
if (country_code == (u16) -1)
|
||||
break;
|
||||
|
||||
reg->current_rd = COUNTRY_ERD_FLAG;
|
||||
reg->current_rd |= country_code;
|
||||
|
||||
printk(KERN_DEBUG "ath: regdomain 0x%0x updated by CountryIE\n",
|
||||
reg->current_rd);
|
||||
__ath_regd_init(reg);
|
||||
|
||||
ath_reg_apply_world_flags(wiphy, request->initiator, reg);
|
||||
|
||||
ath_reg_dyn_country(wiphy, reg, request);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user