wifi: mt76: mt7925: update mt7925_mcu_sta_phy_tlv for MLO
authorSean Wang <sean.wang@mediatek.com>
Sat, 6 Jul 2024 08:28:12 +0000 (01:28 -0700)
committerFelix Fietkau <nbd@nbd.name>
Tue, 9 Jul 2024 21:02:09 +0000 (23:02 +0200)
when we serve MLO during the multiple-linked connection, the chanctx may
be not available in the internal driver, we should get the proper the
band information from link_conf for the MLO-enabled firmware.

Co-developed-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Co-developed-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/6620e00fbeef686fb2041556deba346411eab0f1.1720248331.git.sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c

index fbf43dda0cd6b784229a4d320ddf4f1dc232751a..caf2ac238b4dfe960d416adefe487ed72885b52d 100644 (file)
@@ -1647,7 +1647,8 @@ mt7925_mcu_sta_phy_tlv(struct sk_buff *skb,
 
        link_conf = mt792x_vif_to_bss_conf(vif, link_sta->link_id);
        mconf = mt792x_vif_to_link(mvif, link_sta->link_id);
-       chandef = &mconf->mt76.ctx->def;
+       chandef = mconf->mt76.ctx ? &mconf->mt76.ctx->def :
+                                   &link_conf->chanreq.oper;
 
        tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_PHY, sizeof(*phy));
        phy = (struct sta_rec_phy *)tlv;