提交 2a901468 编写于 作者: L Luis R. Rodriguez 提交者: Johannes Berg

cfg80211: add an option to disable processing country IEs

Certain vendors may want to disable the processing of
country IEs so that they can continue using the regulatory
domain the driver or user has set.  Currently there is no
way to stop the core from processing country IEs, so add
support to the core to ignore country IE hints.

Cc: Mihir Shete <smihir@qti.qualcomm.com>
Cc: Henri Bahini <hbahini@qca.qualcomm.com>
Cc: Tushnim Bhattacharyya <tushnimb@qca.qualcomm.com>
Signed-off-by: NLuis R. Rodriguez <mcgrof@do-not-panic.com>
Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
上级 a09a85a0
...@@ -123,12 +123,17 @@ struct regulatory_request { ...@@ -123,12 +123,17 @@ struct regulatory_request {
* derived from the regulatory domain. The regulatory domain used will be * derived from the regulatory domain. The regulatory domain used will be
* based on the ISO3166-alpha2 from country IE provided through * based on the ISO3166-alpha2 from country IE provided through
* regulatory_hint_country_ie() * regulatory_hint_country_ie()
* @REGULATORY_COUNTRY_IE_IGNORE: for devices that have a preference to ignore
* all country IE information processed by the regulatory core. This will
* override %REGULATORY_COUNTRY_IE_FOLLOW_POWER as all country IEs will
* be ignored.
*/ */
enum ieee80211_regulatory_flags { enum ieee80211_regulatory_flags {
REGULATORY_CUSTOM_REG = BIT(0), REGULATORY_CUSTOM_REG = BIT(0),
REGULATORY_STRICT_REG = BIT(1), REGULATORY_STRICT_REG = BIT(1),
REGULATORY_DISABLE_BEACON_HINTS = BIT(2), REGULATORY_DISABLE_BEACON_HINTS = BIT(2),
REGULATORY_COUNTRY_IE_FOLLOW_POWER = BIT(3), REGULATORY_COUNTRY_IE_FOLLOW_POWER = BIT(3),
REGULATORY_COUNTRY_IE_IGNORE = BIT(4),
}; };
struct ieee80211_freq_range { struct ieee80211_freq_range {
......
...@@ -1543,6 +1543,9 @@ __reg_process_hint_country_ie(struct wiphy *wiphy, ...@@ -1543,6 +1543,9 @@ __reg_process_hint_country_ie(struct wiphy *wiphy,
if (regdom_changes(country_ie_request->alpha2)) if (regdom_changes(country_ie_request->alpha2))
return REG_REQ_IGNORE; return REG_REQ_IGNORE;
return REG_REQ_ALREADY_SET; return REG_REQ_ALREADY_SET;
} else {
if (wiphy->regulatory_flags & REGULATORY_COUNTRY_IE_IGNORE)
return REG_REQ_IGNORE;
} }
if (unlikely(!is_an_alpha2(country_ie_request->alpha2))) if (unlikely(!is_an_alpha2(country_ie_request->alpha2)))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册