diff options
-rw-r--r-- | Documentation/networking/index.rst | 1 | ||||
-rw-r--r-- | Documentation/networking/regulatory.rst (renamed from Documentation/networking/regulatory.txt) | 29 | ||||
-rw-r--r-- | MAINTAINERS | 2 |
3 files changed, 19 insertions, 13 deletions
diff --git a/Documentation/networking/index.rst b/Documentation/networking/index.rst index e63a2cb2e4cb..bc3b04a2edde 100644 --- a/Documentation/networking/index.rst +++ b/Documentation/networking/index.rst @@ -98,6 +98,7 @@ Contents: radiotap-headers ray_cs rds + regulatory .. only:: subproject and html diff --git a/Documentation/networking/regulatory.txt b/Documentation/networking/regulatory.rst index 381e5b23d61d..8701b91e81ee 100644 --- a/Documentation/networking/regulatory.txt +++ b/Documentation/networking/regulatory.rst @@ -1,5 +1,8 @@ +.. SPDX-License-Identifier: GPL-2.0 + +======================================= Linux wireless regulatory documentation ---------------------------------------- +======================================= This document gives a brief review over how the Linux wireless regulatory infrastructure works. @@ -57,7 +60,7 @@ Users can use iw: http://wireless.kernel.org/en/users/Documentation/iw -An example: +An example:: # set regulatory domain to "Costa Rica" iw reg set CR @@ -104,9 +107,9 @@ Example code - drivers hinting an alpha2: This example comes from the zd1211rw device driver. You can start by having a mapping of your device's EEPROM country/regulatory -domain value to a specific alpha2 as follows: +domain value to a specific alpha2 as follows:: -static struct zd_reg_alpha2_map reg_alpha2_map[] = { + static struct zd_reg_alpha2_map reg_alpha2_map[] = { { ZD_REGDOMAIN_FCC, "US" }, { ZD_REGDOMAIN_IC, "CA" }, { ZD_REGDOMAIN_ETSI, "DE" }, /* Generic ETSI, use most restrictive */ @@ -116,10 +119,10 @@ static struct zd_reg_alpha2_map reg_alpha2_map[] = { { ZD_REGDOMAIN_FRANCE, "FR" }, Then you can define a routine to map your read EEPROM value to an alpha2, -as follows: +as follows:: -static int zd_reg2alpha2(u8 regdomain, char *alpha2) -{ + static int zd_reg2alpha2(u8 regdomain, char *alpha2) + { unsigned int i; struct zd_reg_alpha2_map *reg_map; for (i = 0; i < ARRAY_SIZE(reg_alpha2_map); i++) { @@ -131,12 +134,14 @@ static int zd_reg2alpha2(u8 regdomain, char *alpha2) } } return 1; -} + } Lastly, you can then hint to the core of your discovered alpha2, if a match was found. You need to do this after you have registered your wiphy. You are expected to do this during initialization. +:: + r = zd_reg2alpha2(mac->regdomain, alpha2); if (!r) regulatory_hint(hw->wiphy, alpha2); @@ -156,9 +161,9 @@ call regulatory_hint() with the regulatory domain structure in it. Bellow is a simple example, with a regulatory domain cached using the stack. Your implementation may vary (read EEPROM cache instead, for example). -Example cache of some regulatory domain +Example cache of some regulatory domain:: -struct ieee80211_regdomain mydriver_jp_regdom = { + struct ieee80211_regdomain mydriver_jp_regdom = { .n_reg_rules = 3, .alpha2 = "JP", //.alpha2 = "99", /* If I have no alpha2 to map it to */ @@ -173,9 +178,9 @@ struct ieee80211_regdomain mydriver_jp_regdom = { NL80211_RRF_NO_IR| NL80211_RRF_DFS), } -}; + }; -Then in some part of your code after your wiphy has been registered: +Then in some part of your code after your wiphy has been registered:: struct ieee80211_regdomain *rd; int size_of_regd; diff --git a/MAINTAINERS b/MAINTAINERS index ea5dd3d1df9d..b28823ab48c5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -193,7 +193,7 @@ W: https://wireless.wiki.kernel.org/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git F: Documentation/driver-api/80211/cfg80211.rst -F: Documentation/networking/regulatory.txt +F: Documentation/networking/regulatory.rst F: include/linux/ieee80211.h F: include/net/cfg80211.h F: include/net/ieee80211_radiotap.h |