Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7478b988 authored by Alexei Avshalom Lazar's avatar Alexei Avshalom Lazar
Browse files

Revert "cfg80211: reg: remove support for built-in regdb"



This reverts commit c8c240e2.

Restore support for internal regulatory database. It is
needed since Android does not have CRDA.

Change-Id: Ie60e0f4dd450c6efbbc8643e01c946bc11b557ee
Signed-off-by: default avatarLior David <liord@codeaurora.org>
Signed-off-by: default avatarAlexei Avshalom Lazar <ailizaro@codeaurora.org>
parent 1e976197
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -200,5 +200,23 @@ Then in some part of your code after your wiphy has been registered:
Statically compiled regulatory database
---------------------------------------

When a database should be fixed into the kernel, it can be provided as a
firmware file at build time that is then linked into the kernel.
In most situations the userland solution using CRDA as described
above is the preferred solution.  However in some cases a set of
rules built into the kernel itself may be desirable.  To account
for this situation, a configuration option has been provided
(i.e. CONFIG_CFG80211_INTERNAL_REGDB).  With this option enabled,
the wireless database information contained in net/wireless/db.txt is
used to generate a data structure encoded in net/wireless/regdb.c.
That option also enables code in net/wireless/reg.c which queries
the data in regdb.c as an alternative to using CRDA.

The file net/wireless/db.txt should be kept up-to-date with the db.txt
file available in the git repository here:

    git://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git

Again, most users in most situations should be using the CRDA package
provided with their distribution, and in most other situations users
should be building and using CRDA on their own rather than using
this option.  If you are not absolutely sure that you should be using
CONFIG_CFG80211_INTERNAL_REGDB then _DO_NOT_USE_IT_.
+1 −0
Original line number Diff line number Diff line
regdb.c
shipped-certs.c
extra-certs.c
+23 −1
Original line number Diff line number Diff line
@@ -176,8 +176,30 @@ config CFG80211_DEBUGFS

	  If unsure, say N.

config CFG80211_INTERNAL_REGDB
	bool "use statically compiled regulatory rules database" if EXPERT
	default n
	depends on CFG80211
	help
	  This option generates an internal data structure representing
	  the wireless regulatory rules described in net/wireless/db.txt
	  and includes code to query that database. This is an alternative
	  to using CRDA for defining regulatory rules for the kernel.

	  Using this option requires some parsing of the db.txt at build time,
	  the parser will be upkept with the latest wireless-regdb updates but
	  older wireless-regdb formats will be ignored. The parser may later
	  be replaced to avoid issues with conflicts on versions of
	  wireless-regdb.

	  For details see:

	  http://wireless.kernel.org/en/developers/Regulatory

	  Most distributions have a CRDA package. So if unsure, say N.

config CFG80211_CRDA_SUPPORT
	bool "support CRDA" if EXPERT
	bool "support CRDA" if CFG80211_INTERNAL_REGDB
	default y
	help
	  You should enable this option unless you know for sure you have no
+7 −1
Original line number Diff line number Diff line
@@ -16,9 +16,16 @@ cfg80211-y += pmsr.o
cfg80211-$(CONFIG_OF) += of.o
cfg80211-$(CONFIG_CFG80211_DEBUGFS) += debugfs.o
cfg80211-$(CONFIG_CFG80211_WEXT) += wext-compat.o wext-sme.o
cfg80211-$(CONFIG_CFG80211_INTERNAL_REGDB) += regdb.o

CFLAGS_trace.o := -I$(src)

clean-files += shipped-certs.c extra-certs.c
$(obj)/regdb.c: $(src)/db.txt $(src)/genregdb.awk
	@$(AWK) -f $(srctree)/$(src)/genregdb.awk < $< > $@

clean-files := regdb.c

cfg80211-$(CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS) += shipped-certs.o
ifneq ($(CONFIG_CFG80211_EXTRA_REGDB_KEYDIR),)
cfg80211-y += extra-certs.o
@@ -57,4 +64,3 @@ $(obj)/extra-certs.c: $(CONFIG_CFG80211_EXTRA_REGDB_KEYDIR:"%"=%) \
	      echo 'unsigned int extra_regdb_certs_len = sizeof(extra_regdb_certs);'; \
	  ) > $@)
clean-files += shipped-certs.c extra-certs.c

net/wireless/db.txt

0 → 100644
+17 −0
Original line number Diff line number Diff line
#
# This file is a placeholder to prevent accidental build breakage if someone
# enables CONFIG_CFG80211_INTERNAL_REGDB.  Almost no one actually needs to
# enable that build option.
#
# You should be using CRDA instead.  It is even better if you use the CRDA
# package provided by your distribution, since they will probably keep it
# up-to-date on your behalf.
#
# If you _really_ intend to use CONFIG_CFG80211_INTERNAL_REGDB then you will
# need to replace this file with one containing appropriately formatted
# regulatory rules that cover the regulatory domains you will be using.  Your
# best option is to extract the db.txt file from the wireless-regdb git
# repository:
#
#   git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git
#
Loading