mac80211: fix center freq selection for 6 GHz

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit 8d79915327)
This commit is contained in:
Felix Fietkau 2021-05-25 10:57:01 +02:00
parent b535ec25eb
commit 42d542e04f
1 changed files with 20 additions and 6 deletions

View File

@ -194,12 +194,14 @@ mac80211_hostapd_setup_base() {
enable_ac=0
vht_oper_chwidth=0
vht_center_seg0=
chan_ofs=0
[ "$band" = "6g" ] && chan_ofs=1
idx="$channel"
case "$htmode" in
VHT20|HE20) enable_ac=1;;
VHT40|HE40)
case "$(( ($channel / 4) % 2 ))" in
case "$(( (($channel / 4) + $chan_ofs) % 2 ))" in
1) idx=$(($channel + 2));;
0) idx=$(($channel - 2));;
esac
@ -207,7 +209,7 @@ mac80211_hostapd_setup_base() {
vht_center_seg0=$idx
;;
VHT80|HE80)
case "$(( ($channel / 4) % 4 ))" in
case "$(( (($channel / 4) + $chan_ofs) % 4 ))" in
1) idx=$(($channel + 6));;
2) idx=$(($channel + 2));;
3) idx=$(($channel - 2));;
@ -218,10 +220,22 @@ mac80211_hostapd_setup_base() {
vht_center_seg0=$idx
;;
VHT160|HE160)
case "$channel" in
36|40|44|48|52|56|60|64) idx=50;;
100|104|108|112|116|120|124|128) idx=114;;
esac
if [ "$band" = "6g" ]; then
case "$channel" in
1|5|9|13|17|21|25|29) idx=15;;
33|37|41|45|49|53|57|61) idx=47;;
65|69|73|77|81|85|89|93) idx=79;;
97|101|105|109|113|117|121|125) idx=111;;
129|133|137|141|145|149|153|157) idx=143;;
161|165|169|173|177|181|185|189) idx=175;;
193|197|201|205|209|213|217|221) idx=207;;
esac
else
case "$channel" in
36|40|44|48|52|56|60|64) idx=50;;
100|104|108|112|116|120|124|128) idx=114;;
esac
fi
enable_ac=1
vht_oper_chwidth=2
vht_center_seg0=$idx