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: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Mauro Carvalho Chehab
2020-04-30 18:04:20 +02:00
committed by David S. Miller
parent bad5b6e223
commit 98661e0c57
3 changed files with 19 additions and 13 deletions

View File

@@ -98,6 +98,7 @@ Contents:
radiotap-headers radiotap-headers
ray_cs ray_cs
rds rds
regulatory
.. only:: subproject and html .. only:: subproject and html

View File

@@ -1,5 +1,8 @@
.. 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:
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:
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[] = {
{ 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)
} }
} }
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.
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 = {
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;

View File

@@ -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