From 6ec288a178de37c30831398f5a470fdc43b18130 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sat, 14 Dec 2019 23:38:02 +0100 Subject: [PATCH] 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 Tested-by: Martin Weinelt --- .../mac80211/files/lib/netifd/wireless/mac80211.sh | 9 +++++++-- 1 file 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%%.*}"