From: David Bauer Date: Sat, 14 Dec 2019 22:38:02 +0000 (+0100) Subject: mac80211: fix txpower when using DFS channels X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6ec288a178de37c30831398f5a470fdc43b18130;p=oweals%2Fopenwrt.git 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 --- 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%%.*}"