Просмотр исходного кода

wifi-scripts: fix setting tx power on some drivers

On some drivers, setting the tx power on the interface is not enough.
Set it for the phy as well.

Fixes: 04fb05914ea7 ("wifi-scripts: add multi-radio config support")
Signed-off-by: Felix Fietkau <[email protected]>
Felix Fietkau 1 год назад
Родитель
Сommit
b795e5cbcf

+ 1 - 0
package/network/config/wifi-scripts/files-ucode/lib/netifd/wireless/mac80211.sh

@@ -195,6 +195,7 @@ function setup_phy(phy, config, data) {
 	log(`Configuring '${phy}' txantenna: ${config.txantenna}, rxantenna: ${config.rxantenna} distance: ${config.distance}`);
 	log(`Configuring '${phy}' txantenna: ${config.txantenna}, rxantenna: ${config.rxantenna} distance: ${config.distance}`);
 	system(`iw phy ${phy} set antenna ${config.txantenna} ${config.rxantenna}`);
 	system(`iw phy ${phy} set antenna ${config.txantenna} ${config.rxantenna}`);
 	system(`iw phy ${phy} set distance ${config.distance}`);
 	system(`iw phy ${phy} set distance ${config.distance}`);
+	system(`iw phy ${phy} set txpower ${config.txpower}`);
 
 
 	if (config.frag)
 	if (config.frag)
 		system(`iw phy ${phy} set frag ${frag}`);
 		system(`iw phy ${phy} set frag ${frag}`);

+ 8 - 0
package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh

@@ -1210,6 +1210,14 @@ drv_mac80211_setup() {
 	wdev_tool "$phy$phy_suffix" set_config "$(json_dump)" $active_ifnames
 	wdev_tool "$phy$phy_suffix" set_config "$(json_dump)" $active_ifnames
 	json_set_namespace "$prev"
 	json_set_namespace "$prev"
 
 
+	[ -z "$phy_suffix" ] && {
+		if [ -n "$txpower" ]; then
+			iw phy "$phy" set txpower fixed "${txpower%%.*}00"
+		else
+			iw phy "$phy" set txpower auto
+		fi
+	}
+
 	for_each_interface "ap sta adhoc mesh monitor" mac80211_set_vif_txpower
 	for_each_interface "ap sta adhoc mesh monitor" mac80211_set_vif_txpower
 	wireless_set_up
 	wireless_set_up
 }
 }