wifi: mt76: report data NSS for STBC frames in RX rate decode

The RX rate decoder set status->nss straight from the PRXV NSTS field,
which for STBC frames is twice the data spatial-stream count. cfg80211
then reported a doubled RX bitrate in station dumps and radiotap. Halve
nss for STBC, matching the TX status path.

Fixes: 98686cd216 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices")
Fixes: d832f5e738 ("mt76: connac: move mt76_connac2_mac_fill_rx_rate in connac module")
Link: https://patch.msgid.link/20260724124813.3961474-11-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Felix Fietkau
2026-07-24 12:47:55 +00:00
parent e995d3dccc
commit 4238535e85
2 changed files with 8 additions and 0 deletions

View File

@@ -1069,6 +1069,10 @@ int mt76_connac2_mac_fill_rx_rate(struct mt76_dev *dev,
bw = FIELD_GET(MT_CRXV_FRAME_MODE, v2);
}
/* the hardware reports NSTS; report the data NSS for STBC frames */
if (stbc && nss > 1)
nss >>= 1;
switch (*mode) {
case MT_PHY_TYPE_CCK:
cck = true;

View File

@@ -294,6 +294,10 @@ mt7996_mac_fill_rx_rate(struct mt7996_dev *dev,
dcm = FIELD_GET(MT_PRXV_DCM, v2);
bw = FIELD_GET(MT_PRXV_FRAME_MODE, v2);
/* the hardware reports NSTS; report the data NSS for STBC frames */
if (stbc && nss > 1)
nss >>= 1;
switch (*mode) {
case MT_PHY_TYPE_CCK:
cck = true;