Lines Matching refs:mvm_sta
58 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_sta_send_to_fw() local
60 .sta_id = mvm_sta->sta_id, in iwl_mvm_sta_send_to_fw()
61 .mac_id_n_color = cpu_to_le32(mvm_sta->mac_id_n_color), in iwl_mvm_sta_send_to_fw()
66 .tid_disable_tx = cpu_to_le16(mvm_sta->tid_disable_agg), in iwl_mvm_sta_send_to_fw()
73 add_sta_cmd.station_type = mvm_sta->sta_type; in iwl_mvm_sta_send_to_fw()
80 cpu_to_le32(mvm_sta->tfd_queue_msk); in iwl_mvm_sta_send_to_fw()
145 if (mvm_sta->vif->bss_conf.chandef.chan->band == NL80211_BAND_6GHZ) { in iwl_mvm_sta_send_to_fw()
184 if (mvm_sta->sta_state >= IEEE80211_STA_ASSOC) in iwl_mvm_sta_send_to_fw()
229 struct iwl_mvm_sta *mvm_sta; in iwl_mvm_rx_agg_session_expired() local
262 mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_rx_agg_session_expired()
263 ieee80211_rx_ba_timer_expired(mvm_sta->vif, in iwl_mvm_rx_agg_session_expired()
1511 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_realloc_queues_after_restart() local
1513 iwl_mvm_get_wd_timeout(mvm, mvm_sta->vif, false, false); in iwl_mvm_realloc_queues_after_restart()
1516 .sta_id = mvm_sta->sta_id, in iwl_mvm_realloc_queues_after_restart()
1521 if (mvm_sta->reserved_queue != IEEE80211_INVAL_HW_QUEUE) in iwl_mvm_realloc_queues_after_restart()
1522 mvm->queue_info[mvm_sta->reserved_queue].status = in iwl_mvm_realloc_queues_after_restart()
1526 struct iwl_mvm_tid_data *tid_data = &mvm_sta->tid_data[i]; in iwl_mvm_realloc_queues_after_restart()
1538 mvm_sta->sta_id, i); in iwl_mvm_realloc_queues_after_restart()
1539 txq_id = iwl_mvm_tvqm_enable_txq(mvm, mvm_sta->sta_id, in iwl_mvm_realloc_queues_after_restart()
1568 mvm_sta->sta_id, i, txq_id); in iwl_mvm_realloc_queues_after_restart()
1631 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_add_sta() local
1643 sta_id = mvm_sta->sta_id; in iwl_mvm_add_sta()
1648 spin_lock_init(&mvm_sta->lock); in iwl_mvm_add_sta()
1654 .type = mvm_sta->sta_type, in iwl_mvm_add_sta()
1672 mvm_sta->sta_id = sta_id; in iwl_mvm_add_sta()
1673 mvm_sta->mac_id_n_color = FW_CMD_ID_AND_COLOR(mvmvif->id, in iwl_mvm_add_sta()
1675 mvm_sta->vif = vif; in iwl_mvm_add_sta()
1677 mvm_sta->max_agg_bufsize = LINK_QUAL_AGG_FRAME_LIMIT_DEF; in iwl_mvm_add_sta()
1679 mvm_sta->max_agg_bufsize = LINK_QUAL_AGG_FRAME_LIMIT_GEN2_DEF; in iwl_mvm_add_sta()
1680 mvm_sta->tx_protection = 0; in iwl_mvm_add_sta()
1681 mvm_sta->tt_tx_protection = false; in iwl_mvm_add_sta()
1682 mvm_sta->sta_type = sta->tdls ? IWL_STA_TDLS_LINK : IWL_STA_LINK; in iwl_mvm_add_sta()
1685 mvm_sta->tid_disable_agg = 0xffff; /* No aggs at first */ in iwl_mvm_add_sta()
1686 mvm_sta->tfd_queue_msk = 0; in iwl_mvm_add_sta()
1690 u16 seq = mvm_sta->tid_data[i].seq_number; in iwl_mvm_add_sta()
1691 memset(&mvm_sta->tid_data[i], 0, sizeof(mvm_sta->tid_data[i])); in iwl_mvm_add_sta()
1692 mvm_sta->tid_data[i].seq_number = seq; in iwl_mvm_add_sta()
1698 mvm_sta->tid_data[i].txq_id = IWL_MVM_INVALID_QUEUE; in iwl_mvm_add_sta()
1710 mvm_sta->agg_tids = 0; in iwl_mvm_add_sta()
1732 mvm_sta->dup_data = dup_data; in iwl_mvm_add_sta()
1747 iwl_mvm_rs_add_sta(mvm, mvm_sta); in iwl_mvm_add_sta()
1749 spin_lock_init(&mvm_sta->lq_sta.rs_drv.pers.lock); in iwl_mvm_add_sta()
1751 iwl_mvm_toggle_tx_ant(mvm, &mvm_sta->tx_ant); in iwl_mvm_add_sta()
1848 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_disable_sta_queues() local
1853 for (i = 0; i < ARRAY_SIZE(mvm_sta->tid_data); i++) { in iwl_mvm_disable_sta_queues()
1854 if (mvm_sta->tid_data[i].txq_id == IWL_MVM_INVALID_QUEUE) in iwl_mvm_disable_sta_queues()
1857 iwl_mvm_disable_txq(mvm, sta, &mvm_sta->tid_data[i].txq_id, i); in iwl_mvm_disable_sta_queues()
1858 mvm_sta->tid_data[i].txq_id = IWL_MVM_INVALID_QUEUE; in iwl_mvm_disable_sta_queues()
1871 struct iwl_mvm_sta *mvm_sta) in iwl_mvm_wait_sta_queues_empty() argument
1875 for (i = 0; i < ARRAY_SIZE(mvm_sta->tid_data); i++) { in iwl_mvm_wait_sta_queues_empty()
1879 spin_lock_bh(&mvm_sta->lock); in iwl_mvm_wait_sta_queues_empty()
1880 txq_id = mvm_sta->tid_data[i].txq_id; in iwl_mvm_wait_sta_queues_empty()
1881 spin_unlock_bh(&mvm_sta->lock); in iwl_mvm_wait_sta_queues_empty()
1899 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_rm_sta() local
1900 u8 sta_id = mvm_sta->sta_id; in iwl_mvm_rm_sta()
1906 kfree(mvm_sta->dup_data); in iwl_mvm_rm_sta()
1908 ret = iwl_mvm_drain_sta(mvm, mvm_sta, true); in iwl_mvm_rm_sta()
1913 ret = iwl_mvm_flush_sta(mvm, mvm_sta, false); in iwl_mvm_rm_sta()
1917 ret = iwl_mvm_wait_sta_queues_empty(mvm, mvm_sta); in iwl_mvm_rm_sta()
1919 u32 q_mask = mvm_sta->tfd_queue_msk; in iwl_mvm_rm_sta()
1927 ret = iwl_mvm_drain_sta(mvm, mvm_sta, false); in iwl_mvm_rm_sta()
1932 if (mvm_sta->reserved_queue != IEEE80211_INVAL_HW_QUEUE) { in iwl_mvm_rm_sta()
1933 u8 reserved_txq = mvm_sta->reserved_queue; in iwl_mvm_rm_sta()
1974 spin_lock_bh(&mvm_sta->lock); in iwl_mvm_rm_sta()
1975 spin_unlock_bh(&mvm_sta->lock); in iwl_mvm_rm_sta()
1977 ret = iwl_mvm_rm_sta_common(mvm, mvm_sta->sta_id); in iwl_mvm_rm_sta()
1978 RCU_INIT_POINTER(mvm->fw_id_to_mac_id[mvm_sta->sta_id], NULL); in iwl_mvm_rm_sta()
2598 struct iwl_mvm_sta *mvm_sta, in iwl_mvm_fw_baid_op_sta() argument
2603 .mac_id_n_color = cpu_to_le32(mvm_sta->mac_id_n_color), in iwl_mvm_fw_baid_op_sta()
2604 .sta_id = mvm_sta->sta_id, in iwl_mvm_fw_baid_op_sta()
2646 struct iwl_mvm_sta *mvm_sta, in iwl_mvm_fw_baid_op_cmd() argument
2660 cmd.alloc.sta_id_mask = cpu_to_le32(BIT(mvm_sta->sta_id)); in iwl_mvm_fw_baid_op_cmd()
2669 cmd.remove.sta_id_mask = cpu_to_le32(BIT(mvm_sta->sta_id)); in iwl_mvm_fw_baid_op_cmd()
2692 static int iwl_mvm_fw_baid_op(struct iwl_mvm *mvm, struct iwl_mvm_sta *mvm_sta, in iwl_mvm_fw_baid_op() argument
2698 return iwl_mvm_fw_baid_op_cmd(mvm, mvm_sta, start, in iwl_mvm_fw_baid_op()
2701 return iwl_mvm_fw_baid_op_sta(mvm, mvm_sta, start, in iwl_mvm_fw_baid_op()
2708 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_sta_rx_agg() local
2763 baid = mvm_sta->tid_to_baid[tid]; in iwl_mvm_sta_rx_agg()
2771 baid = iwl_mvm_fw_baid_op(mvm, mvm_sta, start, tid, ssn, buf_size, in iwl_mvm_sta_rx_agg()
2793 baid_data->sta_id = mvm_sta->sta_id; in iwl_mvm_sta_rx_agg()
2795 mvm_sta->tid_to_baid[tid] = baid; in iwl_mvm_sta_rx_agg()
2808 mvm_sta->sta_id, tid, baid); in iwl_mvm_sta_rx_agg()
2812 baid = mvm_sta->tid_to_baid[tid]; in iwl_mvm_sta_rx_agg()
2854 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_sta_tx_agg() local
2862 mvm_sta->tfd_queue_msk |= BIT(queue); in iwl_mvm_sta_tx_agg()
2863 mvm_sta->tid_disable_agg &= ~BIT(tid); in iwl_mvm_sta_tx_agg()
2866 mvm_sta->tid_disable_agg |= BIT(tid); in iwl_mvm_sta_tx_agg()
2869 cmd.mac_id_n_color = cpu_to_le32(mvm_sta->mac_id_n_color); in iwl_mvm_sta_tx_agg()
2870 cmd.sta_id = mvm_sta->sta_id; in iwl_mvm_sta_tx_agg()
2875 cmd.tfd_queue_msk = cpu_to_le32(mvm_sta->tfd_queue_msk); in iwl_mvm_sta_tx_agg()
2876 cmd.tid_disable_tx = cpu_to_le16(mvm_sta->tid_disable_agg); in iwl_mvm_sta_tx_agg()
3638 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in __iwl_mvm_set_sta_key() local
3640 sta_id = mvm_sta->sta_id; in __iwl_mvm_set_sta_key()
3674 struct iwl_mvm_sta *mvm_sta; in iwl_mvm_set_sta_key() local
3684 mvm_sta = iwl_mvm_get_key_sta(mvm, vif, sta); in iwl_mvm_set_sta_key()
3685 if (!mvm_sta) { in iwl_mvm_set_sta_key()
3689 sta_id = mvm_sta->sta_id; in iwl_mvm_set_sta_key()
3775 struct iwl_mvm_sta *mvm_sta; in iwl_mvm_remove_sta_key() local
3782 mvm_sta = iwl_mvm_get_key_sta(mvm, vif, sta); in iwl_mvm_remove_sta_key()
3783 if (mvm_sta) in iwl_mvm_remove_sta_key()
3784 sta_id = mvm_sta->sta_id; in iwl_mvm_remove_sta_key()
3810 if (sta && !mvm_sta) { in iwl_mvm_remove_sta_key()
3833 struct iwl_mvm_sta *mvm_sta; in iwl_mvm_update_tkip_key() local
3839 mvm_sta = iwl_mvm_get_key_sta(mvm, vif, sta); in iwl_mvm_update_tkip_key()
3840 if (WARN_ON_ONCE(!mvm_sta)) in iwl_mvm_update_tkip_key()
3842 iwl_mvm_send_sta_key(mvm, mvm_sta->sta_id, keyconf, mcast, in iwl_mvm_update_tkip_key()
3991 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_sta_modify_disable_tx_ap() local
3993 spin_lock_bh(&mvm_sta->lock); in iwl_mvm_sta_modify_disable_tx_ap()
3995 if (mvm_sta->disable_tx == disable) { in iwl_mvm_sta_modify_disable_tx_ap()
3996 spin_unlock_bh(&mvm_sta->lock); in iwl_mvm_sta_modify_disable_tx_ap()
4000 mvm_sta->disable_tx = disable; in iwl_mvm_sta_modify_disable_tx_ap()
4009 iwl_mvm_sta_modify_disable_tx(mvm, mvm_sta, disable); in iwl_mvm_sta_modify_disable_tx_ap()
4011 spin_unlock_bh(&mvm_sta->lock); in iwl_mvm_sta_modify_disable_tx_ap()
4040 struct iwl_mvm_sta *mvm_sta; in iwl_mvm_modify_all_sta_disable_tx() local
4051 mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_modify_all_sta_disable_tx()
4052 if (mvm_sta->mac_id_n_color != in iwl_mvm_modify_all_sta_disable_tx()