diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2015-09-27 10:25:27 +0000 |
---|---|---|
committer | Rafał Miłecki <zajec5@gmail.com> | 2015-09-27 10:25:27 +0000 |
commit | 4386139bd36c304c48327b5bdc34eab08a43d74d (patch) | |
tree | 775ebd4631f5dd2e000673adb4f04b037bc635bc | |
parent | 4c73e320d5ece2af90d61248ea975562d2b5a5fd (diff) | |
download | master-187ad058-4386139bd36c304c48327b5bdc34eab08a43d74d.tar.gz master-187ad058-4386139bd36c304c48327b5bdc34eab08a43d74d.tar.bz2 master-187ad058-4386139bd36c304c48327b5bdc34eab08a43d74d.zip |
mac80211: backport patch setting TX power in interface info
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47059 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | package/kernel/mac80211/patches/337-nl80211-put-current-TX-power-in-interface-info.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/337-nl80211-put-current-TX-power-in-interface-info.patch b/package/kernel/mac80211/patches/337-nl80211-put-current-TX-power-in-interface-info.patch new file mode 100644 index 0000000000..df2cc4b95d --- /dev/null +++ b/package/kernel/mac80211/patches/337-nl80211-put-current-TX-power-in-interface-info.patch @@ -0,0 +1,37 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com> +Date: Mon, 31 Aug 2015 22:59:38 +0200 +Subject: [PATCH] nl80211: put current TX power in interface info +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Many drivers implement reading current TX power (using either cfg80211 +or ieee80211 op) but userspace can't get it using nl80211. Right now the +only way to access it is to call some wext ioctl. +Let's put TX power in interface info reply (callback is wdev specific) +just like we do with current channel. +To be consistent (e.g. NL80211_CMD_SET_WIPHY) let's use mBm as na unit. + +Signed-off-by: Rafał Miłecki <zajec5@gmail.com> +Signed-off-by: Johannes Berg <johannes.berg@intel.com> +--- + +--- a/net/wireless/nl80211.c ++++ b/net/wireless/nl80211.c +@@ -2406,6 +2406,16 @@ static int nl80211_send_iface(struct sk_ + } + } + ++ if (rdev->ops->get_tx_power) { ++ int dbm, ret; ++ ++ ret = rdev_get_tx_power(rdev, wdev, &dbm); ++ if (ret == 0 && ++ nla_put_u32(msg, NL80211_ATTR_WIPHY_TX_POWER_LEVEL, ++ DBM_TO_MBM(dbm))) ++ goto nla_put_failure; ++ } ++ + if (wdev->ssid_len) { + if (nla_put(msg, NL80211_ATTR_SSID, wdev->ssid_len, wdev->ssid)) + goto nla_put_failure; |