Lines Matching refs:mvm
25 void iwl_mvm_te_clear_data(struct iwl_mvm *mvm, in iwl_mvm_te_clear_data() argument
28 lockdep_assert_held(&mvm->time_event_lock); in iwl_mvm_te_clear_data()
49 struct iwl_mvm *mvm = container_of(wk, struct iwl_mvm, roc_done_wk); in iwl_mvm_roc_done_wk() local
58 clear_bit(IWL_MVM_STATUS_ROC_RUNNING, &mvm->status); in iwl_mvm_roc_done_wk()
69 mutex_lock(&mvm->mutex); in iwl_mvm_roc_done_wk()
70 if (test_and_clear_bit(IWL_MVM_STATUS_NEED_FLUSH_P2P, &mvm->status)) { in iwl_mvm_roc_done_wk()
80 if (!WARN_ON(!mvm->p2p_device_vif)) { in iwl_mvm_roc_done_wk()
81 mvmvif = iwl_mvm_vif_from_mac80211(mvm->p2p_device_vif); in iwl_mvm_roc_done_wk()
82 iwl_mvm_flush_sta(mvm, &mvmvif->bcast_sta, true); in iwl_mvm_roc_done_wk()
93 if (test_and_clear_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status)) { in iwl_mvm_roc_done_wk()
95 iwl_mvm_flush_sta(mvm, &mvm->aux_sta, true); in iwl_mvm_roc_done_wk()
100 if (iwl_fw_lookup_cmd_ver(mvm->fw, ADD_STA, 0) >= 12) in iwl_mvm_roc_done_wk()
101 iwl_mvm_rm_aux_sta(mvm); in iwl_mvm_roc_done_wk()
104 mutex_unlock(&mvm->mutex); in iwl_mvm_roc_done_wk()
107 static void iwl_mvm_roc_finished(struct iwl_mvm *mvm) in iwl_mvm_roc_finished() argument
116 schedule_work(&mvm->roc_done_wk); in iwl_mvm_roc_finished()
119 static void iwl_mvm_csa_noa_start(struct iwl_mvm *mvm) in iwl_mvm_csa_noa_start() argument
125 csa_vif = rcu_dereference(mvm->csa_vif); in iwl_mvm_csa_noa_start()
129 IWL_DEBUG_TE(mvm, "CSA NOA started\n"); in iwl_mvm_csa_noa_start()
138 IWL_WARN(mvm, "CSA NOA started too early\n"); in iwl_mvm_csa_noa_start()
146 RCU_INIT_POINTER(mvm->csa_vif, NULL); in iwl_mvm_csa_noa_start()
154 static bool iwl_mvm_te_check_disconnect(struct iwl_mvm *mvm, in iwl_mvm_te_check_disconnect() argument
167 IWL_ERR(mvm, "%s\n", errmsg); in iwl_mvm_te_check_disconnect()
173 mvmsta = iwl_mvm_sta_from_staid_rcu(mvm, mvmvif->ap_sta_id); in iwl_mvm_te_check_disconnect()
175 iwl_mvm_sta_modify_disable_tx(mvm, mvmsta, false); in iwl_mvm_te_check_disconnect()
184 iwl_dbg_tlv_time_point(&mvm->fwrt, in iwl_mvm_te_check_disconnect()
189 iwl_mvm_connection_loss(mvm, vif, errmsg); in iwl_mvm_te_check_disconnect()
194 iwl_mvm_te_handle_notify_csa(struct iwl_mvm *mvm, in iwl_mvm_te_handle_notify_csa() argument
202 IWL_DEBUG_TE(mvm, "CSA time event failed to start\n"); in iwl_mvm_te_handle_notify_csa()
208 iwl_mvm_csa_noa_start(mvm); in iwl_mvm_te_handle_notify_csa()
212 iwl_mvm_connection_loss(mvm, vif, in iwl_mvm_te_handle_notify_csa()
216 iwl_mvm_csa_client_absent(mvm, te_data->vif); in iwl_mvm_te_handle_notify_csa()
227 iwl_mvm_te_clear_data(mvm, te_data); in iwl_mvm_te_handle_notify_csa()
230 static void iwl_mvm_te_check_trigger(struct iwl_mvm *mvm, in iwl_mvm_te_check_trigger() argument
238 trig = iwl_fw_dbg_trigger_on(&mvm->fwrt, in iwl_mvm_te_check_trigger()
258 iwl_fw_dbg_collect_trig(&mvm->fwrt, trig, in iwl_mvm_te_check_trigger()
267 static void iwl_mvm_p2p_roc_finished(struct iwl_mvm *mvm) in iwl_mvm_p2p_roc_finished() argument
275 if (!test_and_set_bit(IWL_MVM_STATUS_NEED_FLUSH_P2P, &mvm->status)) in iwl_mvm_p2p_roc_finished()
276 iwl_mvm_roc_finished(mvm); in iwl_mvm_p2p_roc_finished()
286 static void iwl_mvm_te_handle_notif(struct iwl_mvm *mvm, in iwl_mvm_te_handle_notif() argument
290 lockdep_assert_held(&mvm->time_event_lock); in iwl_mvm_te_handle_notif()
292 IWL_DEBUG_TE(mvm, "Handle time event notif - UID = 0x%x action %d\n", in iwl_mvm_te_handle_notif()
296 iwl_mvm_te_check_trigger(mvm, notif, te_data); in iwl_mvm_te_handle_notif()
314 IWL_DEBUG_TE(mvm, "%s\n", msg); in iwl_mvm_te_handle_notif()
316 if (iwl_mvm_te_check_disconnect(mvm, te_data->vif, msg)) { in iwl_mvm_te_handle_notif()
317 iwl_mvm_te_clear_data(mvm, te_data); in iwl_mvm_te_handle_notif()
323 IWL_DEBUG_TE(mvm, in iwl_mvm_te_handle_notif()
329 ieee80211_remain_on_channel_expired(mvm->hw); in iwl_mvm_te_handle_notif()
330 iwl_mvm_p2p_roc_finished(mvm); in iwl_mvm_te_handle_notif()
339 IWL_DEBUG_TE(mvm, in iwl_mvm_te_handle_notif()
348 iwl_mvm_te_check_disconnect(mvm, te_data->vif, in iwl_mvm_te_handle_notif()
357 iwl_mvm_te_clear_data(mvm, te_data); in iwl_mvm_te_handle_notif()
363 set_bit(IWL_MVM_STATUS_ROC_RUNNING, &mvm->status); in iwl_mvm_te_handle_notif()
364 ieee80211_ready_on_channel(mvm->hw); in iwl_mvm_te_handle_notif()
366 iwl_mvm_te_handle_notify_csa(mvm, te_data, notif); in iwl_mvm_te_handle_notif()
369 IWL_WARN(mvm, "Got TE with unknown action\n"); in iwl_mvm_te_handle_notif()
376 static int iwl_mvm_aux_roc_te_handle_notif(struct iwl_mvm *mvm, in iwl_mvm_aux_roc_te_handle_notif() argument
382 list_for_each_entry_safe(te_data, tmp, &mvm->aux_roc_te_list, list) { in iwl_mvm_aux_roc_te_handle_notif()
391 iwl_mvm_te_check_trigger(mvm, notif, te_data); in iwl_mvm_aux_roc_te_handle_notif()
393 IWL_DEBUG_TE(mvm, in iwl_mvm_aux_roc_te_handle_notif()
401 ieee80211_remain_on_channel_expired(mvm->hw); in iwl_mvm_aux_roc_te_handle_notif()
402 iwl_mvm_roc_finished(mvm); /* flush aux queue */ in iwl_mvm_aux_roc_te_handle_notif()
409 set_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status); in iwl_mvm_aux_roc_te_handle_notif()
411 ieee80211_ready_on_channel(mvm->hw); /* Start TE */ in iwl_mvm_aux_roc_te_handle_notif()
413 IWL_DEBUG_TE(mvm, in iwl_mvm_aux_roc_te_handle_notif()
425 void iwl_mvm_rx_time_event_notif(struct iwl_mvm *mvm, in iwl_mvm_rx_time_event_notif() argument
432 IWL_DEBUG_TE(mvm, "Time event notification - UID = 0x%x action %d\n", in iwl_mvm_rx_time_event_notif()
436 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_rx_time_event_notif()
438 if (!iwl_mvm_aux_roc_te_handle_notif(mvm, notif)) in iwl_mvm_rx_time_event_notif()
441 list_for_each_entry_safe(te_data, tmp, &mvm->time_event_list, list) { in iwl_mvm_rx_time_event_notif()
443 iwl_mvm_te_handle_notif(mvm, te_data, notif); in iwl_mvm_rx_time_event_notif()
446 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_rx_time_event_notif()
452 struct iwl_mvm *mvm = in iwl_mvm_te_notif() local
462 IWL_ERR(mvm, "Invalid TIME_EVENT_NOTIFICATION response\n"); in iwl_mvm_te_notif()
472 IWL_DEBUG_TE(mvm, "TIME_EVENT_NOTIFICATION response - UID = 0x%x\n", in iwl_mvm_te_notif()
475 IWL_ERR(mvm, in iwl_mvm_te_notif()
484 struct iwl_mvm *mvm = in iwl_mvm_time_event_response() local
494 IWL_ERR(mvm, "Invalid TIME_EVENT_CMD response\n"); in iwl_mvm_time_event_response()
505 IWL_DEBUG_TE(mvm, "TIME_EVENT_CMD response - UID = 0x%x\n", in iwl_mvm_time_event_response()
510 static int iwl_mvm_time_event_send_add(struct iwl_mvm *mvm, in iwl_mvm_time_event_send_add() argument
519 lockdep_assert_held(&mvm->mutex); in iwl_mvm_time_event_send_add()
521 IWL_DEBUG_TE(mvm, "Add new TE, duration %d TU\n", in iwl_mvm_time_event_send_add()
524 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_time_event_send_add()
526 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_time_event_send_add()
532 list_add_tail(&te_data->list, &mvm->time_event_list); in iwl_mvm_time_event_send_add()
533 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_time_event_send_add()
544 iwl_init_notification_wait(&mvm->notif_wait, &wait_time_event, in iwl_mvm_time_event_send_add()
549 ret = iwl_mvm_send_cmd_pdu(mvm, TIME_EVENT_CMD, 0, in iwl_mvm_time_event_send_add()
552 IWL_ERR(mvm, "Couldn't send TIME_EVENT_CMD: %d\n", ret); in iwl_mvm_time_event_send_add()
553 iwl_remove_notification(&mvm->notif_wait, &wait_time_event); in iwl_mvm_time_event_send_add()
558 ret = iwl_wait_notification(&mvm->notif_wait, &wait_time_event, 1); in iwl_mvm_time_event_send_add()
564 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_time_event_send_add()
565 iwl_mvm_te_clear_data(mvm, te_data); in iwl_mvm_time_event_send_add()
566 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_time_event_send_add()
571 void iwl_mvm_protect_session(struct iwl_mvm *mvm, in iwl_mvm_protect_session() argument
582 lockdep_assert_held(&mvm->mutex); in iwl_mvm_protect_session()
586 IWL_DEBUG_TE(mvm, "We have enough time in the current TE: %u\n", in iwl_mvm_protect_session()
592 IWL_DEBUG_TE(mvm, "extend 0x%x: only %u ms left\n", in iwl_mvm_protect_session()
603 iwl_mvm_stop_session_protection(mvm, vif); in iwl_mvm_protect_session()
624 iwl_mvm_time_event_send_add(mvm, vif, te_data, &time_cmd); in iwl_mvm_protect_session()
632 iwl_init_notification_wait(&mvm->notif_wait, &wait_te_notif, in iwl_mvm_protect_session()
638 if (iwl_mvm_time_event_send_add(mvm, vif, te_data, &time_cmd)) { in iwl_mvm_protect_session()
639 IWL_ERR(mvm, "Failed to add TE to protect session\n"); in iwl_mvm_protect_session()
640 iwl_remove_notification(&mvm->notif_wait, &wait_te_notif); in iwl_mvm_protect_session()
641 } else if (iwl_wait_notification(&mvm->notif_wait, &wait_te_notif, in iwl_mvm_protect_session()
643 IWL_ERR(mvm, "Failed to protect session until TE\n"); in iwl_mvm_protect_session()
647 static void iwl_mvm_cancel_session_protection(struct iwl_mvm *mvm, in iwl_mvm_cancel_session_protection() argument
660 ret = iwl_mvm_send_cmd_pdu(mvm, in iwl_mvm_cancel_session_protection()
664 IWL_ERR(mvm, in iwl_mvm_cancel_session_protection()
668 static bool __iwl_mvm_remove_time_event(struct iwl_mvm *mvm, in __iwl_mvm_remove_time_event() argument
686 spin_lock_bh(&mvm->time_event_lock); in __iwl_mvm_remove_time_event()
695 iwl_mvm_te_clear_data(mvm, te_data); in __iwl_mvm_remove_time_event()
696 spin_unlock_bh(&mvm->time_event_lock); in __iwl_mvm_remove_time_event()
703 if (fw_has_capa(&mvm->fw->ucode_capa, in __iwl_mvm_remove_time_event()
708 iwl_mvm_cancel_session_protection(mvm, mvmvif, id); in __iwl_mvm_remove_time_event()
710 iwl_mvm_p2p_roc_finished(mvm); in __iwl_mvm_remove_time_event()
720 IWL_DEBUG_TE(mvm, "TE 0x%x has already ended\n", *uid); in __iwl_mvm_remove_time_event()
734 static void iwl_mvm_remove_aux_roc_te(struct iwl_mvm *mvm, in iwl_mvm_remove_aux_roc_te() argument
739 u16 len = sizeof(aux_cmd) - iwl_mvm_chan_info_padding(mvm); in iwl_mvm_remove_aux_roc_te()
744 if (!__iwl_mvm_remove_time_event(mvm, te_data, &uid)) in iwl_mvm_remove_aux_roc_te()
751 IWL_DEBUG_TE(mvm, "Removing BSS AUX ROC TE 0x%x\n", in iwl_mvm_remove_aux_roc_te()
753 ret = iwl_mvm_send_cmd_pdu(mvm, HOT_SPOT_CMD, 0, in iwl_mvm_remove_aux_roc_te()
765 void iwl_mvm_remove_time_event(struct iwl_mvm *mvm, in iwl_mvm_remove_time_event() argument
773 if (!__iwl_mvm_remove_time_event(mvm, te_data, &uid)) in iwl_mvm_remove_time_event()
782 IWL_DEBUG_TE(mvm, "Removing TE 0x%x\n", le32_to_cpu(time_cmd.id)); in iwl_mvm_remove_time_event()
783 ret = iwl_mvm_send_cmd_pdu(mvm, TIME_EVENT_CMD, 0, in iwl_mvm_remove_time_event()
786 IWL_ERR(mvm, "Couldn't remove the time event\n"); in iwl_mvm_remove_time_event()
789 void iwl_mvm_stop_session_protection(struct iwl_mvm *mvm, in iwl_mvm_stop_session_protection() argument
796 lockdep_assert_held(&mvm->mutex); in iwl_mvm_stop_session_protection()
798 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_stop_session_protection()
800 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_stop_session_protection()
802 if (fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_stop_session_protection()
805 IWL_DEBUG_TE(mvm, in iwl_mvm_stop_session_protection()
811 IWL_DEBUG_TE(mvm, in iwl_mvm_stop_session_protection()
817 iwl_mvm_remove_time_event(mvm, mvmvif, te_data); in iwl_mvm_stop_session_protection()
820 void iwl_mvm_rx_session_protect_notif(struct iwl_mvm *mvm, in iwl_mvm_rx_session_protect_notif() argument
829 vif = iwl_mvm_rcu_dereference_vif_id(mvm, le32_to_cpu(notif->mac_id), in iwl_mvm_rx_session_protect_notif()
843 iwl_mvm_te_check_disconnect(mvm, vif, in iwl_mvm_rx_session_protect_notif()
845 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_rx_session_protect_notif()
846 iwl_mvm_te_clear_data(mvm, te_data); in iwl_mvm_rx_session_protect_notif()
847 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_rx_session_protect_notif()
851 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_rx_session_protect_notif()
855 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_rx_session_protect_notif()
861 iwl_mvm_te_check_disconnect(mvm, vif, in iwl_mvm_rx_session_protect_notif()
865 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_rx_session_protect_notif()
866 iwl_mvm_te_clear_data(mvm, te_data); in iwl_mvm_rx_session_protect_notif()
867 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_rx_session_protect_notif()
876 ieee80211_remain_on_channel_expired(mvm->hw); in iwl_mvm_rx_session_protect_notif()
877 iwl_mvm_p2p_roc_finished(mvm); in iwl_mvm_rx_session_protect_notif()
882 set_bit(IWL_MVM_STATUS_ROC_RUNNING, &mvm->status); in iwl_mvm_rx_session_protect_notif()
883 ieee80211_ready_on_channel(mvm->hw); /* Start TE */ in iwl_mvm_rx_session_protect_notif()
891 iwl_mvm_start_p2p_roc_session_protection(struct iwl_mvm *mvm, in iwl_mvm_start_p2p_roc_session_protection() argument
905 lockdep_assert_held(&mvm->mutex); in iwl_mvm_start_p2p_roc_session_protection()
925 return iwl_mvm_send_cmd_pdu(mvm, in iwl_mvm_start_p2p_roc_session_protection()
930 int iwl_mvm_start_p2p_roc(struct iwl_mvm *mvm, struct ieee80211_vif *vif, in iwl_mvm_start_p2p_roc() argument
937 lockdep_assert_held(&mvm->mutex); in iwl_mvm_start_p2p_roc()
939 IWL_WARN(mvm, "P2P_DEVICE remain on channel already running\n"); in iwl_mvm_start_p2p_roc()
943 if (fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_start_p2p_roc()
945 return iwl_mvm_start_p2p_roc_session_protection(mvm, vif, in iwl_mvm_start_p2p_roc()
982 return iwl_mvm_time_event_send_add(mvm, vif, te_data, &time_cmd); in iwl_mvm_start_p2p_roc()
985 static struct iwl_mvm_time_event_data *iwl_mvm_get_roc_te(struct iwl_mvm *mvm) in iwl_mvm_get_roc_te() argument
989 lockdep_assert_held(&mvm->mutex); in iwl_mvm_get_roc_te()
991 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_get_roc_te()
1000 list_for_each_entry(te_data, &mvm->time_event_list, list) { in iwl_mvm_get_roc_te()
1008 te_data = list_first_entry_or_null(&mvm->aux_roc_te_list, in iwl_mvm_get_roc_te()
1012 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_get_roc_te()
1016 void iwl_mvm_cleanup_roc_te(struct iwl_mvm *mvm) in iwl_mvm_cleanup_roc_te() argument
1021 te_data = iwl_mvm_get_roc_te(mvm); in iwl_mvm_cleanup_roc_te()
1023 __iwl_mvm_remove_time_event(mvm, te_data, &uid); in iwl_mvm_cleanup_roc_te()
1026 void iwl_mvm_stop_roc(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_stop_roc() argument
1031 if (fw_has_capa(&mvm->fw->ucode_capa, in iwl_mvm_stop_roc()
1036 iwl_mvm_cancel_session_protection(mvm, mvmvif, in iwl_mvm_stop_roc()
1038 iwl_mvm_p2p_roc_finished(mvm); in iwl_mvm_stop_roc()
1040 iwl_mvm_remove_aux_roc_te(mvm, mvmvif, in iwl_mvm_stop_roc()
1042 iwl_mvm_roc_finished(mvm); in iwl_mvm_stop_roc()
1048 te_data = iwl_mvm_get_roc_te(mvm); in iwl_mvm_stop_roc()
1050 IWL_WARN(mvm, "No remain on channel event\n"); in iwl_mvm_stop_roc()
1057 iwl_mvm_remove_time_event(mvm, mvmvif, te_data); in iwl_mvm_stop_roc()
1058 iwl_mvm_p2p_roc_finished(mvm); in iwl_mvm_stop_roc()
1060 iwl_mvm_remove_aux_roc_te(mvm, mvmvif, te_data); in iwl_mvm_stop_roc()
1061 iwl_mvm_roc_finished(mvm); in iwl_mvm_stop_roc()
1065 void iwl_mvm_remove_csa_period(struct iwl_mvm *mvm, in iwl_mvm_remove_csa_period() argument
1072 lockdep_assert_held(&mvm->mutex); in iwl_mvm_remove_csa_period()
1074 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_remove_csa_period()
1076 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_remove_csa_period()
1081 iwl_mvm_remove_time_event(mvm, mvmvif, te_data); in iwl_mvm_remove_csa_period()
1084 int iwl_mvm_schedule_csa_period(struct iwl_mvm *mvm, in iwl_mvm_schedule_csa_period() argument
1092 lockdep_assert_held(&mvm->mutex); in iwl_mvm_schedule_csa_period()
1097 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_schedule_csa_period()
1099 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_schedule_csa_period()
1102 IWL_DEBUG_TE(mvm, "CS period is already scheduled\n"); in iwl_mvm_schedule_csa_period()
1111 iwl_mvm_remove_time_event(mvm, mvmvif, te_data); in iwl_mvm_schedule_csa_period()
1128 return iwl_mvm_time_event_send_add(mvm, vif, te_data, &time_cmd); in iwl_mvm_schedule_csa_period()
1134 struct iwl_mvm *mvm = in iwl_mvm_session_prot_notif() local
1144 IWL_ERR(mvm, "Invalid SESSION_PROTECTION_NOTIF response\n"); in iwl_mvm_session_prot_notif()
1151 IWL_ERR(mvm, in iwl_mvm_session_prot_notif()
1157 void iwl_mvm_schedule_session_protection(struct iwl_mvm *mvm, in iwl_mvm_schedule_session_protection() argument
1175 lockdep_assert_held(&mvm->mutex); in iwl_mvm_schedule_session_protection()
1177 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_schedule_session_protection()
1180 IWL_DEBUG_TE(mvm, "We have enough time in the current TE: %u\n", in iwl_mvm_schedule_session_protection()
1182 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_schedule_session_protection()
1187 iwl_mvm_te_clear_data(mvm, te_data); in iwl_mvm_schedule_session_protection()
1195 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_schedule_session_protection()
1197 IWL_DEBUG_TE(mvm, "Add new session protection, duration %d TU\n", in iwl_mvm_schedule_session_protection()
1201 if (iwl_mvm_send_cmd_pdu(mvm, in iwl_mvm_schedule_session_protection()
1204 IWL_ERR(mvm, in iwl_mvm_schedule_session_protection()
1206 spin_lock_bh(&mvm->time_event_lock); in iwl_mvm_schedule_session_protection()
1207 iwl_mvm_te_clear_data(mvm, te_data); in iwl_mvm_schedule_session_protection()
1208 spin_unlock_bh(&mvm->time_event_lock); in iwl_mvm_schedule_session_protection()
1214 iwl_init_notification_wait(&mvm->notif_wait, &wait_notif, in iwl_mvm_schedule_session_protection()
1218 if (iwl_mvm_send_cmd_pdu(mvm, in iwl_mvm_schedule_session_protection()
1221 IWL_ERR(mvm, in iwl_mvm_schedule_session_protection()
1223 iwl_remove_notification(&mvm->notif_wait, &wait_notif); in iwl_mvm_schedule_session_protection()
1224 } else if (iwl_wait_notification(&mvm->notif_wait, &wait_notif, in iwl_mvm_schedule_session_protection()
1226 IWL_ERR(mvm, in iwl_mvm_schedule_session_protection()