diff options
author | Felix Fietkau <nbd@nbd.name> | 2023-08-08 20:12:11 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2023-08-08 20:12:13 +0200 |
commit | afa229038c05ba0ca20595d7f73bea94db21d3a6 (patch) | |
tree | de09eb61a11bc0569e6d422a074e8cc11d14e115 | |
parent | 9b56c27a8a08a5c40d38064b9046f42177c94768 (diff) |
mac80211: fix applying tx/rx antenna changes afer hostapd reload change
Tear down all interfaces if the antenna settings change, so that the
capabilities can be recalculated properly
Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r-- | package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh | 11 |
1 files changed, 9 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 a2a7bdba25..d87a2c6312 100644 --- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh +++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh @@ -1089,14 +1089,18 @@ drv_mac80211_setup() { json_get_values scan_list scan_list json_select .. + json_select data && { + json_get_var prev_rxantenna rxantenna + json_get_var prev_txantenna txantenna + json_select .. + } + find_phy || { echo "Could not find PHY for device '$1'" wireless_set_retry 0 return 1 } - wireless_set_data phy="$phy" - local wdev local cwdev local found @@ -1130,6 +1134,9 @@ drv_mac80211_setup() { [ "$txantenna" = "all" ] && txantenna=0xffffffff [ "$rxantenna" = "all" ] && rxantenna=0xffffffff + [ "$rxantenna" = "$prev_rxantenna" -a "$txantenna" = "$prev_txantenna" ] || mac80211_reset_config "$phy" + wireless_set_data phy="$phy" txantenna="$txantenna" rxantenna="$rxantenna" + iw phy "$phy" set antenna $txantenna $rxantenna >/dev/null 2>&1 iw phy "$phy" set antenna_gain $antenna_gain >/dev/null 2>&1 iw phy "$phy" set distance "$distance" >/dev/null 2>&1 |