Commit 9e4c3a00 authored by Sean Wang's avatar Sean Wang Committed by Felix Fietkau
Browse files

wifi: mt76: connac: Extend mt76_connac_mcu_uni_add_dev for MLO



This commit extends the `mt76_connac_mcu_uni_add_dev` function to include
support for Multi-Link Operation (MLO). Additionally, backward
compatibility for MT7921 is preserved, enabling seamless integration with
existing setups.

Fixes: 86c051f2 ("wifi: mt76: mt7925: enabling MLO when the firmware supports it")
Signed-off-by: default avatarSean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20241211011926.5002-1-sean.wang@kernel.org


Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 1e232a9f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1113,7 +1113,7 @@ mt7615_mcu_uni_add_dev(struct mt7615_phy *phy, struct ieee80211_vif *vif,
{
	struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv;

	return mt76_connac_mcu_uni_add_dev(phy->mt76, &vif->bss_conf,
	return mt76_connac_mcu_uni_add_dev(phy->mt76, &vif->bss_conf, &mvif->mt76,
					   &mvif->sta.wcid, enable);
}

+1 −1
Original line number Diff line number Diff line
@@ -1137,10 +1137,10 @@ EXPORT_SYMBOL_GPL(mt76_connac_mcu_wtbl_ba_tlv);

int mt76_connac_mcu_uni_add_dev(struct mt76_phy *phy,
				struct ieee80211_bss_conf *bss_conf,
				struct mt76_vif *mvif,
				struct mt76_wcid *wcid,
				bool enable)
{
	struct mt76_vif *mvif = (struct mt76_vif *)bss_conf->vif->drv_priv;
	struct mt76_dev *dev = phy->dev;
	struct {
		struct {
+1 −0
Original line number Diff line number Diff line
@@ -1938,6 +1938,7 @@ void mt76_connac_mcu_sta_ba_tlv(struct sk_buff *skb,
				bool enable, bool tx);
int mt76_connac_mcu_uni_add_dev(struct mt76_phy *phy,
				struct ieee80211_bss_conf *bss_conf,
				struct mt76_vif *mvif,
				struct mt76_wcid *wcid,
				bool enable);
int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
+1 −0
Original line number Diff line number Diff line
@@ -647,6 +647,7 @@ mt7921_vif_connect_iter(void *priv, u8 *mac,
		ieee80211_disconnect(vif, true);

	mt76_connac_mcu_uni_add_dev(&dev->mphy, &vif->bss_conf,
				    &mvif->bss_conf.mt76,
				    &mvif->sta.deflink.wcid, true);
	mt7921_mcu_set_tx(dev, vif);

+1 −0
Original line number Diff line number Diff line
@@ -308,6 +308,7 @@ mt7921_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
	mvif->bss_conf.mt76.wmm_idx = mvif->bss_conf.mt76.idx % MT76_CONNAC_MAX_WMM_SETS;

	ret = mt76_connac_mcu_uni_add_dev(&dev->mphy, &vif->bss_conf,
					  &mvif->bss_conf.mt76,
					  &mvif->sta.deflink.wcid, true);
	if (ret)
		goto out;
Loading