| /linux-6.15/drivers/net/wireless/mediatek/mt76/ |
| H A D | tx.c | 67 wcid = rcu_dereference(dev->wcid[cb->wcid]); in mt76_tx_status_unlock() 68 if (wcid) { in mt76_tx_status_unlock() 70 if (status.sta && (wcid->rate.flags || wcid->rate.legacy)) { in mt76_tx_status_unlock() 132 if (!wcid || !rcu_access_pointer(dev->wcid[wcid->idx])) in mt76_tx_status_skb_add() 157 cb->wcid = wcid->idx; in mt76_tx_status_skb_add() 255 wcid = rcu_dereference(dev->wcid[wcid_idx]); in __mt76_tx_complete_skb() 278 if (status.sta && (wcid->rate.flags || wcid->rate.legacy)) { in __mt76_tx_complete_skb() 320 q->entry[idx].wcid = wcid->idx; in __mt76_tx_queue_skb() 347 if (wcid && !(wcid->tx_info & MT_WCID_TX_INFO_SET)) in mt76_tx() 541 wcid = rcu_dereference(dev->wcid[mtxq->wcid]); in mt76_txq_schedule_list() [all …]
|
| H A D | mt76x02_txrx.c | 17 struct mt76_wcid *wcid = &dev->mt76.global_wcid; in mt76x02_tx() local 23 wcid = &msta->wcid; in mt76x02_tx() 28 wcid = &mvif->group_wcid; in mt76x02_tx() 31 mt76_tx(&dev->mphy, control->sta, wcid, skb); in mt76x02_tx() 138 enum mt76_txq_id qid, struct mt76_wcid *wcid, in mt76x02_tx_prepare_skb() argument 148 if (qid == MT_TXQ_PSD && wcid && wcid->idx < 128) in mt76x02_tx_prepare_skb() 149 mt76x02_mac_wcid_set_drop(dev, wcid->idx, false); in mt76x02_tx_prepare_skb() 153 mt76x02_mac_write_txwi(dev, txwi, tx_info->skb, wcid, sta, len); in mt76x02_tx_prepare_skb() 155 pid = mt76_tx_status_skb_add(mdev, wcid, tx_info->skb); in mt76x02_tx_prepare_skb() 172 if (!wcid || wcid->hw_key_idx == 0xff || wcid->sw_iv) in mt76x02_tx_prepare_skb()
|
| H A D | mac80211.c | 1247 struct mt76_wcid *wcid = status->wcid; in mt76_check_ccmp_pn() local 1258 if (!wcid || !wcid->rx_check_pn) in mt76_check_ccmp_pn() 1305 struct mt76_wcid *wcid = status->wcid; in mt76_airtime_report() local 1323 if (!wcid || !wcid->sta) in mt76_airtime_report() 1344 dev->rx_ampdu_status.wcid = wcid; in mt76_airtime_flush_ampdu() 1356 struct mt76_wcid *wcid = status->wcid; in mt76_airtime_check() local 1361 if (!wcid || !wcid->sta) { in mt76_airtime_check() 1399 struct mt76_wcid *wcid = status->wcid; in mt76_check_sta() local 1413 if (!wcid || !wcid->sta) in mt76_check_sta() 1542 mtxq->wcid = wcid->idx; in mt76_sta_add() [all …]
|
| H A D | trace.h | 27 #define TXID_ENTRY __field(u8, wcid) __field(u8, pktid) 28 #define TXID_ASSIGN __entry->wcid = wcid; __entry->pktid = pktid 30 #define TXID_PR_ARG __entry->wcid, __entry->pktid 83 TP_PROTO(struct mt76_dev *dev, u8 wcid, u8 pktid), 84 TP_ARGS(dev, wcid, pktid), 100 TP_PROTO(struct mt76_dev *dev, u8 wcid, u8 pktid), 101 TP_ARGS(dev, wcid, pktid)
|
| H A D | mt76x02_util.c | 253 msta->wcid.sta = 1; in mt76x02_sta_add() 254 msta->wcid.idx = idx; in mt76x02_sta_add() 255 msta->wcid.hw_key_idx = -1; in mt76x02_sta_add() 272 int idx = wcid->idx; in mt76x02_sta_remove() 413 struct mt76_wcid *wcid; in mt76x02_set_key() local 454 wcid = msta ? &msta->wcid : &mvif->group_wcid; in mt76x02_set_key() 458 wcid->hw_key_idx = -1; in mt76x02_set_key() 459 wcid->sw_iv = false; in mt76x02_set_key() 466 wcid->hw_key_idx = idx; in mt76x02_set_key() 469 wcid->sw_iv = true; in mt76x02_set_key() [all …]
|
| H A D | mt76_connac_mac.c | 92 if (wcid && pm->tx_q[i].wcid != wcid) in mt76_connac_free_pending_tx_skbs() 113 pm->tx_q[qid].wcid = wcid; in mt76_connac_pm_queue_skb() 130 struct mt76_wcid *wcid = pm->tx_q[i].wcid; in mt76_connac_pm_dequeue_skbs() local 136 if (wcid && wcid->sta) in mt76_connac_pm_dequeue_skbs() 368 if (wcid->sta) { in mt76_connac2_mac_write_txwi_8023() 634 if (wcid->sta) { in mt76_connac2_mac_fill_txs() 730 wcid->rate = rate; in mt76_connac2_mac_fill_txs() 1133 struct mt76_wcid *wcid; in mt76_connac2_tx_check_aggr() local 1172 wcid_idx = wcid->idx; in mt76_connac2_txwi_free() 1175 wcid = rcu_dereference(dev->wcid[wcid_idx]); in mt76_connac2_txwi_free() [all …]
|
| H A D | util.c | 69 struct mt76_wcid *wcid; in mt76_get_min_avg_rssi() local 86 wcid = rcu_dereference(dev->wcid[j]); in mt76_get_min_avg_rssi() 87 if (!wcid || wcid->phy_idx != phy_idx) in mt76_get_min_avg_rssi() 91 if (wcid->inactive_count++ < 5) in mt76_get_min_avg_rssi() 92 cur_rssi = -ewma_signal_read(&wcid->rssi); in mt76_get_min_avg_rssi()
|
| H A D | agg-rx.c | 123 struct mt76_wcid *wcid = status->wcid; in mt76_rx_aggr_check_ctl() local 136 tid = rcu_dereference(wcid->aggr[tidno]); in mt76_rx_aggr_check_ctl() 151 struct mt76_wcid *wcid = status->wcid; in mt76_rx_aggr_reorder() local 161 sta = wcid_to_sta(wcid); in mt76_rx_aggr_reorder() 176 tid = rcu_dereference(wcid->aggr[tidno]); in mt76_rx_aggr_reorder() 242 int mt76_rx_aggr_start(struct mt76_dev *dev, struct mt76_wcid *wcid, u8 tidno, in mt76_rx_aggr_start() argument 247 mt76_rx_aggr_stop(dev, wcid, tidno); in mt76_rx_aggr_start() 260 rcu_assign_pointer(wcid->aggr[tidno], tid); in mt76_rx_aggr_start() 290 void mt76_rx_aggr_stop(struct mt76_dev *dev, struct mt76_wcid *wcid, u8 tidno) in mt76_rx_aggr_stop() argument 294 tid = rcu_replace_pointer(wcid->aggr[tidno], tid, in mt76_rx_aggr_stop()
|
| H A D | mt76x02_mac.c | 354 if (!info->control.hw_key && wcid && wcid->hw_key_idx != 0xff && in mt76x02_mac_write_txwi() 356 wcid = NULL; in mt76x02_mac_write_txwi() 361 if (wcid) in mt76x02_mac_write_txwi() 362 txwi->wcid = wcid->idx; in mt76x02_mac_write_txwi() 366 if (wcid && wcid->sw_iv && key) { in mt76x02_mac_write_txwi() 568 wcid = rcu_dereference(dev->mt76.wcid[stat->wcid]); in mt76x02_send_tx_status() 570 if (wcid && wcid->sta) { in mt76x02_send_tx_status() 573 priv = msta = container_of(wcid, struct mt76x02_sta, wcid); in mt76x02_send_tx_status() 580 if (wcid) { in mt76x02_send_tx_status() 603 stat->wcid == msta->status.wcid && msta->n_frames < 32) { in mt76x02_send_tx_status() [all …]
|
| H A D | mt76x02_usb_core.c | 21 mt76_tx_complete_skb(mdev, e->wcid, e->skb); in mt76x02u_tx_complete_skb() 65 enum mt76_txq_id qid, struct mt76_wcid *wcid, in mt76x02u_tx_prepare_skb() argument 80 mt76x02_mac_write_txwi(dev, txwi, tx_info->skb, wcid, sta, len); in mt76x02u_tx_prepare_skb() 83 pid = mt76_tx_status_skb_add(mdev, wcid, tx_info->skb); in mt76x02u_tx_prepare_skb() 101 if (!wcid || wcid->hw_key_idx == 0xff || wcid->sw_iv) in mt76x02u_tx_prepare_skb() 111 if (err && wcid) in mt76x02u_tx_prepare_skb() 113 idr_remove(&wcid->pktid, pid); in mt76x02u_tx_prepare_skb()
|
| /linux-6.15/drivers/net/wireless/mediatek/mt7601u/ |
| H A D | main.c | 62 if (dev->wcid_mask[wcid / BITS_PER_LONG] & BIT(wcid % BITS_PER_LONG)) in mt7601u_add_interface() 64 dev->wcid_mask[wcid / BITS_PER_LONG] |= BIT(wcid % BITS_PER_LONG); in mt7601u_add_interface() 65 mvif->group_wcid.idx = wcid; in mt7601u_add_interface() 78 dev->wcid_mask[wcid / BITS_PER_LONG] &= ~BIT(wcid % BITS_PER_LONG); in mt7601u_remove_interface() 226 msta->wcid.idx = idx; in mt7601u_sta_add() 227 msta->wcid.hw_key_idx = -1; in mt7601u_sta_add() 230 rcu_assign_pointer(dev->wcid[idx], &msta->wcid); in mt7601u_sta_add() 245 int idx = msta->wcid.idx; in mt7601u_sta_remove() 299 struct mt76_wcid *wcid = msta ? &msta->wcid : &mvif->group_wcid; in mt7601u_set_key() local 316 wcid->hw_key_idx = idx; in mt7601u_set_key() [all …]
|
| H A D | mac.c | 152 wcid->tx_rate = mt76_mac_tx_rate_val(dev, rate, &wcid->tx_rate_nss); in mt76_mac_wcid_set_rate() 153 wcid->tx_rate_set = true; in mt76_mac_wcid_set_rate() 178 struct mt76_wcid *wcid = NULL; in mt76_send_tx_status() local 182 if (stat->wcid < ARRAY_SIZE(dev->wcid)) in mt76_send_tx_status() 183 wcid = rcu_dereference(dev->wcid[stat->wcid]); in mt76_send_tx_status() 185 if (wcid) { in mt76_send_tx_status() 186 msta = container_of(wcid, struct mt76_sta, wcid); in mt76_send_tx_status() 374 struct mt76_wcid *wcid; in mt7601u_mac_set_ampdu_factor() local 381 wcid = rcu_dereference(dev->wcid[i]); in mt7601u_mac_set_ampdu_factor() 382 if (!wcid) in mt7601u_mac_set_ampdu_factor() [all …]
|
| H A D | tx.c | 131 struct ieee80211_sta *sta, struct mt76_wcid *wcid, in mt7601u_push_txwi() argument 146 if (!wcid->tx_rate_set) in mt7601u_push_txwi() 152 rate_ctl = wcid->tx_rate; in mt7601u_push_txwi() 180 txwi->wcid = wcid->idx; in mt7601u_push_txwi() 198 struct mt76_wcid *wcid = dev->mon_wcid; in mt7601u_tx() local 213 wcid = &msta->wcid; in mt7601u_tx() 217 wcid = &mvif->group_wcid; in mt7601u_tx() 220 txwi = mt7601u_push_txwi(dev, skb, sta, wcid, pkt_len); in mt7601u_tx() 222 if (mt7601u_dma_enqueue_tx(dev, skb, wcid, hw_q)) in mt7601u_tx()
|
| /linux-6.15/drivers/net/wireless/mediatek/mt76/mt7603/ |
| H A D | main.c | 69 mvif->sta.wcid.idx = idx; in mt7603_add_interface() 77 mtxq->wcid = idx; in mt7603_add_interface() 78 rcu_assign_pointer(dev->mt76.wcid[idx], &mvif->sta.wcid); in mt7603_add_interface() 92 int idx = msta->wcid.idx; in mt7603_remove_interface() 344 msta->wcid.sta = 1; in mt7603_sta_add() 345 msta->wcid.idx = idx; in mt7603_sta_add() 486 struct mt76_wcid *wcid = &msta->wcid; in mt7603_set_key() local 517 wcid->hw_key_idx = idx; in mt7603_set_key() 677 struct mt76_wcid *wcid = &dev->global_sta.wcid; in mt7603_tx() local 683 wcid = &msta->wcid; in mt7603_tx() [all …]
|
| H A D | mac.c | 493 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7603_rx_get_wcid() 495 return wcid; in mt7603_rx_get_wcid() 497 if (!wcid->sta) in mt7603_rx_get_wcid() 500 sta = container_of(wcid, struct mt7603_sta, wcid); in mt7603_rx_get_wcid() 735 int wcid = sta->wcid.idx; in mt7603_wtbl_set_rates() local 953 if (wcid) in mt7603_mac_write_txwi() 1058 if (!wcid) in mt7603_tx_prepare_skb() 1059 wcid = &dev->global_sta.wcid; in mt7603_tx_prepare_skb() 1274 wcid = rcu_dereference(dev->mt76.wcid[wcidx]); in mt7603_mac_add_txs() 1275 if (!wcid) in mt7603_mac_add_txs() [all …]
|
| /linux-6.15/drivers/net/wireless/mediatek/mt76/mt7921/ |
| H A D | mac.c | 66 wcid.poll_list); in mt7921_mac_sta_poll() 217 mlink = container_of(status->wcid, struct mt792x_link_sta, wcid); in mt7921_mac_fill_rx() 468 wcid = rcu_dereference(dev->mt76.wcid[wcidx]); in mt7921_mac_add_txs() 469 if (!wcid) in mt7921_mac_add_txs() 472 mlink = container_of(wcid, struct mt792x_link_sta, wcid); in mt7921_mac_add_txs() 475 if (!wcid->sta) in mt7921_mac_add_txs() 519 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7921_mac_tx_free() 524 mlink = container_of(wcid, struct mt792x_link_sta, wcid); in mt7921_mac_tx_free() 532 if (wcid) { in mt7921_mac_tx_free() 779 if (!wcid) in mt7921_usb_sdio_tx_prepare_skb() [all …]
|
| H A D | main.c | 317 &mvif->sta.deflink.wcid, true); in mt7921_add_interface() 327 mvif->sta.deflink.wcid.idx = idx; in mt7921_add_interface() 336 rcu_assign_pointer(dev->mt76.wcid[idx], &mvif->sta.deflink.wcid); in mt7921_add_interface() 339 mtxq->wcid = idx; in mt7921_add_interface() 498 struct mt76_wcid *wcid = &msta->deflink.wcid; in mt7921_set_key() local 499 u8 *wcid_keyidx = &wcid->hw_key_idx; in mt7921_set_key() 516 wcid_keyidx = &wcid->hw_key_idx2; in mt7921_set_key() 553 &msta->deflink.wcid, cmd); in mt7921_set_key() 809 msta->deflink.wcid.sta = 1; in mt7921_mac_sta_add() 810 msta->deflink.wcid.idx = idx; in mt7921_mac_sta_add() [all …]
|
| /linux-6.15/drivers/net/wireless/mediatek/mt76/mt7925/ |
| H A D | mac.c | 630 if (wcid->sta) { in mt7925_mac_write_txwi_8023() 789 if (wcid->amsdu) in mt7925_mac_write_txwi() 1043 wcid = rcu_dereference(dev->mt76.wcid[wcidx]); in mt7925_mac_add_txs() 1044 if (!wcid) in mt7925_mac_add_txs() 1047 mlink = container_of(wcid, struct mt792x_link_sta, wcid); in mt7925_mac_add_txs() 1050 if (!wcid->sta) in mt7925_mac_add_txs() 1125 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7925_mac_tx_free() 1130 mlink = container_of(wcid, struct mt792x_link_sta, wcid); in mt7925_mac_tx_free() 1136 if (wcid) { in mt7925_mac_tx_free() 1409 if (!wcid) in mt7925_usb_sdio_tx_prepare_skb() [all …]
|
| H A D | mac.h | 15 static inline u32 mt7925_mac_wtbl_lmac_addr(struct mt792x_dev *dev, u16 wcid, u8 dw) in mt7925_mac_wtbl_lmac_addr() argument 18 FIELD_PREP(MT_WTBLON_TOP_WDUCR_GROUP, (wcid >> 7))); in mt7925_mac_wtbl_lmac_addr() 20 return MT_WTBL_LMAC_OFFS(wcid, dw); in mt7925_mac_wtbl_lmac_addr()
|
| /linux-6.15/drivers/net/wireless/mediatek/mt76/mt7615/ |
| H A D | usb_sdio.c | 72 addr = mt7615_mac_wtbl_addr(dev, sta->wcid.idx); in mt7663_usb_sdio_set_rates() 106 FIELD_PREP(MT_WTBL_UPDATE_WLAN_IDX, sta->wcid.idx) | in mt7663_usb_sdio_set_rates() 122 if (!(sta->wcid.tx_info & MT_WCID_TX_INFO_SET)) in mt7663_usb_sdio_set_rates() 126 sta->wcid.tx_info |= MT_WCID_TX_INFO_SET; in mt7663_usb_sdio_set_rates() 177 mt76_tx_complete_skb(mdev, e->wcid, e->skb); in mt7663_usb_sdio_tx_complete_skb() 182 enum mt76_txq_id qid, struct mt76_wcid *wcid, in mt7663_usb_sdio_tx_prepare_skb() argument 193 msta = wcid ? container_of(wcid, struct mt7615_sta, wcid) : NULL; in mt7663_usb_sdio_tx_prepare_skb() 194 if (!wcid) in mt7663_usb_sdio_tx_prepare_skb() 195 wcid = &dev->mt76.global_wcid; in mt7663_usb_sdio_tx_prepare_skb() 206 pktid = mt76_tx_status_skb_add(&dev->mt76, wcid, skb); in mt7663_usb_sdio_tx_prepare_skb() [all …]
|
| H A D | main.c | 212 mvif->mt76.wcid = &mvif->sta.wcid; in mt7615_add_interface() 227 mvif->sta.wcid.idx = idx; in mt7615_add_interface() 233 rcu_assign_pointer(dev->mt76.wcid[idx], &mvif->sta.wcid); in mt7615_add_interface() 236 mtxq->wcid = idx; in mt7615_add_interface() 253 int idx = msta->wcid.idx; in mt7615_remove_interface() 344 struct mt76_wcid *wcid = &msta->wcid; in mt7615_set_key() local 361 wcid_keyidx = &wcid->hw_key_idx2; in mt7615_set_key() 648 msta->wcid.sta = 1; in mt7615_mac_sta_add() 649 msta->wcid.idx = idx; in mt7615_mac_sta_add() 761 wcid = &msta->wcid; in mt7615_tx() [all …]
|
| H A D | mac.c | 96 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7615_rx_get_wcid() 97 if (unicast || !wcid) in mt7615_rx_get_wcid() 98 return wcid; in mt7615_rx_get_wcid() 100 if (!wcid->sta) in mt7615_rx_get_wcid() 103 sta = container_of(wcid, struct mt7615_sta, wcid); in mt7615_rx_get_wcid() 389 msta = container_of(status->wcid, struct mt7615_sta, wcid); in mt7615_mac_fill_rx() 1101 int wcid = sta->wcid.idx, n_rates = sta->n_rates; in mt7615_mac_set_rates() local 1507 wcid = rcu_dereference(dev->mt76.wcid[wcidx]); in mt7615_mac_add_txs() 1508 if (!wcid) in mt7615_mac_add_txs() 1511 msta = container_of(wcid, struct mt7615_sta, wcid); in mt7615_mac_add_txs() [all …]
|
| /linux-6.15/drivers/net/wireless/mediatek/mt76/mt7915/ |
| H A D | main.c | 236 mvif->mt76.wcid = &mvif->sta.wcid; in mt7915_add_interface() 265 mtxq->wcid = idx; in mt7915_add_interface() 278 rcu_assign_pointer(dev->mt76.wcid[idx], &mvif->sta.wcid); in mt7915_add_interface() 364 struct mt76_wcid *wcid = &msta->wcid; in mt7915_set_key() local 794 msta->wcid.sta = 0; in __mt7915_drop_sta() 843 msta->wcid.sta = 1; in mt7915_mac_sta_event() 858 msta->wcid.sta = 0; in mt7915_mac_sta_event() 896 wcid = &sta->wcid; in mt7915_tx() 903 wcid = &mvif->sta.wcid; in mt7915_tx() 1235 if (!msta->wcid.sta) in mt7915_sta_rc_update() [all …]
|
| /linux-6.15/drivers/net/wireless/mediatek/mt76/mt7996/ |
| H A D | main.c | 294 mlink->wcid = &msta_link->wcid; in mt7996_vif_link_add() 317 mtxq->wcid = idx; in mt7996_vif_link_add() 338 rcu_assign_pointer(dev->mt76.wcid[idx], &msta_link->wcid); in mt7996_vif_link_add() 905 mtxq->wcid = idx; in mt7996_mac_sta_init_link() 916 msta_link->wcid.sta = 1; in mt7996_mac_sta_init_link() 929 rcu_assign_pointer(dev->mt76.wcid[idx], &msta_link->wcid); in mt7996_mac_sta_init_link() 1214 wcid = mlink->wcid; in mt7996_tx() 1220 wcid = mphy->roc_link->wcid; in mt7996_tx() 1237 wcid = &msta_link->wcid; in mt7996_tx() 2057 if (!msta_link->wcid.sta || msta_link->wcid.idx > MT7996_WTBL_STA) in mt7996_net_fill_forward_path() [all …]
|
| H A D | mac.c | 67 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7996_rx_get_wcid() 68 if (!wcid) in mt7996_rx_get_wcid() 75 return wcid; in mt7996_rx_get_wcid() 77 msta_link = container_of(wcid, struct mt7996_sta_link, wcid); in mt7996_rx_get_wcid() 155 wcid = &msta_link->wcid; in mt7996_mac_sta_poll() 507 wcid); in mt7996_mac_fill_rx() 1009 if (!wcid) in mt7996_tx_prepare_skb() 1214 wcid = rcu_dereference(dev->mt76.wcid[idx]); in mt7996_mac_tx_free() 1436 wcid = rcu_dereference(dev->mt76.wcid[wcidx]); in mt7996_mac_add_txs() 1437 if (!wcid) in mt7996_mac_add_txs() [all …]
|