aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel
diff options
context:
space:
mode:
authorDavid Bauer <mail@david-bauer.net>2019-12-14 23:38:02 +0100
committerDavid Bauer <mail@david-bauer.net>2019-12-16 00:50:10 +0100
commit6ec288a178de37c30831398f5a470fdc43b18130 (patch)
tree9513fe55745790448def9acc6d7de0bfe3d5add8 /package/kernel
parenta15f658ed0840dc7d8e47d4c2c91aa35bdc0a96c (diff)
downloadupstream-6ec288a178de37c30831398f5a470fdc43b18130.tar.gz
upstream-6ec288a178de37c30831398f5a470fdc43b18130.tar.bz2
upstream-6ec288a178de37c30831398f5a470fdc43b18130.zip
mac80211: fix txpower when using DFS channels
With this patch, txpower for the PHY is applied when configuring the PHY instead of the VIF. Otherwise, the configured txpower is not applied for the first initialized VIF when using DFS channels, as it is currently applied too early when the CAC hasn't finished. Reported-by: Martin Weinelt <martin@darmstadt.freifunk.net Signed-off-by: David Bauer <mail@david-bauer.net> Tested-by: Martin Weinelt <martin@darmstadt.freifunk.net>
Diffstat (limited to 'package/kernel')
-rw-r--r--package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh9
1 files changed, 7 insertions, 2 deletions
diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
index 18033e9d56..f1882ec509 100644
--- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
@@ -743,7 +743,7 @@ mac80211_setup_vif() {
json_select config
json_get_vars mode
- json_get_var vif_txpower txpower
+ json_get_var vif_txpower
json_get_var vif_enable enable 1
[ "$vif_enable" = 1 ] || action=down
@@ -753,7 +753,6 @@ mac80211_setup_vif() {
json_select ..
return
}
- set_default vif_txpower "$txpower"
[ -z "$vif_txpower" ] || iw dev "$ifname" set txpower fixed "${vif_txpower%%.*}00"
case "$mode" in
@@ -908,6 +907,12 @@ drv_mac80211_setup() {
iw phy "$phy" set antenna_gain $antenna_gain
iw phy "$phy" set distance "$distance"
+ if [ -n "$txpower" ]; then
+ iw phy "$phy" set txpower fixed "${txpower%%.*}00"
+ else
+ iw phy "$phy" set txpower auto
+ fi
+
[ -n "$frag" ] && iw phy "$phy" set frag "${frag%%.*}"
[ -n "$rts" ] && iw phy "$phy" set rts "${rts%%.*}"