Lines Matching refs:mvm_sta
120 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_sta_send_to_fw() local
122 .sta_id = mvm_sta->sta_id, in iwl_mvm_sta_send_to_fw()
123 .mac_id_n_color = cpu_to_le32(mvm_sta->mac_id_n_color), in iwl_mvm_sta_send_to_fw()
128 .tid_disable_tx = cpu_to_le16(mvm_sta->tid_disable_agg), in iwl_mvm_sta_send_to_fw()
135 add_sta_cmd.station_type = mvm_sta->sta_type; in iwl_mvm_sta_send_to_fw()
142 cpu_to_le32(mvm_sta->tfd_queue_msk); in iwl_mvm_sta_send_to_fw()
219 if (mvm_sta->sta_state >= IEEE80211_STA_ASSOC) in iwl_mvm_sta_send_to_fw()
264 struct iwl_mvm_sta *mvm_sta; in iwl_mvm_rx_agg_session_expired() local
297 mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_rx_agg_session_expired()
298 ieee80211_rx_ba_timer_expired(mvm_sta->vif, in iwl_mvm_rx_agg_session_expired()
1227 struct iwl_mvm_sta *mvm_sta) in iwl_mvm_realloc_queues_after_restart() argument
1230 iwl_mvm_get_wd_timeout(mvm, mvm_sta->vif, false, false); in iwl_mvm_realloc_queues_after_restart()
1233 .sta_id = mvm_sta->sta_id, in iwl_mvm_realloc_queues_after_restart()
1238 if (mvm_sta->reserved_queue != IEEE80211_INVAL_HW_QUEUE) in iwl_mvm_realloc_queues_after_restart()
1239 mvm->queue_info[mvm_sta->reserved_queue].status = in iwl_mvm_realloc_queues_after_restart()
1243 struct iwl_mvm_tid_data *tid_data = &mvm_sta->tid_data[i]; in iwl_mvm_realloc_queues_after_restart()
1254 mac_queue = mvm_sta->vif->hw_queue[ac]; in iwl_mvm_realloc_queues_after_restart()
1259 mvm_sta->sta_id, i); in iwl_mvm_realloc_queues_after_restart()
1261 mvm_sta->sta_id, in iwl_mvm_realloc_queues_after_restart()
1283 mvm_sta->sta_id, i, txq_id); in iwl_mvm_realloc_queues_after_restart()
1341 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_add_sta() local
1353 sta_id = mvm_sta->sta_id; in iwl_mvm_add_sta()
1358 spin_lock_init(&mvm_sta->lock); in iwl_mvm_add_sta()
1364 .type = mvm_sta->sta_type, in iwl_mvm_add_sta()
1376 iwl_mvm_realloc_queues_after_restart(mvm, mvm_sta); in iwl_mvm_add_sta()
1382 mvm_sta->sta_id = sta_id; in iwl_mvm_add_sta()
1383 mvm_sta->mac_id_n_color = FW_CMD_ID_AND_COLOR(mvmvif->id, in iwl_mvm_add_sta()
1385 mvm_sta->vif = vif; in iwl_mvm_add_sta()
1387 mvm_sta->max_agg_bufsize = LINK_QUAL_AGG_FRAME_LIMIT_DEF; in iwl_mvm_add_sta()
1389 mvm_sta->max_agg_bufsize = LINK_QUAL_AGG_FRAME_LIMIT_GEN2_DEF; in iwl_mvm_add_sta()
1390 mvm_sta->tx_protection = 0; in iwl_mvm_add_sta()
1391 mvm_sta->tt_tx_protection = false; in iwl_mvm_add_sta()
1392 mvm_sta->sta_type = sta->tdls ? IWL_STA_TDLS_LINK : IWL_STA_LINK; in iwl_mvm_add_sta()
1395 mvm_sta->tid_disable_agg = 0xffff; /* No aggs at first */ in iwl_mvm_add_sta()
1396 mvm_sta->tfd_queue_msk = 0; in iwl_mvm_add_sta()
1400 u16 seq = mvm_sta->tid_data[i].seq_number; in iwl_mvm_add_sta()
1401 memset(&mvm_sta->tid_data[i], 0, sizeof(mvm_sta->tid_data[i])); in iwl_mvm_add_sta()
1402 mvm_sta->tid_data[i].seq_number = seq; in iwl_mvm_add_sta()
1408 mvm_sta->tid_data[i].txq_id = IWL_MVM_INVALID_QUEUE; in iwl_mvm_add_sta()
1409 skb_queue_head_init(&mvm_sta->tid_data[i].deferred_tx_frames); in iwl_mvm_add_sta()
1411 mvm_sta->deferred_traffic_tid_map = 0; in iwl_mvm_add_sta()
1412 mvm_sta->agg_tids = 0; in iwl_mvm_add_sta()
1434 mvm_sta->dup_data = dup_data; in iwl_mvm_add_sta()
1449 iwl_mvm_rs_add_sta(mvm, mvm_sta); in iwl_mvm_add_sta()
1544 struct iwl_mvm_sta *mvm_sta) in iwl_mvm_disable_sta_queues() argument
1551 for (i = 0; i < ARRAY_SIZE(mvm_sta->tid_data); i++) { in iwl_mvm_disable_sta_queues()
1552 if (mvm_sta->tid_data[i].txq_id == IWL_MVM_INVALID_QUEUE) in iwl_mvm_disable_sta_queues()
1556 iwl_mvm_disable_txq(mvm, mvm_sta->tid_data[i].txq_id, in iwl_mvm_disable_sta_queues()
1558 mvm_sta->tid_data[i].txq_id = IWL_MVM_INVALID_QUEUE; in iwl_mvm_disable_sta_queues()
1563 struct iwl_mvm_sta *mvm_sta) in iwl_mvm_wait_sta_queues_empty() argument
1567 for (i = 0; i < ARRAY_SIZE(mvm_sta->tid_data); i++) { in iwl_mvm_wait_sta_queues_empty()
1571 spin_lock_bh(&mvm_sta->lock); in iwl_mvm_wait_sta_queues_empty()
1572 txq_id = mvm_sta->tid_data[i].txq_id; in iwl_mvm_wait_sta_queues_empty()
1573 spin_unlock_bh(&mvm_sta->lock); in iwl_mvm_wait_sta_queues_empty()
1591 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_rm_sta() local
1592 u8 sta_id = mvm_sta->sta_id; in iwl_mvm_rm_sta()
1598 kfree(mvm_sta->dup_data); in iwl_mvm_rm_sta()
1600 ret = iwl_mvm_drain_sta(mvm, mvm_sta, true); in iwl_mvm_rm_sta()
1605 ret = iwl_mvm_flush_sta(mvm, mvm_sta, false, 0); in iwl_mvm_rm_sta()
1609 ret = iwl_mvm_wait_sta_queues_empty(mvm, mvm_sta); in iwl_mvm_rm_sta()
1611 u32 q_mask = mvm_sta->tfd_queue_msk; in iwl_mvm_rm_sta()
1619 ret = iwl_mvm_drain_sta(mvm, mvm_sta, false); in iwl_mvm_rm_sta()
1621 iwl_mvm_disable_sta_queues(mvm, vif, mvm_sta); in iwl_mvm_rm_sta()
1624 if (mvm_sta->reserved_queue != IEEE80211_INVAL_HW_QUEUE) { in iwl_mvm_rm_sta()
1625 u8 reserved_txq = mvm_sta->reserved_queue; in iwl_mvm_rm_sta()
1674 spin_lock_bh(&mvm_sta->lock); in iwl_mvm_rm_sta()
1675 spin_unlock_bh(&mvm_sta->lock); in iwl_mvm_rm_sta()
1677 ret = iwl_mvm_rm_sta_common(mvm, mvm_sta->sta_id); in iwl_mvm_rm_sta()
1678 RCU_INIT_POINTER(mvm->fw_id_to_mac_id[mvm_sta->sta_id], NULL); in iwl_mvm_rm_sta()
2216 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_sta_rx_agg() local
2270 cmd.mac_id_n_color = cpu_to_le32(mvm_sta->mac_id_n_color); in iwl_mvm_sta_rx_agg()
2271 cmd.sta_id = mvm_sta->sta_id; in iwl_mvm_sta_rx_agg()
2331 baid_data->sta_id = mvm_sta->sta_id; in iwl_mvm_sta_rx_agg()
2333 mvm_sta->tid_to_baid[tid] = baid; in iwl_mvm_sta_rx_agg()
2346 mvm_sta->sta_id, tid, baid); in iwl_mvm_sta_rx_agg()
2350 u8 baid = mvm_sta->tid_to_baid[tid]; in iwl_mvm_sta_rx_agg()
2382 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_sta_tx_agg() local
2390 mvm_sta->tfd_queue_msk |= BIT(queue); in iwl_mvm_sta_tx_agg()
2391 mvm_sta->tid_disable_agg &= ~BIT(tid); in iwl_mvm_sta_tx_agg()
2394 mvm_sta->tid_disable_agg |= BIT(tid); in iwl_mvm_sta_tx_agg()
2397 cmd.mac_id_n_color = cpu_to_le32(mvm_sta->mac_id_n_color); in iwl_mvm_sta_tx_agg()
2398 cmd.sta_id = mvm_sta->sta_id; in iwl_mvm_sta_tx_agg()
2403 cmd.tfd_queue_msk = cpu_to_le32(mvm_sta->tfd_queue_msk); in iwl_mvm_sta_tx_agg()
2404 cmd.tid_disable_tx = cpu_to_le16(mvm_sta->tid_disable_agg); in iwl_mvm_sta_tx_agg()
3120 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in __iwl_mvm_set_sta_key() local
3122 sta_id = mvm_sta->sta_id; in __iwl_mvm_set_sta_key()
3224 struct iwl_mvm_sta *mvm_sta; in iwl_mvm_set_sta_key() local
3234 mvm_sta = iwl_mvm_get_key_sta(mvm, vif, sta); in iwl_mvm_set_sta_key()
3235 if (!mvm_sta) { in iwl_mvm_set_sta_key()
3239 sta_id = mvm_sta->sta_id; in iwl_mvm_set_sta_key()
3325 struct iwl_mvm_sta *mvm_sta; in iwl_mvm_remove_sta_key() local
3332 mvm_sta = iwl_mvm_get_key_sta(mvm, vif, sta); in iwl_mvm_remove_sta_key()
3333 if (mvm_sta) in iwl_mvm_remove_sta_key()
3334 sta_id = mvm_sta->sta_id; in iwl_mvm_remove_sta_key()
3342 if (mvm_sta && (keyconf->cipher == WLAN_CIPHER_SUITE_AES_CMAC || in iwl_mvm_remove_sta_key()
3360 if (sta && !mvm_sta) { in iwl_mvm_remove_sta_key()
3383 struct iwl_mvm_sta *mvm_sta; in iwl_mvm_update_tkip_key() local
3389 mvm_sta = iwl_mvm_get_key_sta(mvm, vif, sta); in iwl_mvm_update_tkip_key()
3390 if (WARN_ON_ONCE(!mvm_sta)) in iwl_mvm_update_tkip_key()
3392 iwl_mvm_send_sta_key(mvm, mvm_sta->sta_id, keyconf, mcast, in iwl_mvm_update_tkip_key()
3541 struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_sta_modify_disable_tx_ap() local
3543 spin_lock_bh(&mvm_sta->lock); in iwl_mvm_sta_modify_disable_tx_ap()
3545 if (mvm_sta->disable_tx == disable) { in iwl_mvm_sta_modify_disable_tx_ap()
3546 spin_unlock_bh(&mvm_sta->lock); in iwl_mvm_sta_modify_disable_tx_ap()
3550 mvm_sta->disable_tx = disable; in iwl_mvm_sta_modify_disable_tx_ap()
3555 iwl_mvm_sta_modify_disable_tx(mvm, mvm_sta, disable); in iwl_mvm_sta_modify_disable_tx_ap()
3557 spin_unlock_bh(&mvm_sta->lock); in iwl_mvm_sta_modify_disable_tx_ap()
3586 struct iwl_mvm_sta *mvm_sta; in iwl_mvm_modify_all_sta_disable_tx() local
3598 mvm_sta = iwl_mvm_sta_from_mac80211(sta); in iwl_mvm_modify_all_sta_disable_tx()
3599 if (mvm_sta->mac_id_n_color != in iwl_mvm_modify_all_sta_disable_tx()