X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/768662b7012f5d22bc4f288ebc5ea630f966d054..99a41c0ace85fce0efca7bedd39d0c88429fdc12:/package/mac80211/files/lib/wifi/mac80211.sh diff --git a/package/mac80211/files/lib/wifi/mac80211.sh b/package/mac80211/files/lib/wifi/mac80211.sh index 386bda8e5..dbf13b810 100644 --- a/package/mac80211/files/lib/wifi/mac80211.sh +++ b/package/mac80211/files/lib/wifi/mac80211.sh @@ -36,6 +36,11 @@ mac80211_hostapd_setup_base() { } } + local country_ie=0 + [ -n "$country" ] && country_ie=1 + config_get_bool country_ie "$device" country_ie "$country_ie" + [ "$country_ie" -gt 0 ] && append base_cfg "ieee80211d=1" "$N" + config_get macfilter "$vif" macfilter case "$macfilter" in allow) @@ -269,6 +274,9 @@ enable_mac80211() { fixed="" local hostapd_ctrl="" + config_get ath9k_chanbw "$device" ath9k_chanbw + [ -n "$ath9k_chanbw" -a -d /sys/kernel/debug/ieee80211/$phy/ath9k ] && echo "$ath9k_chanbw" > /sys/kernel/debug/ieee80211/$phy/ath9k/chanbw + [ -n "$country" ] && iw reg set "$country" [ "$channel" = "auto" -o "$channel" = "0" ] || { fixed=1 @@ -452,7 +460,13 @@ enable_mac80211() { [ "$mcsub" -gt 0 ] && mcval="$mcval.$mcsub" } - iw dev "$ifname" ibss join "$ssid" $freq \ + config_get htmode "$device" htmode + case "$htmode" in + HT20|HT40+|HT40-) ;; + *) htmode= ;; + esac + + iw dev "$ifname" ibss join "$ssid" $freq $htmode \ ${fixed:+fixed-freq} $bssid \ ${beacon_int:+beacon-interval $beacon_int} \ ${brstr:+basic-rates $brstr} \ @@ -477,7 +491,7 @@ enable_mac80211() { } -check_device() { +check_mac80211_device() { config_get phy "$1" phy [ -z "$phy" ] && { find_mac80211_phy "$1" >/dev/null || return 0 @@ -496,7 +510,7 @@ detect_mac80211() { done for dev in $(ls /sys/class/ieee80211); do found=0 - config_foreach check_device wifi-device + config_foreach check_mac80211_device wifi-device [ "$found" -gt 0 ] && continue mode_11n=""