]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mt76: mt7996: fix ldpc setting
authorPeter Chiu <chui-hao.chiu@mediatek.com>
Tue, 14 Jan 2025 10:10:24 +0000 (18:10 +0800)
committerFelix Fietkau <nbd@nbd.name>
Tue, 14 Jan 2025 12:42:30 +0000 (13:42 +0100)
The non-AP interfaces would not use conf->vht_ldpc so they never set
STA_CAP_VHT_LDPC even if peer-station support LDPC.
Check conf->vht_ldpc only for AP interface.

Without this patch, station only uses BCC to transmit packet in VHT mode.

Fixes: dda423dd65c3 ("wifi: mt76: mt7996: remove mt7996_mcu_beacon_check_caps()")
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250114101026.3587702-7-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c

index 9fb54388d975b1b6f59d2b5acf8852b8ac817a80..9879c108cd0ef036a1961cb2b8cd7e3479c10226 100644 (file)
@@ -2066,7 +2066,7 @@ mt7996_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7996_dev *dev,
                        cap |= STA_CAP_VHT_TX_STBC;
                if (sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_RXSTBC_1)
                        cap |= STA_CAP_VHT_RX_STBC;
-               if (vif->bss_conf.vht_ldpc &&
+               if ((vif->type != NL80211_IFTYPE_AP || vif->bss_conf.vht_ldpc) &&
                    (sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_RXLDPC))
                        cap |= STA_CAP_VHT_LDPC;