aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/genregdb.awk
diff options
context:
space:
mode:
authorchaitanya.mgit@gmail.com <chaitanya.mgit@gmail.com>2014-05-26 18:01:44 +0530
committerJohannes Berg <johannes.berg@intel.com>2014-05-27 17:58:58 +0200
commita9fb54169b197f31aff24c8d6270dd1e56cde395 (patch)
tree1a41f5b50ba2f49af825d657141d61d83ad65683 /net/wireless/genregdb.awk
parentmac80211: fix IBSS join by initializing last_scan_completed (diff)
downloadlinux-dev-a9fb54169b197f31aff24c8d6270dd1e56cde395.tar.xz
linux-dev-a9fb54169b197f31aff24c8d6270dd1e56cde395.zip
regdb: Generalize the mW to dBm power conversion
Generalize the power conversion from mW to dBm using log. This should fix the below compilation error for country NO which adds a new power value 2000mW which is not handled earlier. CC [M] net/wireless/wext-sme.o CC [M] net/wireless/regdb.o net/wireless/regdb.c:1130:1: error: Unknown undeclared here (not in a function) net/wireless/regdb.c:1130:9: error: expected } before power make[2]: *** [net/wireless/regdb.o] Error 1 make[1]: *** [net/wireless] Error 2 make: *** [net] Error 2 Reported-By: John Walker <john@x109.net> Signed-off-by: Chaitanya T K <chaitanya.mgit@gmail.com> Acked-by: John W. Linville <linville@tuxdriver.com> [remove unneeded parentheses, fix rounding by using %.0f] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/genregdb.awk')
-rw-r--r--net/wireless/genregdb.awk14
1 files changed, 2 insertions, 12 deletions
diff --git a/net/wireless/genregdb.awk b/net/wireless/genregdb.awk
index b35da8dc85de..40c37fc5b67c 100644
--- a/net/wireless/genregdb.awk
+++ b/net/wireless/genregdb.awk
@@ -68,17 +68,7 @@ function parse_reg_rule()
sub(/,/, "", units)
dfs_cac = $9
if (units == "mW") {
- if (power == 100) {
- power = 20
- } else if (power == 200) {
- power = 23
- } else if (power == 500) {
- power = 27
- } else if (power == 1000) {
- power = 30
- } else {
- print "Unknown power value in database!"
- }
+ power = 10 * log(power)/log(10)
} else {
dfs_cac = $8
}
@@ -117,7 +107,7 @@ function parse_reg_rule()
}
flags = flags "0"
- printf "\t\tREG_RULE_EXT(%d, %d, %d, %d, %d, %d, %s),\n", start, end, bw, gain, power, dfs_cac, flags
+ printf "\t\tREG_RULE_EXT(%d, %d, %d, %d, %.0f, %d, %s),\n", start, end, bw, gain, power, dfs_cac, flags
rules++
}