--- a/drivers/net/wireless/ath/regd.c +++ b/drivers/net/wireless/ath/regd.c @@ -115,6 +115,16 @@ static const struct ieee80211_regdomain ) }; +static u16 ath_regd_get_eepromRD(struct ath_regulatory *reg) +{ + return reg->current_rd & ~WORLDWIDE_ROAMING_FLAG; +} + +static bool is_default_regd(struct ath_regulatory *reg) +{ + return ath_regd_get_eepromRD(reg) == CTRY_DEFAULT; +} + static bool dynamic_country_user_possible(struct ath_regulatory *reg) { if (IS_ENABLED(CPTCFG_ATH_USER_REGD)) @@ -123,6 +133,9 @@ static bool dynamic_country_user_possibl if (IS_ENABLED(CPTCFG_ATH_REG_DYNAMIC_USER_CERT_TESTING)) return true; + if (is_default_regd(reg)) + return true; + switch (reg->country_code) { case CTRY_UNITED_STATES: case CTRY_JAPAN1: @@ -208,11 +221,6 @@ static inline bool is_wwr_sku(u16 regd) (regd == WORLD)); } -static u16 ath_regd_get_eepromRD(struct ath_regulatory *reg) -{ - return reg->current_rd & ~WORLDWIDE_ROAMING_FLAG; -} - bool ath_is_world_regd(struct ath_regulatory *reg) { return is_wwr_sku(ath_regd_get_eepromRD(reg)); @@ -658,6 +666,9 @@ ath_regd_init_wiphy(struct ath_regulator if (IS_ENABLED(CPTCFG_ATH_USER_REGD)) return 0; + if (is_default_regd(reg)) + return 0; + wiphy->regulatory_flags |= REGULATORY_STRICT_REG | REGULATORY_CUSTOM_REG;