blob: eddb97998811976c9716af2bce69cdb2f2633853 [file] [log] [blame]
From bd6ca04b5a9b98529348fe6bf53213383e2f269e Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Mon, 4 Dec 2023 14:50:47 +0800
Subject: [PATCH 111/120] wifi: mt76: mt7996: rework RXD for multi-link support
This is a preliminary patch to add MLO support for mt7996 chipsets.
Co-developed-by: Bo Jiao <Bo.Jiao@mediatek.com>
Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
---
mt7996/mac.c | 27 ++-------------------------
1 file changed, 2 insertions(+), 25 deletions(-)
diff --git a/mt7996/mac.c b/mt7996/mac.c
index 700029b04..47fd2e17a 100644
--- a/mt7996/mac.c
+++ b/mt7996/mac.c
@@ -51,29 +51,6 @@ static const struct mt7996_dfs_radar_spec jp_radar_specs = {
},
};
-static struct mt76_wcid *mt7996_rx_get_wcid(struct mt7996_dev *dev,
- u16 idx, bool unicast)
-{
- struct mt7996_link_sta *mlink;
- struct mt76_wcid *wcid;
-
- if (idx >= ARRAY_SIZE(dev->mt76.wcid))
- return NULL;
-
- wcid = rcu_dereference(dev->mt76.wcid[idx]);
- if (unicast || !wcid)
- return wcid;
-
- if (!wcid->sta)
- return NULL;
-
- mlink = container_of(wcid, struct mt7996_link_sta, wcid);
- if (!mlink->sta->vif)
- return NULL;
-
- return &mlink->wcid;
-}
-
bool mt7996_mac_wtbl_update(struct mt7996_dev *dev, int idx, u32 mask)
{
mt76_rmw(dev, MT_WTBL_UPDATE, MT_WTBL_UPDATE_WLAN_IDX,
@@ -376,10 +353,10 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
unicast = FIELD_GET(MT_RXD3_NORMAL_ADDR_TYPE, rxd3) == MT_RXD3_NORMAL_U2M;
idx = FIELD_GET(MT_RXD1_NORMAL_WLAN_IDX, rxd1);
- status->wcid = mt7996_rx_get_wcid(dev, idx, unicast);
+ status->wcid = mt7996_get_link_wcid(dev, idx, band_idx);
if (status->wcid) {
- mlink = container_of(status->wcid, struct mt7996_link_sta, wcid);
+ mlink = wcid_to_mlink(status->wcid);
spin_lock_bh(&dev->mt76.sta_poll_lock);
if (list_empty(&mlink->wcid.poll_list))
list_add_tail(&mlink->wcid.poll_list,
--
2.39.2