LinuxKPI: 802.11: fix rx_nss with VHT

When fixing single-stream chipsets, like iwlwifi(4) AX101, we started
masking the announced with the hardware supported values.  This would
probably limit, e.g., rx_nss.  During these works we fixed a loop
checking from the highest nss=7 to lowest nss=0 (8..1) and would set
rx_nss if the stream was supported.  This left us with always setting
rx_nss on nss=0 to nss + 1 = 1.  Instead only update once when we hit
the first supported MCS value (highest number of supported streams).
Looking at the diff of the mentioned commit hash which gets fixed it
looks like even the old code was not correct either.

This only fixes the logic to calculate rx_nss.  This does not yet help
with modern drivers to actually update the value.  Code for this will
come in a later commit.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Fixes:		adb4901ac9
This commit is contained in:
Bjoern A. Zeeb
2025-12-28 19:38:16 +00:00
parent f0395993e1
commit 8494be1b5a
+2 -1
View File
@@ -693,7 +693,8 @@ lkpi_sta_sync_vht_from_ni(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
sta = IEEE80211_VHT_MCS_NOT_SUPPORTED;
else {
sta = MIN(sta, card);
rx_nss = i + 1;
if (rx_nss == 0)
rx_nss = i + 1;
}
}
rx_map |= (sta << (2 * i));