aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2021-11-22 13:04:03 +0100
committerFelix Fietkau <nbd@nbd.name>2021-11-22 13:04:34 +0100
commite2c4998f6dca7d9b74a8b01762040ff2c5e38fd7 (patch)
tree86f742d57ed2a9c96867319a115c33f36861d3d7 /package
parent340c2ed2ef6578483f974e274bf6d638f953a246 (diff)
downloadupstream-e2c4998f6dca7d9b74a8b01762040ff2c5e38fd7.tar.gz
upstream-e2c4998f6dca7d9b74a8b01762040ff2c5e38fd7.tar.bz2
upstream-e2c4998f6dca7d9b74a8b01762040ff2c5e38fd7.zip
mac80211: set beamformer/beamformee number of antennas in VHT caps
Without this, beamforming is probably not working Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package')
-rw-r--r--package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh16
1 files changed, 16 insertions, 0 deletions
diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
index a958773b45..27eecf3a7f 100644
--- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
@@ -52,6 +52,8 @@ drv_mac80211_init_device_config() {
he_spr_sr_control \
he_twt_required
config_add_int \
+ beamformer_antennas \
+ beamformee_antennas \
vht_max_a_mpdu_len_exp \
vht_max_mpdu \
vht_link_adapt \
@@ -293,6 +295,8 @@ mac80211_hostapd_setup_base() {
mu_beamformee:1 \
vht_txop_ps:1 \
htc_vht:1 \
+ beamformee_antennas:4 \
+ beamformer_antennas:4 \
rx_antenna_pattern:1 \
tx_antenna_pattern:1 \
vht_max_a_mpdu_len_exp:7 \
@@ -333,6 +337,18 @@ mac80211_hostapd_setup_base() {
RX-STBC-123:0x700:0x300:1 \
RX-STBC-1234:0x700:0x400:1 \
+ [ "$(($vht_cap & 0x800))" -gt 0 -a "$su_beamformer" -gt 0 ] && {
+ cap_ant="$(( ( ($vht_cap >> 16) & 3 ) + 1 ))"
+ [ "$cap_ant" -gt "$beamformer_antennas" ] && cap_ant="$beamformer_antennas"
+ [ "$cap_ant" -gt 1 ] && vht_capab="$vht_capab[SOUNDING-DIMENSION-$cap_ant]"
+ }
+
+ [ "$(($vht_cap & 0x1000))" -gt 0 -a "$su_beamformee" -gt 0 ] && {
+ cap_ant="$(( ( ($vht_cap >> 13) & 3 ) + 1 ))"
+ [ "$cap_ant" -gt "$beamformee_antennas" ] && cap_ant="$beamformee_antennas"
+ [ "$cap_ant" -gt 1 ] && vht_capab="$vht_capab[BF-ANTENNA-$cap_ant]"
+ }
+
# supported Channel widths
vht160_hw=0
[ "$(($vht_cap & 12))" -eq 4 -a 1 -le "$vht160" ] && \