Commit f520ecea authored by Shayne Chen's avatar Shayne Chen Committed by Felix Fietkau
Browse files

wifi: mt76: mt7996: Add mt7996_mac_sta_change_links callback



Intrdouce mt7996_mac_sta_change_links routine to set change_sta_links
required by mac80211. This is a preliminary patch to introduce MLO
support for MT7996 driver.

Co-developed-by: default avatarBo Jiao <Bo.Jiao@mediatek.com>
Signed-off-by: default avatarBo Jiao <Bo.Jiao@mediatek.com>
Co-developed-by: default avatarPeter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: default avatarPeter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: default avatarShayne Chen <shayne.chen@mediatek.com>
Co-developed-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/20250311-mt7996-mlo-v2-8-31df6972519b@kernel.org


Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent dd82a9e0
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -952,6 +952,26 @@ mt7996_mac_sta_add_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
	return err;
}

static int
mt7996_mac_sta_change_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
			    struct ieee80211_sta *sta, u16 old_links,
			    u16 new_links)
{
	struct mt7996_dev *dev = mt7996_hw_dev(hw);
	unsigned long add = new_links & ~old_links;
	unsigned long rem = old_links & ~new_links;
	int ret;

	mutex_lock(&dev->mt76.mutex);

	mt7996_mac_sta_remove_links(dev, sta, rem);
	ret = mt7996_mac_sta_add_links(dev, vif, sta, add);

	mutex_unlock(&dev->mt76.mutex);

	return ret;
}

static int
mt7996_mac_sta_add(struct mt76_phy *mphy, struct ieee80211_vif *vif,
		   struct ieee80211_sta *sta)
@@ -1921,4 +1941,5 @@ const struct ieee80211_ops mt7996_ops = {
	.net_setup_tc = mt76_wed_net_setup_tc,
#endif
	.change_vif_links = mt7996_change_vif_links,
	.change_sta_links = mt7996_mac_sta_change_links,
};