Lines Matching refs:sta

48 			sta_id, priv->stations[sta_id].sta.sta.addr);  in iwl_sta_ucode_activate()
54 sta_id, priv->stations[sta_id].sta.sta.addr); in iwl_sta_ucode_activate()
58 sta_id, priv->stations[sta_id].sta.sta.addr); in iwl_sta_ucode_activate()
103 struct iwl_addsta_cmd *sta, u8 flags) in iwl_send_add_sta() argument
109 .data = { sta, }, in iwl_send_add_sta()
110 .len = { sizeof(*sta), }, in iwl_send_add_sta()
112 u8 sta_id __maybe_unused = sta->sta.sta_id; in iwl_send_add_sta()
117 sta_id, sta->sta.addr, flags & CMD_ASYNC ? "a" : ""); in iwl_send_add_sta()
148 struct ieee80211_sta *sta) in iwl_is_ht40_tx_allowed() argument
159 if (!sta) in iwl_is_ht40_tx_allowed()
162 return sta->bandwidth >= IEEE80211_STA_RX_BW_40; in iwl_is_ht40_tx_allowed()
166 struct ieee80211_sta *sta, in iwl_sta_calc_ht_flags() argument
170 struct ieee80211_sta_ht_cap *sta_ht_inf = &sta->ht_cap; in iwl_sta_calc_ht_flags()
179 if (!sta || !sta_ht_inf->ht_supported) in iwl_sta_calc_ht_flags()
183 sta->addr, in iwl_sta_calc_ht_flags()
184 (sta->smps_mode == IEEE80211_SMPS_STATIC) ? in iwl_sta_calc_ht_flags()
186 (sta->smps_mode == IEEE80211_SMPS_DYNAMIC) ? in iwl_sta_calc_ht_flags()
189 switch (sta->smps_mode) { in iwl_sta_calc_ht_flags()
199 IWL_WARN(priv, "Invalid MIMO PS mode %d\n", sta->smps_mode); in iwl_sta_calc_ht_flags()
209 if (iwl_is_ht40_tx_allowed(priv, ctx, sta)) in iwl_sta_calc_ht_flags()
214 struct ieee80211_sta *sta) in iwl_sta_update_ht() argument
216 u8 sta_id = iwl_sta_id(sta); in iwl_sta_update_ht()
223 iwl_sta_calc_ht_flags(priv, sta, ctx, &flags, &mask); in iwl_sta_update_ht()
226 priv->stations[sta_id].sta.station_flags &= ~mask; in iwl_sta_update_ht()
227 priv->stations[sta_id].sta.station_flags |= flags; in iwl_sta_update_ht()
234 cmd.sta.sta_id = sta_id; in iwl_sta_update_ht()
240 struct ieee80211_sta *sta, in iwl_set_ht_add_station() argument
245 iwl_sta_calc_ht_flags(priv, sta, ctx, &flags, &mask); in iwl_set_ht_add_station()
248 priv->stations[index].sta.station_flags &= ~mask; in iwl_set_ht_add_station()
249 priv->stations[index].sta.station_flags |= flags; in iwl_set_ht_add_station()
258 const u8 *addr, bool is_ap, struct ieee80211_sta *sta) in iwl_prep_station() argument
270 if (ether_addr_equal(priv->stations[i].sta.sta.addr, in iwl_prep_station()
301 ether_addr_equal(priv->stations[sta_id].sta.sta.addr, addr)) { in iwl_prep_station()
314 memset(&station->sta, 0, sizeof(struct iwl_addsta_cmd)); in iwl_prep_station()
315 memcpy(station->sta.sta.addr, addr, ETH_ALEN); in iwl_prep_station()
316 station->sta.mode = 0; in iwl_prep_station()
317 station->sta.sta.sta_id = sta_id; in iwl_prep_station()
318 station->sta.station_flags = ctx->station_flags; in iwl_prep_station()
321 if (sta) { in iwl_prep_station()
324 sta_priv = (void *)sta->drv_priv; in iwl_prep_station()
333 iwl_set_ht_add_station(priv, sta_id, sta, ctx); in iwl_prep_station()
346 struct ieee80211_sta *sta, u8 *sta_id_r) in iwl_add_station_common() argument
354 sta_id = iwl_prep_station(priv, ctx, addr, is_ap, sta); in iwl_add_station_common()
383 memcpy(&sta_cmd, &priv->stations[sta_id].sta, in iwl_add_station_common()
392 priv->stations[sta_id].sta.sta.addr); in iwl_add_station_common()
686 priv->stations[i].sta.sta.addr); in iwl_restore_stations()
687 priv->stations[i].sta.mode = 0; in iwl_restore_stations()
695 memcpy(&sta_cmd, &priv->stations[i].sta, in iwl_restore_stations()
713 priv->stations[i].sta.sta.addr); in iwl_restore_stations()
1079 struct ieee80211_sta *sta) in iwlagn_key_sta_id() argument
1083 if (sta) in iwlagn_key_sta_id()
1084 return iwl_sta_id(sta); in iwlagn_key_sta_id()
1107 memcpy(&sta_cmd, &priv->stations[sta_id].sta, sizeof(sta_cmd)); in iwlagn_send_sta_key()
1145 sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK; in iwlagn_send_sta_key()
1153 struct ieee80211_sta *sta, u32 iv32, u16 *phase1key) in iwl_update_tkip_key() argument
1155 u8 sta_id = iwlagn_key_sta_id(priv, vif, sta); in iwl_update_tkip_key()
1173 struct ieee80211_sta *sta) in iwl_remove_dynamic_key() argument
1176 u8 sta_id = iwlagn_key_sta_id(priv, ctx->vif, sta); in iwl_remove_dynamic_key()
1184 memcpy(&sta_cmd, &priv->stations[sta_id].sta, sizeof(sta_cmd)); in iwl_remove_dynamic_key()
1212 sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK; in iwl_remove_dynamic_key()
1221 struct ieee80211_sta *sta) in iwl_set_dynamic_key() argument
1226 u8 sta_id = iwlagn_key_sta_id(priv, ctx->vif, sta); in iwl_set_dynamic_key()
1242 if (sta) in iwl_set_dynamic_key()
1243 addr = sta->addr; in iwl_set_dynamic_key()
1271 sta ? sta->addr : NULL, ret); in iwl_set_dynamic_key()
1370 priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_TID_DISABLE_TX; in iwl_sta_tx_modify_enable_tid()
1371 priv->stations[sta_id].sta.tid_disable_tx &= cpu_to_le16(~(1 << tid)); in iwl_sta_tx_modify_enable_tid()
1372 priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; in iwl_sta_tx_modify_enable_tid()
1373 memcpy(&sta_cmd, &priv->stations[sta_id].sta, sizeof(struct iwl_addsta_cmd)); in iwl_sta_tx_modify_enable_tid()
1379 int iwl_sta_rx_agg_start(struct iwl_priv *priv, struct ieee80211_sta *sta, in iwl_sta_rx_agg_start() argument
1387 sta_id = iwl_sta_id(sta); in iwl_sta_rx_agg_start()
1392 priv->stations[sta_id].sta.station_flags_msk = 0; in iwl_sta_rx_agg_start()
1393 priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_ADDBA_TID_MSK; in iwl_sta_rx_agg_start()
1394 priv->stations[sta_id].sta.add_immediate_ba_tid = (u8)tid; in iwl_sta_rx_agg_start()
1395 priv->stations[sta_id].sta.add_immediate_ba_ssn = cpu_to_le16(ssn); in iwl_sta_rx_agg_start()
1396 priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; in iwl_sta_rx_agg_start()
1397 memcpy(&sta_cmd, &priv->stations[sta_id].sta, sizeof(struct iwl_addsta_cmd)); in iwl_sta_rx_agg_start()
1403 int iwl_sta_rx_agg_stop(struct iwl_priv *priv, struct ieee80211_sta *sta, in iwl_sta_rx_agg_stop() argument
1411 sta_id = iwl_sta_id(sta); in iwl_sta_rx_agg_stop()
1418 priv->stations[sta_id].sta.station_flags_msk = 0; in iwl_sta_rx_agg_stop()
1419 priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_DELBA_TID_MSK; in iwl_sta_rx_agg_stop()
1420 priv->stations[sta_id].sta.remove_immediate_ba_tid = (u8)tid; in iwl_sta_rx_agg_stop()
1421 priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; in iwl_sta_rx_agg_stop()
1422 memcpy(&sta_cmd, &priv->stations[sta_id].sta, sizeof(struct iwl_addsta_cmd)); in iwl_sta_rx_agg_stop()
1436 .sta.sta_id = sta_id, in iwl_sta_modify_sleep_tx_count()
1437 .sta.modify_mask = STA_MODIFY_SLEEP_TX_COUNT_MSK, in iwl_sta_modify_sleep_tx_count()