mac80211: fix disabling HT in IBSS mode (#21340)
[openwrt/openwrt.git] / package / kernel / mac80211 / files / lib / netifd / wireless / mac80211.sh
index 8d31a80a2c22d801d70e4984abb35a122dd7f806..71b96aa425e942b79831358ee3313f99a3063eb3 100644 (file)
@@ -23,6 +23,7 @@ drv_mac80211_init_device_config() {
        config_add_int rxantenna txantenna antenna_gain txpower distance
        config_add_boolean noscan ht_coex
        config_add_array ht_capab
+       config_add_array channels
        config_add_boolean \
                rxldpc \
                short_gi_80 \
@@ -89,6 +90,7 @@ mac80211_hostapd_setup_base() {
        json_select config
 
        [ "$auto_channel" -gt 0 ] && channel=acs_survey
+       [ "$auto_channel" -gt 0 ] && json_get_values channel_list channels
 
        json_get_vars noscan ht_coex
        json_get_values ht_capab_list ht_capab
@@ -301,6 +303,7 @@ mac80211_hostapd_setup_base() {
        hostapd_prepare_device_config "$hostapd_conf_file" nl80211
        cat >> "$hostapd_conf_file" <<EOF
 ${channel:+channel=$channel}
+${channel_list:+chanlist=$channel_list}
 ${noscan:+noscan=$noscan}
 $base_cfg
 
@@ -496,7 +499,7 @@ mac80211_setup_supplicant() {
 mac80211_setup_adhoc_htmode() {
        case "$htmode" in
                VHT20|HT20) ibss_htmode=HT20;;
-               HT40*|VHT40|VHT80|VHT160)
+               HT40*|VHT40|VHT160)
                        case "$hwmode" in
                                a)
                                        case "$(( ($channel / 4) % 2 ))" in
@@ -520,6 +523,12 @@ mac80211_setup_adhoc_htmode() {
                        esac
                        [ "$auto_channel" -gt 0 ] && ibss_htmode="HT40+"
                ;;
+               VHT80)
+                       ibss_htmode="80Mhz"
+               ;;
+               NONE|NOHT)
+                       ibss_htmode="NOHT"
+               ;;
                *) ibss_htmode="" ;;
        esac