Lines Matching refs:mvm
81 struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); in iwl_mvm_set_rekey_data() local
87 mutex_lock(&mvm->mutex); in iwl_mvm_set_rekey_data()
95 mutex_unlock(&mvm->mutex); in iwl_mvm_set_rekey_data()
149 struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); in iwl_mvm_wowlan_program_keys() local
161 mutex_lock(&mvm->mutex); in iwl_mvm_wowlan_program_keys()
198 ret = iwl_mvm_send_cmd_pdu(mvm, WEP_KEY, 0, sizeof(wkc), &wkc); in iwl_mvm_wowlan_program_keys()
201 mvm->ptk_ivlen = key->iv_len; in iwl_mvm_wowlan_program_keys()
202 mvm->ptk_icvlen = key->icv_len; in iwl_mvm_wowlan_program_keys()
203 mvm->gtk_ivlen = key->iv_len; in iwl_mvm_wowlan_program_keys()
204 mvm->gtk_icvlen = key->icv_len; in iwl_mvm_wowlan_program_keys()
312 mvm->ptk_ivlen = key->iv_len; in iwl_mvm_wowlan_program_keys()
313 mvm->ptk_icvlen = key->icv_len; in iwl_mvm_wowlan_program_keys()
314 ret = iwl_mvm_set_sta_key(mvm, vif, sta, key, 0); in iwl_mvm_wowlan_program_keys()
322 mvm->gtk_ivlen = key->iv_len; in iwl_mvm_wowlan_program_keys()
323 mvm->gtk_icvlen = key->icv_len; in iwl_mvm_wowlan_program_keys()
324 ret = iwl_mvm_set_sta_key(mvm, vif, sta, key, 1); in iwl_mvm_wowlan_program_keys()
329 mutex_unlock(&mvm->mutex); in iwl_mvm_wowlan_program_keys()
332 static int iwl_mvm_send_patterns(struct iwl_mvm *mvm, in iwl_mvm_send_patterns() argument
368 err = iwl_mvm_send_cmd(mvm, &cmd); in iwl_mvm_send_patterns()
506 static int iwl_mvm_send_remote_wake_cfg(struct iwl_mvm *mvm, in iwl_mvm_send_remote_wake_cfg() argument
592 ret = iwl_mvm_send_cmd(mvm, &cmd); in iwl_mvm_send_remote_wake_cfg()
598 static int iwl_mvm_d3_reprogram(struct iwl_mvm *mvm, struct ieee80211_vif *vif, in iwl_mvm_d3_reprogram() argument
625 ret = iwl_mvm_phy_ctxt_add(mvm, mvmvif->phy_ctxt, &chandef, in iwl_mvm_d3_reprogram()
636 ret = iwl_mvm_mac_ctxt_add(mvm, vif); in iwl_mvm_d3_reprogram()
654 ret = iwl_mvm_send_cmd_pdu_status(mvm, BINDING_CONTEXT_CMD, in iwl_mvm_d3_reprogram()
658 IWL_ERR(mvm, "Failed to add binding: %d\n", ret); in iwl_mvm_d3_reprogram()
663 IWL_ERR(mvm, "Binding command failed: %u\n", status); in iwl_mvm_d3_reprogram()
667 ret = iwl_mvm_sta_send_to_fw(mvm, ap_sta, false); in iwl_mvm_d3_reprogram()
670 rcu_assign_pointer(mvm->fw_id_to_mac_id[mvmvif->ap_sta_id], ap_sta); in iwl_mvm_d3_reprogram()
672 ret = iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL); in iwl_mvm_d3_reprogram()
686 ret = iwl_mvm_send_cmd_pdu(mvm, TIME_QUOTA_CMD, 0, in iwl_mvm_d3_reprogram()
689 IWL_ERR(mvm, "Failed to send quota: %d\n", ret); in iwl_mvm_d3_reprogram()
691 if (iwl_mvm_is_lar_supported(mvm) && iwl_mvm_init_fw_regd(mvm)) in iwl_mvm_d3_reprogram()
692 IWL_ERR(mvm, "Failed to initialize D3 LAR information\n"); in iwl_mvm_d3_reprogram()
697 static int iwl_mvm_get_last_nonqos_seq(struct iwl_mvm *mvm, in iwl_mvm_get_last_nonqos_seq() argument
717 err = iwl_mvm_send_cmd(mvm, &cmd); in iwl_mvm_get_last_nonqos_seq()
734 void iwl_mvm_set_last_nonqos_seq(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_set_last_nonqos_seq() argument
751 if (iwl_mvm_send_cmd_pdu(mvm, NON_QOS_TX_COUNTER_CMD, 0, in iwl_mvm_set_last_nonqos_seq()
753 IWL_ERR(mvm, "failed to set non-QoS seqno\n"); in iwl_mvm_set_last_nonqos_seq()
756 static int iwl_mvm_switch_to_d3(struct iwl_mvm *mvm) in iwl_mvm_switch_to_d3() argument
758 iwl_mvm_scan_stop(mvm, IWL_MVM_SCAN_REGULAR, true); in iwl_mvm_switch_to_d3()
760 iwl_trans_stop_device(mvm->trans); in iwl_mvm_switch_to_d3()
772 set_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status); in iwl_mvm_switch_to_d3()
774 mvm->ptk_ivlen = 0; in iwl_mvm_switch_to_d3()
775 mvm->ptk_icvlen = 0; in iwl_mvm_switch_to_d3()
776 mvm->ptk_ivlen = 0; in iwl_mvm_switch_to_d3()
777 mvm->ptk_icvlen = 0; in iwl_mvm_switch_to_d3()
779 return iwl_mvm_load_d3_fw(mvm); in iwl_mvm_switch_to_d3()
783 iwl_mvm_get_wowlan_config(struct iwl_mvm *mvm, in iwl_mvm_get_wowlan_config() argument
798 ret = iwl_mvm_get_last_nonqos_seq(mvm, vif); in iwl_mvm_get_wowlan_config()
846 iwl_mvm_wowlan_config(struct iwl_mvm *mvm, in iwl_mvm_wowlan_config() argument
861 ret = iwl_mvm_switch_to_d3(mvm); in iwl_mvm_wowlan_config()
865 ret = iwl_mvm_d3_reprogram(mvm, vif, ap_sta); in iwl_mvm_wowlan_config()
879 mutex_unlock(&mvm->mutex); in iwl_mvm_wowlan_config()
880 ieee80211_iter_keys(mvm->hw, vif, in iwl_mvm_wowlan_config()
883 mutex_lock(&mvm->mutex); in iwl_mvm_wowlan_config()
897 ret = iwl_mvm_send_cmd(mvm, &rsc_tsc_cmd); in iwl_mvm_wowlan_config()
903 ret = iwl_mvm_send_cmd_pdu(mvm, in iwl_mvm_wowlan_config()
921 ret = iwl_mvm_send_cmd_pdu(mvm, in iwl_mvm_wowlan_config()
930 ret = iwl_mvm_send_cmd_pdu(mvm, WOWLAN_CONFIGURATION, 0, in iwl_mvm_wowlan_config()
936 ret = iwl_mvm_send_patterns(mvm, wowlan); in iwl_mvm_wowlan_config()
940 ret = iwl_mvm_send_proto_offload(mvm, vif, false, 0); in iwl_mvm_wowlan_config()
944 ret = iwl_mvm_send_remote_wake_cfg(mvm, vif, wowlan->tcp); in iwl_mvm_wowlan_config()
952 iwl_mvm_netdetect_config(struct iwl_mvm *mvm, in iwl_mvm_netdetect_config() argument
960 ret = iwl_mvm_switch_to_d3(mvm); in iwl_mvm_netdetect_config()
969 ret = iwl_mvm_send_cmd_pdu(mvm, WOWLAN_CONFIGURATION, 0, in iwl_mvm_netdetect_config()
975 ret = iwl_mvm_sched_scan_start(mvm, vif, nd_config, &mvm->nd_ies, in iwl_mvm_netdetect_config()
980 if (WARN_ON(mvm->nd_match_sets || mvm->nd_channels)) in iwl_mvm_netdetect_config()
985 mvm->nd_match_sets = kmemdup(nd_config->match_sets, in iwl_mvm_netdetect_config()
989 if (mvm->nd_match_sets) in iwl_mvm_netdetect_config()
990 mvm->n_nd_match_sets = nd_config->n_match_sets; in iwl_mvm_netdetect_config()
994 mvm->nd_channels = kmemdup(nd_config->channels, in iwl_mvm_netdetect_config()
998 if (mvm->nd_channels) in iwl_mvm_netdetect_config()
999 mvm->n_nd_channels = nd_config->n_channels; in iwl_mvm_netdetect_config()
1004 static void iwl_mvm_free_nd(struct iwl_mvm *mvm) in iwl_mvm_free_nd() argument
1006 kfree(mvm->nd_match_sets); in iwl_mvm_free_nd()
1007 mvm->nd_match_sets = NULL; in iwl_mvm_free_nd()
1008 mvm->n_nd_match_sets = 0; in iwl_mvm_free_nd()
1009 kfree(mvm->nd_channels); in iwl_mvm_free_nd()
1010 mvm->nd_channels = NULL; in iwl_mvm_free_nd()
1011 mvm->n_nd_channels = 0; in iwl_mvm_free_nd()
1018 struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); in __iwl_mvm_suspend() local
1048 mutex_lock(&mvm->mutex); in __iwl_mvm_suspend()
1050 vif = iwl_mvm_get_bss_vif(mvm); in __iwl_mvm_suspend()
1060 if (!wowlan->nd_config && !mvm->nd_config) { in __iwl_mvm_suspend()
1066 mvm, wowlan, wowlan->nd_config ?: mvm->nd_config, vif); in __iwl_mvm_suspend()
1070 mvm->net_detect = true; in __iwl_mvm_suspend()
1075 mvm->fw_id_to_mac_id[mvmvif->ap_sta_id], in __iwl_mvm_suspend()
1076 lockdep_is_held(&mvm->mutex)); in __iwl_mvm_suspend()
1082 ret = iwl_mvm_get_wowlan_config(mvm, wowlan, &wowlan_config_cmd, in __iwl_mvm_suspend()
1086 ret = iwl_mvm_wowlan_config(mvm, wowlan, &wowlan_config_cmd, in __iwl_mvm_suspend()
1091 mvm->net_detect = false; in __iwl_mvm_suspend()
1094 ret = iwl_mvm_power_update_device(mvm); in __iwl_mvm_suspend()
1098 ret = iwl_mvm_power_update_mac(mvm); in __iwl_mvm_suspend()
1103 if (mvm->d3_wake_sysassert) in __iwl_mvm_suspend()
1109 ret = iwl_mvm_send_cmd(mvm, &d3_cfg_cmd); in __iwl_mvm_suspend()
1115 mvm->d3_test_pme_ptr = in __iwl_mvm_suspend()
1121 clear_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status); in __iwl_mvm_suspend()
1123 iwl_trans_d3_suspend(mvm->trans, test); in __iwl_mvm_suspend()
1126 iwl_mvm_ref(mvm, IWL_MVM_REF_UCODE_DOWN); in __iwl_mvm_suspend()
1127 ieee80211_restart_hw(mvm->hw); in __iwl_mvm_suspend()
1128 iwl_mvm_free_nd(mvm); in __iwl_mvm_suspend()
1131 mutex_unlock(&mvm->mutex); in __iwl_mvm_suspend()
1136 static int iwl_mvm_enter_d0i3_sync(struct iwl_mvm *mvm) in iwl_mvm_enter_d0i3_sync() argument
1142 iwl_init_notification_wait(&mvm->notif_wait, &wait_d3, in iwl_mvm_enter_d0i3_sync()
1146 ret = iwl_mvm_enter_d0i3(mvm->hw->priv); in iwl_mvm_enter_d0i3_sync()
1150 ret = iwl_wait_notification(&mvm->notif_wait, &wait_d3, HZ); in iwl_mvm_enter_d0i3_sync()
1155 iwl_remove_notification(&mvm->notif_wait, &wait_d3); in iwl_mvm_enter_d0i3_sync()
1161 struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); in iwl_mvm_suspend() local
1165 flush_work(&mvm->d0i3_exit_work); in iwl_mvm_suspend()
1167 ret = iwl_trans_suspend(mvm->trans); in iwl_mvm_suspend()
1171 mvm->trans->wowlan_d0i3 = wowlan->any; in iwl_mvm_suspend()
1172 if (mvm->trans->wowlan_d0i3) { in iwl_mvm_suspend()
1174 if (mvm->trans->d0i3_mode == IWL_D0I3_MODE_ON_SUSPEND) { in iwl_mvm_suspend()
1175 ret = iwl_mvm_enter_d0i3_sync(mvm); in iwl_mvm_suspend()
1181 mutex_lock(&mvm->d0i3_suspend_mutex); in iwl_mvm_suspend()
1182 __set_bit(D0I3_DEFER_WAKEUP, &mvm->d0i3_suspend_flags); in iwl_mvm_suspend()
1183 mutex_unlock(&mvm->d0i3_suspend_mutex); in iwl_mvm_suspend()
1185 iwl_trans_d3_suspend(mvm->trans, false); in iwl_mvm_suspend()
1203 static void iwl_mvm_report_wakeup_reasons(struct iwl_mvm *mvm, in iwl_mvm_report_wakeup_reasons() argument
1282 ivlen = mvm->gtk_ivlen; in iwl_mvm_report_wakeup_reasons()
1283 icvlen += mvm->gtk_icvlen; in iwl_mvm_report_wakeup_reasons()
1285 ivlen = mvm->ptk_ivlen; in iwl_mvm_report_wakeup_reasons()
1286 icvlen += mvm->ptk_icvlen; in iwl_mvm_report_wakeup_reasons()
1476 static bool iwl_mvm_setup_connection_keep(struct iwl_mvm *mvm, in iwl_mvm_setup_connection_keep() argument
1496 ieee80211_iter_keys(mvm->hw, vif, in iwl_mvm_setup_connection_keep()
1511 ieee80211_iter_keys(mvm->hw, vif, in iwl_mvm_setup_connection_keep()
1562 iwl_mvm_get_wakeup_status(struct iwl_mvm *mvm, struct ieee80211_vif *vif) in iwl_mvm_get_wakeup_status() argument
1564 u32 base = mvm->error_event_table; in iwl_mvm_get_wakeup_status()
1577 iwl_trans_read_mem_bytes(mvm->trans, base, in iwl_mvm_get_wakeup_status()
1581 IWL_INFO(mvm, "error table is valid (%d) with error (%d)\n", in iwl_mvm_get_wakeup_status()
1594 ret = iwl_mvm_send_cmd_pdu(mvm, OFFLOADS_QUERY_CMD, 0, 0, NULL); in iwl_mvm_get_wakeup_status()
1596 IWL_ERR(mvm, "failed to query offload statistics (%d)\n", ret); in iwl_mvm_get_wakeup_status()
1598 ret = iwl_mvm_send_cmd(mvm, &cmd); in iwl_mvm_get_wakeup_status()
1600 IWL_ERR(mvm, "failed to query status (%d)\n", ret); in iwl_mvm_get_wakeup_status()
1614 IWL_ERR(mvm, "Invalid WoWLAN status response!\n"); in iwl_mvm_get_wakeup_status()
1622 IWL_ERR(mvm, "Invalid WoWLAN status response!\n"); in iwl_mvm_get_wakeup_status()
1635 static bool iwl_mvm_query_wakeup_reasons(struct iwl_mvm *mvm, in iwl_mvm_query_wakeup_reasons() argument
1645 fw_status = iwl_mvm_get_wakeup_status(mvm, vif); in iwl_mvm_query_wakeup_reasons()
1662 mvm->fw_id_to_mac_id[0], in iwl_mvm_query_wakeup_reasons()
1663 lockdep_is_held(&mvm->mutex)); in iwl_mvm_query_wakeup_reasons()
1676 mutex_unlock(&mvm->mutex); in iwl_mvm_query_wakeup_reasons()
1678 iwl_mvm_report_wakeup_reasons(mvm, vif, &status); in iwl_mvm_query_wakeup_reasons()
1680 keep = iwl_mvm_setup_connection_keep(mvm, vif, fw_status); in iwl_mvm_query_wakeup_reasons()
1688 mutex_unlock(&mvm->mutex); in iwl_mvm_query_wakeup_reasons()
1698 iwl_mvm_netdetect_query_results(struct iwl_mvm *mvm, in iwl_mvm_netdetect_query_results() argument
1708 ret = iwl_mvm_send_cmd(mvm, &cmd); in iwl_mvm_netdetect_query_results()
1710 IWL_ERR(mvm, "failed to query matched profiles (%d)\n", ret); in iwl_mvm_netdetect_query_results()
1722 IWL_ERR(mvm, "Invalid scan offload profiles query response!\n"); in iwl_mvm_netdetect_query_results()
1733 mvm->last_netdetect_scans = le32_to_cpu(query->n_scans_done); in iwl_mvm_netdetect_query_results()
1741 static void iwl_mvm_query_netdetect_reasons(struct iwl_mvm *mvm, in iwl_mvm_query_netdetect_reasons() argument
1755 fw_status = iwl_mvm_get_wakeup_status(mvm, vif); in iwl_mvm_query_netdetect_reasons()
1767 ret = iwl_mvm_netdetect_query_results(mvm, &query); in iwl_mvm_query_netdetect_reasons()
1774 if (mvm->n_nd_match_sets) { in iwl_mvm_query_netdetect_reasons()
1777 IWL_ERR(mvm, "no net detect match information available\n"); in iwl_mvm_query_netdetect_reasons()
1787 for_each_set_bit(i, &matched_profiles, mvm->n_nd_match_sets) { in iwl_mvm_query_netdetect_reasons()
1808 idx = mvm->n_nd_match_sets - i - 1; in iwl_mvm_query_netdetect_reasons()
1809 match->ssid.ssid_len = mvm->nd_match_sets[idx].ssid.ssid_len; in iwl_mvm_query_netdetect_reasons()
1810 memcpy(match->ssid.ssid, mvm->nd_match_sets[idx].ssid.ssid, in iwl_mvm_query_netdetect_reasons()
1813 if (mvm->n_nd_channels < n_channels) in iwl_mvm_query_netdetect_reasons()
1819 mvm->nd_channels[j]->center_freq; in iwl_mvm_query_netdetect_reasons()
1825 iwl_mvm_free_nd(mvm); in iwl_mvm_query_netdetect_reasons()
1827 mutex_unlock(&mvm->mutex); in iwl_mvm_query_netdetect_reasons()
1837 static void iwl_mvm_read_d3_sram(struct iwl_mvm *mvm) in iwl_mvm_read_d3_sram() argument
1840 const struct fw_img *img = &mvm->fw->img[IWL_UCODE_WOWLAN]; in iwl_mvm_read_d3_sram()
1844 if (!mvm->store_d3_resume_sram) in iwl_mvm_read_d3_sram()
1847 if (!mvm->d3_resume_sram) { in iwl_mvm_read_d3_sram()
1848 mvm->d3_resume_sram = kzalloc(len, GFP_KERNEL); in iwl_mvm_read_d3_sram()
1849 if (!mvm->d3_resume_sram) in iwl_mvm_read_d3_sram()
1853 iwl_trans_read_mem_bytes(mvm->trans, offs, mvm->d3_resume_sram, len); in iwl_mvm_read_d3_sram()
1868 static int __iwl_mvm_resume(struct iwl_mvm *mvm, bool test) in __iwl_mvm_resume() argument
1875 mutex_lock(&mvm->mutex); in __iwl_mvm_resume()
1878 vif = iwl_mvm_get_bss_vif(mvm); in __iwl_mvm_resume()
1882 ret = iwl_trans_d3_resume(mvm->trans, &d3_status, test); in __iwl_mvm_resume()
1887 IWL_INFO(mvm, "Device was reset during suspend\n"); in __iwl_mvm_resume()
1892 iwl_mvm_read_d3_sram(mvm); in __iwl_mvm_resume()
1898 iwl_mvm_update_changed_regdom(mvm); in __iwl_mvm_resume()
1900 if (mvm->net_detect) { in __iwl_mvm_resume()
1901 iwl_mvm_query_netdetect_reasons(mvm, vif); in __iwl_mvm_resume()
1905 keep = iwl_mvm_query_wakeup_reasons(mvm, vif); in __iwl_mvm_resume()
1908 mvm->keep_vif = vif; in __iwl_mvm_resume()
1915 iwl_mvm_free_nd(mvm); in __iwl_mvm_resume()
1916 mutex_unlock(&mvm->mutex); in __iwl_mvm_resume()
1920 ieee80211_iterate_active_interfaces_rtnl(mvm->hw, in __iwl_mvm_resume()
1926 set_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status); in __iwl_mvm_resume()
1927 set_bit(IWL_MVM_STATUS_D3_RECONFIG, &mvm->status); in __iwl_mvm_resume()
1935 iwl_mvm_ref(mvm, IWL_MVM_REF_UCODE_DOWN); in __iwl_mvm_resume()
1939 static int iwl_mvm_resume_d3(struct iwl_mvm *mvm) in iwl_mvm_resume_d3() argument
1941 iwl_trans_resume(mvm->trans); in iwl_mvm_resume_d3()
1943 return __iwl_mvm_resume(mvm, false); in iwl_mvm_resume_d3()
1946 static int iwl_mvm_resume_d0i3(struct iwl_mvm *mvm) in iwl_mvm_resume_d0i3() argument
1951 iwl_trans_d3_resume(mvm->trans, &d3_status, false); in iwl_mvm_resume_d0i3()
1958 mutex_lock(&mvm->d0i3_suspend_mutex); in iwl_mvm_resume_d0i3()
1959 __clear_bit(D0I3_DEFER_WAKEUP, &mvm->d0i3_suspend_flags); in iwl_mvm_resume_d0i3()
1961 &mvm->d0i3_suspend_flags); in iwl_mvm_resume_d0i3()
1962 mutex_unlock(&mvm->d0i3_suspend_mutex); in iwl_mvm_resume_d0i3()
1964 IWL_DEBUG_RPM(mvm, "Run deferred d0i3 exit\n"); in iwl_mvm_resume_d0i3()
1965 _iwl_mvm_exit_d0i3(mvm); in iwl_mvm_resume_d0i3()
1968 iwl_trans_resume(mvm->trans); in iwl_mvm_resume_d0i3()
1970 if (mvm->trans->d0i3_mode == IWL_D0I3_MODE_ON_SUSPEND) { in iwl_mvm_resume_d0i3()
1971 int ret = iwl_mvm_exit_d0i3(mvm->hw->priv); in iwl_mvm_resume_d0i3()
1985 struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); in iwl_mvm_resume() local
1989 return iwl_mvm_resume_d0i3(mvm); in iwl_mvm_resume()
1991 return iwl_mvm_resume_d3(mvm); in iwl_mvm_resume()
1996 struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); in iwl_mvm_set_wakeup() local
1998 device_set_wakeup_enable(mvm->trans->dev, enabled); in iwl_mvm_set_wakeup()
2004 struct iwl_mvm *mvm = inode->i_private; in iwl_mvm_d3_test_open() local
2007 if (mvm->d3_test_active) in iwl_mvm_d3_test_open()
2012 ieee80211_stop_queues(mvm->hw); in iwl_mvm_d3_test_open()
2017 err = __iwl_mvm_suspend(mvm->hw, mvm->hw->wiphy->wowlan_config, true); in iwl_mvm_d3_test_open()
2022 ieee80211_wake_queues(mvm->hw); in iwl_mvm_d3_test_open()
2025 mvm->d3_test_active = true; in iwl_mvm_d3_test_open()
2026 mvm->keep_vif = NULL; in iwl_mvm_d3_test_open()
2033 struct iwl_mvm *mvm = file->private_data; in iwl_mvm_d3_test_read() local
2038 if (mvm->d3_test_pme_ptr) { in iwl_mvm_d3_test_read()
2039 pme_asserted = iwl_trans_read_mem32(mvm->trans, in iwl_mvm_d3_test_read()
2040 mvm->d3_test_pme_ptr); in iwl_mvm_d3_test_read()
2065 struct iwl_mvm *mvm = inode->i_private; in iwl_mvm_d3_test_release() local
2068 mvm->d3_test_active = false; in iwl_mvm_d3_test_release()
2070 __iwl_mvm_resume(mvm, true); in iwl_mvm_d3_test_release()
2072 iwl_abort_notification_waits(&mvm->notif_wait); in iwl_mvm_d3_test_release()
2073 ieee80211_restart_hw(mvm->hw); in iwl_mvm_d3_test_release()
2076 while (test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status) && in iwl_mvm_d3_test_release()
2083 IWL_ERR(mvm, "Timed out waiting for HW restart to finish!\n"); in iwl_mvm_d3_test_release()
2086 mvm->hw, IEEE80211_IFACE_ITER_NORMAL, in iwl_mvm_d3_test_release()
2087 iwl_mvm_d3_test_disconn_work_iter, mvm->keep_vif); in iwl_mvm_d3_test_release()
2089 ieee80211_wake_queues(mvm->hw); in iwl_mvm_d3_test_release()