diff options
author | David Bauer <mail@david-bauer.net> | 2019-12-14 23:38:02 +0100 |
---|---|---|
committer | David Bauer <mail@david-bauer.net> | 2019-12-16 00:50:10 +0100 |
commit | 6ec288a178de37c30831398f5a470fdc43b18130 (patch) | |
tree | 9513fe55745790448def9acc6d7de0bfe3d5add8 /package/kernel/mac80211 | |
parent | a15f658ed0840dc7d8e47d4c2c91aa35bdc0a96c (diff) | |
download | upstream-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/mac80211')
-rw-r--r-- | package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh | 9 |
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%%.*}" |