Lines Matching refs:mvm

87 iwl_mvm_ftm_responder_set_ndp(struct iwl_mvm *mvm,  in iwl_mvm_ftm_responder_set_ndp()  argument
105 iwl_mvm_ftm_responder_cmd(struct iwl_mvm *mvm, in iwl_mvm_ftm_responder_cmd() argument
124 u8 cmd_ver = iwl_fw_lookup_cmd_ver(mvm->fw, cmd_id, 6); in iwl_mvm_ftm_responder_cmd()
128 lockdep_assert_held(&mvm->mutex); in iwl_mvm_ftm_responder_cmd()
147 iwl_mvm_ftm_responder_set_ndp(mvm, &cmd); in iwl_mvm_ftm_responder_cmd()
158 IWL_ERR(mvm, "Failed to set responder bandwidth\n"); in iwl_mvm_ftm_responder_cmd()
164 return iwl_mvm_send_cmd_pdu(mvm, cmd_id, 0, cmd_size, &cmd); in iwl_mvm_ftm_responder_cmd()
168 iwl_mvm_ftm_responder_dyn_cfg_v2(struct iwl_mvm *mvm, in iwl_mvm_ftm_responder_dyn_cfg_v2() argument
190 lockdep_assert_held(&mvm->mutex); in iwl_mvm_ftm_responder_dyn_cfg_v2()
193 IWL_ERR(mvm, "LCI/civicloc data too big (%zd + %zd)\n", in iwl_mvm_ftm_responder_dyn_cfg_v2()
209 return iwl_mvm_send_cmd(mvm, &hcmd); in iwl_mvm_ftm_responder_dyn_cfg_v2()
213 iwl_mvm_ftm_responder_dyn_cfg_v3(struct iwl_mvm *mvm, in iwl_mvm_ftm_responder_dyn_cfg_v3() argument
227 lockdep_assert_held(&mvm->mutex); in iwl_mvm_ftm_responder_dyn_cfg_v3()
234 IWL_ERR(mvm, in iwl_mvm_ftm_responder_dyn_cfg_v3()
257 IWL_ERR(mvm, "invalid cipher: %u\n", in iwl_mvm_ftm_responder_dyn_cfg_v3()
268 return iwl_mvm_send_cmd(mvm, &hcmd); in iwl_mvm_ftm_responder_dyn_cfg_v3()
272 iwl_mvm_ftm_responder_dyn_cfg_cmd(struct iwl_mvm *mvm, in iwl_mvm_ftm_responder_dyn_cfg_cmd() argument
277 u8 cmd_ver = iwl_fw_lookup_cmd_ver(mvm->fw, in iwl_mvm_ftm_responder_dyn_cfg_cmd()
283 ret = iwl_mvm_ftm_responder_dyn_cfg_v2(mvm, vif, in iwl_mvm_ftm_responder_dyn_cfg_cmd()
287 ret = iwl_mvm_ftm_responder_dyn_cfg_v3(mvm, vif, in iwl_mvm_ftm_responder_dyn_cfg_cmd()
291 IWL_ERR(mvm, "Unsupported DYN_CONFIG_CMD version %u\n", in iwl_mvm_ftm_responder_dyn_cfg_cmd()
299 static void iwl_mvm_resp_del_pasn_sta(struct iwl_mvm *mvm, in iwl_mvm_resp_del_pasn_sta() argument
304 iwl_mvm_rm_sta_id(mvm, vif, sta->int_sta.sta_id); in iwl_mvm_resp_del_pasn_sta()
305 iwl_mvm_dealloc_int_sta(mvm, &sta->int_sta); in iwl_mvm_resp_del_pasn_sta()
309 int iwl_mvm_ftm_respoder_add_pasn_sta(struct iwl_mvm *mvm, in iwl_mvm_ftm_respoder_add_pasn_sta() argument
320 u8 cmd_ver = iwl_fw_lookup_cmd_ver(mvm->fw, in iwl_mvm_ftm_respoder_add_pasn_sta()
324 lockdep_assert_held(&mvm->mutex); in iwl_mvm_ftm_respoder_add_pasn_sta()
327 IWL_ERR(mvm, "Adding PASN station not supported by FW\n"); in iwl_mvm_ftm_respoder_add_pasn_sta()
333 IWL_ERR(mvm, "invalid cipher: %u\n", cipher); in iwl_mvm_ftm_respoder_add_pasn_sta()
342 ret = iwl_mvm_add_pasn_sta(mvm, vif, &sta->int_sta, addr, in iwl_mvm_ftm_respoder_add_pasn_sta()
350 list_add_tail(&sta->list, &mvm->resp_pasn_list); in iwl_mvm_ftm_respoder_add_pasn_sta()
353 ret = iwl_mvm_ftm_responder_dyn_cfg_v3(mvm, vif, NULL, &hltk_data); in iwl_mvm_ftm_respoder_add_pasn_sta()
355 iwl_mvm_resp_del_pasn_sta(mvm, vif, sta); in iwl_mvm_ftm_respoder_add_pasn_sta()
360 int iwl_mvm_ftm_resp_remove_pasn_sta(struct iwl_mvm *mvm, in iwl_mvm_ftm_resp_remove_pasn_sta() argument
365 lockdep_assert_held(&mvm->mutex); in iwl_mvm_ftm_resp_remove_pasn_sta()
367 list_for_each_entry_safe(sta, prev, &mvm->resp_pasn_list, list) { in iwl_mvm_ftm_resp_remove_pasn_sta()
369 iwl_mvm_resp_del_pasn_sta(mvm, vif, sta); in iwl_mvm_ftm_resp_remove_pasn_sta()
374 IWL_ERR(mvm, "FTM: PASN station %pM not found\n", addr); in iwl_mvm_ftm_resp_remove_pasn_sta()
378 int iwl_mvm_ftm_start_responder(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_ftm_start_responder() argument
389 lockdep_assert_held(&mvm->mutex); in iwl_mvm_ftm_start_responder()
396 IWL_ERR(mvm, "Cannot start responder, not in AP mode\n"); in iwl_mvm_ftm_start_responder()
409 phy_ctxt = &mvm->phy_ctxts[*phy_ctxt_id]; in iwl_mvm_ftm_start_responder()
410 ret = iwl_mvm_phy_ctxt_changed(mvm, phy_ctxt, &ctx.def, in iwl_mvm_ftm_start_responder()
416 ret = iwl_mvm_ftm_responder_cmd(mvm, vif, &ctx.def); in iwl_mvm_ftm_start_responder()
421 ret = iwl_mvm_ftm_responder_dyn_cfg_cmd(mvm, vif, params); in iwl_mvm_ftm_start_responder()
426 void iwl_mvm_ftm_responder_clear(struct iwl_mvm *mvm, in iwl_mvm_ftm_responder_clear() argument
431 lockdep_assert_held(&mvm->mutex); in iwl_mvm_ftm_responder_clear()
433 list_for_each_entry_safe(sta, prev, &mvm->resp_pasn_list, list) in iwl_mvm_ftm_responder_clear()
434 iwl_mvm_resp_del_pasn_sta(mvm, vif, sta); in iwl_mvm_ftm_responder_clear()
437 void iwl_mvm_ftm_restart_responder(struct iwl_mvm *mvm, in iwl_mvm_ftm_restart_responder() argument
443 iwl_mvm_ftm_responder_clear(mvm, vif); in iwl_mvm_ftm_restart_responder()
444 iwl_mvm_ftm_start_responder(mvm, vif); in iwl_mvm_ftm_restart_responder()
447 void iwl_mvm_ftm_responder_stats(struct iwl_mvm *mvm, in iwl_mvm_ftm_responder_stats() argument
452 struct cfg80211_ftm_responder_stats *stats = &mvm->ftm_resp_stats; in iwl_mvm_ftm_responder_stats()