Lines Matching refs:mvm
142 struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_mvm_nic_config() local
145 u32 phy_config = iwl_mvm_get_phy_config(mvm); in iwl_mvm_nic_config()
155 reg_val |= CSR_HW_REV_STEP(mvm->trans->hw_rev) << in iwl_mvm_nic_config()
157 reg_val |= CSR_HW_REV_DASH(mvm->trans->hw_rev) << in iwl_mvm_nic_config()
176 if (mvm->trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_8000) in iwl_mvm_nic_config()
179 if (iwl_fw_dbg_is_d3_debug_enabled(&mvm->fwrt)) in iwl_mvm_nic_config()
182 iwl_trans_set_bits_mask(mvm->trans, CSR_HW_IF_CONFIG_REG, in iwl_mvm_nic_config()
193 IWL_DEBUG_INFO(mvm, "Radio type=0x%x-0x%x-0x%x\n", radio_cfg_type, in iwl_mvm_nic_config()
201 if (!mvm->trans->cfg->apmg_not_supported) in iwl_mvm_nic_config()
202 iwl_set_bits_mask_prph(mvm->trans, APMG_PS_CTRL_REG, in iwl_mvm_nic_config()
232 void (*fn)(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
522 static u32 iwl_mvm_min_backoff(struct iwl_mvm *mvm) in iwl_mvm_min_backoff() argument
524 const struct iwl_pwr_tx_backoff *backoff = mvm->cfg->pwr_tx_backoffs; in iwl_mvm_min_backoff()
530 dflt_pwr_limit = iwl_acpi_get_pwr_limit(mvm->dev); in iwl_mvm_min_backoff()
544 struct iwl_mvm *mvm = in iwl_mvm_tx_unblock_dwork() local
549 mutex_lock(&mvm->mutex); in iwl_mvm_tx_unblock_dwork()
552 rcu_dereference_protected(mvm->csa_tx_blocked_vif, in iwl_mvm_tx_unblock_dwork()
553 lockdep_is_held(&mvm->mutex)); in iwl_mvm_tx_unblock_dwork()
559 iwl_mvm_modify_all_sta_disable_tx(mvm, mvmvif, false); in iwl_mvm_tx_unblock_dwork()
560 RCU_INIT_POINTER(mvm->csa_tx_blocked_vif, NULL); in iwl_mvm_tx_unblock_dwork()
562 mutex_unlock(&mvm->mutex); in iwl_mvm_tx_unblock_dwork()
567 struct iwl_mvm *mvm = ctx; in iwl_mvm_fwrt_dump_start() local
569 mutex_lock(&mvm->mutex); in iwl_mvm_fwrt_dump_start()
576 struct iwl_mvm *mvm = ctx; in iwl_mvm_fwrt_dump_end() local
578 mutex_unlock(&mvm->mutex); in iwl_mvm_fwrt_dump_end()
588 struct iwl_mvm *mvm = (struct iwl_mvm *)ctx; in iwl_mvm_fwrt_send_hcmd() local
591 mutex_lock(&mvm->mutex); in iwl_mvm_fwrt_send_hcmd()
592 ret = iwl_mvm_send_cmd(mvm, host_cmd); in iwl_mvm_fwrt_send_hcmd()
593 mutex_unlock(&mvm->mutex); in iwl_mvm_fwrt_send_hcmd()
617 struct iwl_mvm *mvm; in iwl_op_mode_mvm_start() local
631 BUILD_BUG_ON(ARRAY_SIZE(mvm->fw_id_to_mac_id) != IWL_MVM_STATION_COUNT); in iwl_op_mode_mvm_start()
654 mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_op_mode_mvm_start()
655 mvm->dev = trans->dev; in iwl_op_mode_mvm_start()
656 mvm->trans = trans; in iwl_op_mode_mvm_start()
657 mvm->cfg = cfg; in iwl_op_mode_mvm_start()
658 mvm->fw = fw; in iwl_op_mode_mvm_start()
659 mvm->hw = hw; in iwl_op_mode_mvm_start()
661 iwl_fw_runtime_init(&mvm->fwrt, trans, fw, &iwl_mvm_fwrt_ops, mvm, in iwl_op_mode_mvm_start()
664 mvm->init_status = 0; in iwl_op_mode_mvm_start()
666 if (iwl_mvm_has_new_rx_api(mvm)) { in iwl_op_mode_mvm_start()
682 mvm->fw_restart = iwlwifi_mod_params.fw_restart ? -1 : 0; in iwl_op_mode_mvm_start()
684 mvm->aux_queue = IWL_MVM_DQA_AUX_QUEUE; in iwl_op_mode_mvm_start()
685 mvm->snif_queue = IWL_MVM_DQA_INJECT_MONITOR_QUEUE; in iwl_op_mode_mvm_start()
686 mvm->probe_queue = IWL_MVM_DQA_AP_PROBE_RESP_QUEUE; in iwl_op_mode_mvm_start()
687 mvm->p2p_dev_queue = IWL_MVM_DQA_P2P_DEVICE_QUEUE; in iwl_op_mode_mvm_start()
689 mvm->sf_state = SF_UNINIT; in iwl_op_mode_mvm_start()
690 if (iwl_mvm_has_unified_ucode(mvm)) in iwl_op_mode_mvm_start()
691 iwl_fw_set_current_image(&mvm->fwrt, IWL_UCODE_REGULAR); in iwl_op_mode_mvm_start()
693 iwl_fw_set_current_image(&mvm->fwrt, IWL_UCODE_INIT); in iwl_op_mode_mvm_start()
694 mvm->drop_bcn_ap_mode = true; in iwl_op_mode_mvm_start()
696 mutex_init(&mvm->mutex); in iwl_op_mode_mvm_start()
697 spin_lock_init(&mvm->async_handlers_lock); in iwl_op_mode_mvm_start()
698 INIT_LIST_HEAD(&mvm->time_event_list); in iwl_op_mode_mvm_start()
699 INIT_LIST_HEAD(&mvm->aux_roc_te_list); in iwl_op_mode_mvm_start()
700 INIT_LIST_HEAD(&mvm->async_handlers_list); in iwl_op_mode_mvm_start()
701 spin_lock_init(&mvm->time_event_lock); in iwl_op_mode_mvm_start()
702 INIT_LIST_HEAD(&mvm->ftm_initiator.loc_list); in iwl_op_mode_mvm_start()
704 INIT_WORK(&mvm->async_handlers_wk, iwl_mvm_async_handlers_wk); in iwl_op_mode_mvm_start()
705 INIT_WORK(&mvm->roc_done_wk, iwl_mvm_roc_done_wk); in iwl_op_mode_mvm_start()
706 INIT_DELAYED_WORK(&mvm->tdls_cs.dwork, iwl_mvm_tdls_ch_switch_work); in iwl_op_mode_mvm_start()
707 INIT_DELAYED_WORK(&mvm->scan_timeout_dwork, iwl_mvm_scan_timeout_wk); in iwl_op_mode_mvm_start()
708 INIT_WORK(&mvm->add_stream_wk, iwl_mvm_add_new_dqa_stream_wk); in iwl_op_mode_mvm_start()
709 INIT_LIST_HEAD(&mvm->add_stream_txqs); in iwl_op_mode_mvm_start()
711 init_waitqueue_head(&mvm->rx_sync_waitq); in iwl_op_mode_mvm_start()
713 atomic_set(&mvm->queue_sync_counter, 0); in iwl_op_mode_mvm_start()
715 SET_IEEE80211_DEV(mvm->hw, mvm->trans->dev); in iwl_op_mode_mvm_start()
717 spin_lock_init(&mvm->tcm.lock); in iwl_op_mode_mvm_start()
718 INIT_DELAYED_WORK(&mvm->tcm.work, iwl_mvm_tcm_work); in iwl_op_mode_mvm_start()
719 mvm->tcm.ts = jiffies; in iwl_op_mode_mvm_start()
720 mvm->tcm.ll_ts = jiffies; in iwl_op_mode_mvm_start()
721 mvm->tcm.uapsd_nonagg_ts = jiffies; in iwl_op_mode_mvm_start()
723 INIT_DELAYED_WORK(&mvm->cs_tx_unblock_dwork, iwl_mvm_tx_unblock_dwork); in iwl_op_mode_mvm_start()
733 if (mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22560) in iwl_op_mode_mvm_start()
759 mvm->trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_22560; in iwl_op_mode_mvm_start()
775 iwl_mvm_get_wd_timeout(mvm, NULL, false, true); in iwl_op_mode_mvm_start()
777 snprintf(mvm->hw->wiphy->fw_version, in iwl_op_mode_mvm_start()
778 sizeof(mvm->hw->wiphy->fw_version), in iwl_op_mode_mvm_start()
782 iwl_trans_configure(mvm->trans, &trans_cfg); in iwl_op_mode_mvm_start()
785 trans->dbg.dest_tlv = mvm->fw->dbg.dest_tlv; in iwl_op_mode_mvm_start()
786 trans->dbg.n_dest_reg = mvm->fw->dbg.n_dest_reg; in iwl_op_mode_mvm_start()
787 memcpy(trans->dbg.conf_tlv, mvm->fw->dbg.conf_tlv, in iwl_op_mode_mvm_start()
789 trans->dbg.trigger_tlv = mvm->fw->dbg.trigger_tlv; in iwl_op_mode_mvm_start()
791 trans->iml = mvm->fw->iml; in iwl_op_mode_mvm_start()
792 trans->iml_len = mvm->fw->iml_len; in iwl_op_mode_mvm_start()
795 iwl_notification_wait_init(&mvm->notif_wait); in iwl_op_mode_mvm_start()
798 mvm->phy_db = iwl_phy_db_init(trans); in iwl_op_mode_mvm_start()
799 if (!mvm->phy_db) { in iwl_op_mode_mvm_start()
800 IWL_ERR(mvm, "Cannot init phy_db\n"); in iwl_op_mode_mvm_start()
804 IWL_INFO(mvm, "Detected %s, REV=0x%X\n", in iwl_op_mode_mvm_start()
805 mvm->cfg->name, mvm->trans->hw_rev); in iwl_op_mode_mvm_start()
808 mvm->nvm_file_name = iwlwifi_mod_params.nvm_file; in iwl_op_mode_mvm_start()
810 IWL_DEBUG_EEPROM(mvm->trans->dev, in iwl_op_mode_mvm_start()
813 err = iwl_trans_start_hw(mvm->trans); in iwl_op_mode_mvm_start()
817 mutex_lock(&mvm->mutex); in iwl_op_mode_mvm_start()
818 err = iwl_run_init_mvm_ucode(mvm, true); in iwl_op_mode_mvm_start()
820 iwl_fw_dbg_error_collect(&mvm->fwrt, FW_DBG_TRIGGER_DRIVER); in iwl_op_mode_mvm_start()
822 iwl_mvm_stop_device(mvm); in iwl_op_mode_mvm_start()
823 mutex_unlock(&mvm->mutex); in iwl_op_mode_mvm_start()
825 IWL_ERR(mvm, "Failed to run INIT ucode: %d\n", err); in iwl_op_mode_mvm_start()
829 scan_size = iwl_mvm_scan_size(mvm); in iwl_op_mode_mvm_start()
831 mvm->scan_cmd = kmalloc(scan_size, GFP_KERNEL); in iwl_op_mode_mvm_start()
832 if (!mvm->scan_cmd) in iwl_op_mode_mvm_start()
836 mvm->last_ebs_successful = true; in iwl_op_mode_mvm_start()
838 err = iwl_mvm_mac_setup_register(mvm); in iwl_op_mode_mvm_start()
841 mvm->hw_registered = true; in iwl_op_mode_mvm_start()
843 min_backoff = iwl_mvm_min_backoff(mvm); in iwl_op_mode_mvm_start()
844 iwl_mvm_thermal_initialize(mvm, min_backoff); in iwl_op_mode_mvm_start()
846 iwl_mvm_dbgfs_register(mvm, dbgfs_dir); in iwl_op_mode_mvm_start()
848 if (!iwl_mvm_has_new_rx_stats_api(mvm)) in iwl_op_mode_mvm_start()
849 memset(&mvm->rx_stats_v3, 0, in iwl_op_mode_mvm_start()
852 memset(&mvm->rx_stats, 0, sizeof(struct mvm_statistics_rx)); in iwl_op_mode_mvm_start()
854 iwl_mvm_toggle_tx_ant(mvm, &mvm->mgmt_last_antenna_idx); in iwl_op_mode_mvm_start()
859 iwl_fw_flush_dumps(&mvm->fwrt); in iwl_op_mode_mvm_start()
860 iwl_fw_runtime_free(&mvm->fwrt); in iwl_op_mode_mvm_start()
864 iwl_phy_db_free(mvm->phy_db); in iwl_op_mode_mvm_start()
865 kfree(mvm->scan_cmd); in iwl_op_mode_mvm_start()
868 ieee80211_free_hw(mvm->hw); in iwl_op_mode_mvm_start()
874 struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_op_mode_mvm_stop() local
877 iwl_mvm_leds_exit(mvm); in iwl_op_mode_mvm_stop()
879 iwl_mvm_thermal_exit(mvm); in iwl_op_mode_mvm_stop()
881 ieee80211_unregister_hw(mvm->hw); in iwl_op_mode_mvm_stop()
883 kfree(mvm->scan_cmd); in iwl_op_mode_mvm_stop()
884 kfree(mvm->mcast_filter_cmd); in iwl_op_mode_mvm_stop()
885 mvm->mcast_filter_cmd = NULL; in iwl_op_mode_mvm_stop()
887 kfree(mvm->error_recovery_buf); in iwl_op_mode_mvm_stop()
888 mvm->error_recovery_buf = NULL; in iwl_op_mode_mvm_stop()
890 iwl_trans_op_mode_leave(mvm->trans); in iwl_op_mode_mvm_stop()
892 iwl_phy_db_free(mvm->phy_db); in iwl_op_mode_mvm_stop()
893 mvm->phy_db = NULL; in iwl_op_mode_mvm_stop()
895 kfree(mvm->nvm_data); in iwl_op_mode_mvm_stop()
897 kfree(mvm->nvm_sections[i].data); in iwl_op_mode_mvm_stop()
899 cancel_delayed_work_sync(&mvm->tcm.work); in iwl_op_mode_mvm_stop()
901 iwl_fw_runtime_free(&mvm->fwrt); in iwl_op_mode_mvm_stop()
902 mutex_destroy(&mvm->mutex); in iwl_op_mode_mvm_stop()
904 ieee80211_free_hw(mvm->hw); in iwl_op_mode_mvm_stop()
911 void (*fn)(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
914 void iwl_mvm_async_handlers_purge(struct iwl_mvm *mvm) in iwl_mvm_async_handlers_purge() argument
918 spin_lock_bh(&mvm->async_handlers_lock); in iwl_mvm_async_handlers_purge()
919 list_for_each_entry_safe(entry, tmp, &mvm->async_handlers_list, list) { in iwl_mvm_async_handlers_purge()
924 spin_unlock_bh(&mvm->async_handlers_lock); in iwl_mvm_async_handlers_purge()
929 struct iwl_mvm *mvm = in iwl_mvm_async_handlers_wk() local
940 spin_lock_bh(&mvm->async_handlers_lock); in iwl_mvm_async_handlers_wk()
941 list_splice_init(&mvm->async_handlers_list, &local_list); in iwl_mvm_async_handlers_wk()
942 spin_unlock_bh(&mvm->async_handlers_lock); in iwl_mvm_async_handlers_wk()
946 mutex_lock(&mvm->mutex); in iwl_mvm_async_handlers_wk()
947 entry->fn(mvm, &entry->rxb); in iwl_mvm_async_handlers_wk()
951 mutex_unlock(&mvm->mutex); in iwl_mvm_async_handlers_wk()
956 static inline void iwl_mvm_rx_check_trigger(struct iwl_mvm *mvm, in iwl_mvm_rx_check_trigger() argument
963 trig = iwl_fw_dbg_trigger_on(&mvm->fwrt, NULL, in iwl_mvm_rx_check_trigger()
979 iwl_fw_dbg_collect_trig(&mvm->fwrt, trig, in iwl_mvm_rx_check_trigger()
986 static void iwl_mvm_rx_common(struct iwl_mvm *mvm, in iwl_mvm_rx_common() argument
993 iwl_dbg_tlv_time_point(&mvm->fwrt, in iwl_mvm_rx_common()
995 iwl_mvm_rx_check_trigger(mvm, pkt); in iwl_mvm_rx_common()
1002 iwl_notification_wait_notify(&mvm->notif_wait, pkt); in iwl_mvm_rx_common()
1012 rx_h->fn(mvm, rxb); in iwl_mvm_rx_common()
1026 spin_lock(&mvm->async_handlers_lock); in iwl_mvm_rx_common()
1027 list_add_tail(&entry->list, &mvm->async_handlers_list); in iwl_mvm_rx_common()
1028 spin_unlock(&mvm->async_handlers_lock); in iwl_mvm_rx_common()
1029 schedule_work(&mvm->async_handlers_wk); in iwl_mvm_rx_common()
1039 struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_mvm_rx() local
1043 iwl_mvm_rx_rx_mpdu(mvm, napi, rxb); in iwl_mvm_rx()
1045 iwl_mvm_rx_rx_phy_cmd(mvm, rxb); in iwl_mvm_rx()
1047 iwl_mvm_rx_common(mvm, rxb, pkt); in iwl_mvm_rx()
1055 struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_mvm_rx_mq() local
1059 iwl_mvm_rx_mpdu_mq(mvm, napi, rxb, 0); in iwl_mvm_rx_mq()
1062 iwl_mvm_rx_queue_notif(mvm, napi, rxb, 0); in iwl_mvm_rx_mq()
1064 iwl_mvm_rx_frame_release(mvm, napi, rxb, 0); in iwl_mvm_rx_mq()
1066 iwl_mvm_rx_bar_frame_release(mvm, napi, rxb, 0); in iwl_mvm_rx_mq()
1068 iwl_mvm_rx_monitor_no_data(mvm, napi, rxb, 0); in iwl_mvm_rx_mq()
1070 iwl_mvm_rx_common(mvm, rxb, pkt); in iwl_mvm_rx_mq()
1076 struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_mvm_async_cb() local
1082 iwl_trans_block_txq_ptrs(mvm->trans, false); in iwl_mvm_async_cb()
1085 static int iwl_mvm_is_static_queue(struct iwl_mvm *mvm, int queue) in iwl_mvm_is_static_queue() argument
1087 return queue == mvm->aux_queue || queue == mvm->probe_queue || in iwl_mvm_is_static_queue()
1088 queue == mvm->p2p_dev_queue || queue == mvm->snif_queue; in iwl_mvm_is_static_queue()
1094 struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_mvm_queue_state_change() local
1103 sta_id = iwl_mvm_has_new_tx_api(mvm) ? in iwl_mvm_queue_state_change()
1104 mvm->tvqm_info[hw_queue].sta_id : in iwl_mvm_queue_state_change()
1105 mvm->queue_info[hw_queue].ra_sta_id; in iwl_mvm_queue_state_change()
1107 if (WARN_ON_ONCE(sta_id >= ARRAY_SIZE(mvm->fw_id_to_mac_id))) in iwl_mvm_queue_state_change()
1112 sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_id]); in iwl_mvm_queue_state_change()
1117 if (iwl_mvm_is_static_queue(mvm, hw_queue)) { in iwl_mvm_queue_state_change()
1119 ieee80211_stop_queues(mvm->hw); in iwl_mvm_queue_state_change()
1121 ieee80211_wake_queues(mvm->hw); in iwl_mvm_queue_state_change()
1126 if (iwl_mvm_has_new_tx_api(mvm)) { in iwl_mvm_queue_state_change()
1127 int tid = mvm->tvqm_info[hw_queue].txq_tid; in iwl_mvm_queue_state_change()
1131 tid_bitmap = mvm->queue_info[hw_queue].tid_bitmap; in iwl_mvm_queue_state_change()
1145 iwl_mvm_mac_itxq_xmit(mvm->hw, txq); in iwl_mvm_queue_state_change()
1162 static void iwl_mvm_set_rfkill_state(struct iwl_mvm *mvm) in iwl_mvm_set_rfkill_state() argument
1164 bool state = iwl_mvm_is_radio_killed(mvm); in iwl_mvm_set_rfkill_state()
1167 wake_up(&mvm->rx_sync_waitq); in iwl_mvm_set_rfkill_state()
1169 wiphy_rfkill_set_hw_state(mvm->hw->wiphy, state); in iwl_mvm_set_rfkill_state()
1172 void iwl_mvm_set_hw_ctkill_state(struct iwl_mvm *mvm, bool state) in iwl_mvm_set_hw_ctkill_state() argument
1175 set_bit(IWL_MVM_STATUS_HW_CTKILL, &mvm->status); in iwl_mvm_set_hw_ctkill_state()
1177 clear_bit(IWL_MVM_STATUS_HW_CTKILL, &mvm->status); in iwl_mvm_set_hw_ctkill_state()
1179 iwl_mvm_set_rfkill_state(mvm); in iwl_mvm_set_hw_ctkill_state()
1184 struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_mvm_set_hw_rfkill_state() local
1185 bool rfkill_safe_init_done = READ_ONCE(mvm->rfkill_safe_init_done); in iwl_mvm_set_hw_rfkill_state()
1186 bool unified = iwl_mvm_has_unified_ucode(mvm); in iwl_mvm_set_hw_rfkill_state()
1189 set_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status); in iwl_mvm_set_hw_rfkill_state()
1191 clear_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status); in iwl_mvm_set_hw_rfkill_state()
1193 iwl_mvm_set_rfkill_state(mvm); in iwl_mvm_set_hw_rfkill_state()
1197 iwl_abort_notification_waits(&mvm->notif_wait); in iwl_mvm_set_hw_rfkill_state()
1215 struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_mvm_free_skb() local
1219 iwl_trans_free_tx_cmd(mvm->trans, info->driver_data[1]); in iwl_mvm_free_skb()
1220 ieee80211_free_txskb(mvm->hw, skb); in iwl_mvm_free_skb()
1239 void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error) in iwl_mvm_nic_restart() argument
1241 iwl_abort_notification_waits(&mvm->notif_wait); in iwl_mvm_nic_restart()
1242 iwl_dbg_tlv_del_timers(mvm->trans); in iwl_mvm_nic_restart()
1254 iwl_mvm_report_scan_aborted(mvm); in iwl_mvm_nic_restart()
1262 if (!mvm->fw_restart && fw_error) { in iwl_mvm_nic_restart()
1263 iwl_fw_error_collect(&mvm->fwrt); in iwl_mvm_nic_restart()
1264 } else if (test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)) { in iwl_mvm_nic_restart()
1267 IWL_ERR(mvm, in iwl_mvm_nic_restart()
1276 IWL_ERR(mvm, "Module is being unloaded - abort\n"); in iwl_mvm_nic_restart()
1285 reprobe->dev = mvm->trans->dev; in iwl_mvm_nic_restart()
1289 &mvm->status)) { in iwl_mvm_nic_restart()
1290 IWL_ERR(mvm, "HW restart already requested, but not started\n"); in iwl_mvm_nic_restart()
1291 } else if (mvm->fwrt.cur_fw_img == IWL_UCODE_REGULAR && in iwl_mvm_nic_restart()
1292 mvm->hw_registered && in iwl_mvm_nic_restart()
1293 !test_bit(STATUS_TRANS_DEAD, &mvm->trans->status)) { in iwl_mvm_nic_restart()
1294 if (mvm->fw->ucode_capa.error_log_size) { in iwl_mvm_nic_restart()
1295 u32 src_size = mvm->fw->ucode_capa.error_log_size; in iwl_mvm_nic_restart()
1296 u32 src_addr = mvm->fw->ucode_capa.error_log_addr; in iwl_mvm_nic_restart()
1300 mvm->error_recovery_buf = recover_buf; in iwl_mvm_nic_restart()
1301 iwl_trans_read_mem_bytes(mvm->trans, in iwl_mvm_nic_restart()
1308 iwl_fw_error_collect(&mvm->fwrt); in iwl_mvm_nic_restart()
1310 if (fw_error && mvm->fw_restart > 0) in iwl_mvm_nic_restart()
1311 mvm->fw_restart--; in iwl_mvm_nic_restart()
1312 set_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED, &mvm->status); in iwl_mvm_nic_restart()
1313 ieee80211_restart_hw(mvm->hw); in iwl_mvm_nic_restart()
1319 struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_mvm_nic_error() local
1321 if (!test_bit(STATUS_TRANS_DEAD, &mvm->trans->status)) in iwl_mvm_nic_error()
1322 iwl_mvm_dump_nic_error_log(mvm); in iwl_mvm_nic_error()
1324 iwl_mvm_nic_restart(mvm, true); in iwl_mvm_nic_error()
1329 struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_mvm_cmd_queue_full() local
1332 iwl_mvm_nic_restart(mvm, true); in iwl_mvm_cmd_queue_full()
1359 struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); in iwl_mvm_rx_mq_rss() local
1364 iwl_mvm_rx_frame_release(mvm, napi, rxb, queue); in iwl_mvm_rx_mq_rss()
1367 iwl_mvm_rx_queue_notif(mvm, napi, rxb, queue); in iwl_mvm_rx_mq_rss()
1369 iwl_mvm_rx_mpdu_mq(mvm, napi, rxb, queue); in iwl_mvm_rx_mq_rss()