Commit 98661e0c authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by David S. Miller

docs: networking: convert regulatory.txt to ReST

- add SPDX header;
- adjust title markup;
- mark code blocks and literals as such;
- adjust identation, whitespaces and blank lines where needed;
- add to networking/index.rst.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bad5b6e2
...@@ -98,6 +98,7 @@ Contents: ...@@ -98,6 +98,7 @@ Contents:
radiotap-headers radiotap-headers
ray_cs ray_cs
rds rds
regulatory
.. only:: subproject and html .. only:: subproject and html
......
.. SPDX-License-Identifier: GPL-2.0
=======================================
Linux wireless regulatory documentation Linux wireless regulatory documentation
--------------------------------------- =======================================
This document gives a brief review over how the Linux wireless This document gives a brief review over how the Linux wireless
regulatory infrastructure works. regulatory infrastructure works.
...@@ -57,7 +60,7 @@ Users can use iw: ...@@ -57,7 +60,7 @@ Users can use iw:
http://wireless.kernel.org/en/users/Documentation/iw http://wireless.kernel.org/en/users/Documentation/iw
An example: An example::
# set regulatory domain to "Costa Rica" # set regulatory domain to "Costa Rica"
iw reg set CR iw reg set CR
...@@ -104,9 +107,9 @@ Example code - drivers hinting an alpha2: ...@@ -104,9 +107,9 @@ Example code - drivers hinting an alpha2:
This example comes from the zd1211rw device driver. You can start This example comes from the zd1211rw device driver. You can start
by having a mapping of your device's EEPROM country/regulatory 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_FCC, "US" },
{ ZD_REGDOMAIN_IC, "CA" }, { ZD_REGDOMAIN_IC, "CA" },
{ ZD_REGDOMAIN_ETSI, "DE" }, /* Generic ETSI, use most restrictive */ { ZD_REGDOMAIN_ETSI, "DE" }, /* Generic ETSI, use most restrictive */
...@@ -116,10 +119,10 @@ static struct zd_reg_alpha2_map reg_alpha2_map[] = { ...@@ -116,10 +119,10 @@ static struct zd_reg_alpha2_map reg_alpha2_map[] = {
{ ZD_REGDOMAIN_FRANCE, "FR" }, { ZD_REGDOMAIN_FRANCE, "FR" },
Then you can define a routine to map your read EEPROM value to an alpha2, 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; unsigned int i;
struct zd_reg_alpha2_map *reg_map; struct zd_reg_alpha2_map *reg_map;
for (i = 0; i < ARRAY_SIZE(reg_alpha2_map); i++) { for (i = 0; i < ARRAY_SIZE(reg_alpha2_map); i++) {
...@@ -131,12 +134,14 @@ static int zd_reg2alpha2(u8 regdomain, char *alpha2) ...@@ -131,12 +134,14 @@ static int zd_reg2alpha2(u8 regdomain, char *alpha2)
} }
} }
return 1; return 1;
} }
Lastly, you can then hint to the core of your discovered alpha2, if a match 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 was found. You need to do this after you have registered your wiphy. You
are expected to do this during initialization. are expected to do this during initialization.
::
r = zd_reg2alpha2(mac->regdomain, alpha2); r = zd_reg2alpha2(mac->regdomain, alpha2);
if (!r) if (!r)
regulatory_hint(hw->wiphy, alpha2); regulatory_hint(hw->wiphy, alpha2);
...@@ -156,9 +161,9 @@ call regulatory_hint() with the regulatory domain structure in it. ...@@ -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. Bellow is a simple example, with a regulatory domain cached using the stack.
Your implementation may vary (read EEPROM cache instead, for example). 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, .n_reg_rules = 3,
.alpha2 = "JP", .alpha2 = "JP",
//.alpha2 = "99", /* If I have no alpha2 to map it to */ //.alpha2 = "99", /* If I have no alpha2 to map it to */
...@@ -173,9 +178,9 @@ struct ieee80211_regdomain mydriver_jp_regdom = { ...@@ -173,9 +178,9 @@ struct ieee80211_regdomain mydriver_jp_regdom = {
NL80211_RRF_NO_IR| NL80211_RRF_NO_IR|
NL80211_RRF_DFS), 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; struct ieee80211_regdomain *rd;
int size_of_regd; int size_of_regd;
......
...@@ -193,7 +193,7 @@ W: https://wireless.wiki.kernel.org/ ...@@ -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.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.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/driver-api/80211/cfg80211.rst
F: Documentation/networking/regulatory.txt F: Documentation/networking/regulatory.rst
F: include/linux/ieee80211.h F: include/linux/ieee80211.h
F: include/net/cfg80211.h F: include/net/cfg80211.h
F: include/net/ieee80211_radiotap.h F: include/net/ieee80211_radiotap.h
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment