wifi: mt76: mt7925: report link information in rx status
authorSean Wang <sean.wang@mediatek.com>
Sat, 6 Jul 2024 08:28:03 +0000 (01:28 -0700)
committerFelix Fietkau <nbd@nbd.name>
Tue, 9 Jul 2024 21:02:06 +0000 (23:02 +0200)
report link information in rx status

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/c7cdc17d94375a76802a5c4a825ea3e51cdb53af.1720248331.git.sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mac80211.c
drivers/net/wireless/mediatek/mt76/mt76.h
drivers/net/wireless/mediatek/mt76/mt7925/main.c

index e8ba2e4e8484a8be620b3d5c8f7848a98dd9a321..bb291fe314fb44f0195e151a7be6212469175376 100644 (file)
@@ -1125,6 +1125,11 @@ mt76_rx_convert(struct mt76_dev *dev, struct sk_buff *skb,
        memcpy(status->chain_signal, mstat.chain_signal,
               sizeof(mstat.chain_signal));
 
+       if (mstat.wcid) {
+               status->link_valid = mstat.wcid->link_valid;
+               status->link_id = mstat.wcid->link_id;
+       }
+
        *sta = wcid_to_sta(mstat.wcid);
        *hw = mt76_phy_hw(dev, mstat.phy_idx);
 }
index daf1e43e304eeebc78c89ba9c4f76a4b28708929..e1d30326f5af1dbf81377149ab9d989ddfc8a789 100644 (file)
@@ -350,6 +350,7 @@ struct mt76_wcid {
        u8 amsdu:1;
        u8 phy_idx:2;
        u8 link_id:4;
+       bool link_valid;
 
        u8 rx_check_pn;
        u8 rx_key_pn[IEEE80211_NUM_TIDS + 1][6];
index 3d23a87e9a74d713ac60bdee65f3f29ab52dd7d1..be0a336f601e98f6df3bf950190a6cd2ade8477b 100644 (file)
@@ -811,6 +811,7 @@ static int mt7925_mac_link_sta_add(struct mt76_dev *mdev,
        mlink->wcid.tx_info |= MT_WCID_TX_INFO_SET;
        mlink->last_txs = jiffies;
        mlink->wcid.link_id = link_sta->link_id;
+       mlink->wcid.link_valid = !!link_sta->sta->valid_links;
 
        ret = mt76_connac_pm_wake(&dev->mphy, &dev->pm);
        if (ret)
@@ -1898,6 +1899,7 @@ mt7925_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                mconf->link_id = link_id;
                mconf->vif = mvif;
                mlink->wcid.link_id = link_id;
+               mlink->wcid.link_valid = !!vif->valid_links;
        }
 
        if (hweight16(mvif->valid_links) == 0)