IWL_DEBUG_EEPROM(mvm->trans->dev,
                                 "working without external nvm file\n");
 
-       if (WARN(cfg->no_power_up_nic_in_init && !mvm->nvm_file_name,
-                "not allowing power-up and not having nvm_file\n"))
+       err = iwl_trans_start_hw(mvm->trans);
+       if (err)
                goto out_free;
 
-       /*
-        * Even if nvm exists in the nvm_file driver should read again the nvm
-        * from the nic because there might be entries that exist in the OTP
-        * and not in the file.
-        * for nics with no_power_up_nic_in_init: rely completley on nvm_file
-        */
-       if (cfg->no_power_up_nic_in_init && mvm->nvm_file_name) {
-               err = iwl_nvm_init(mvm, false);
-               if (err)
-                       goto out_free;
-       } else {
-               err = iwl_trans_start_hw(mvm->trans);
-               if (err)
-                       goto out_free;
-
-               mutex_lock(&mvm->mutex);
-               iwl_mvm_ref(mvm, IWL_MVM_REF_INIT_UCODE);
-               err = iwl_run_init_mvm_ucode(mvm, true);
-               if (!err || !iwlmvm_mod_params.init_dbg)
-                       iwl_mvm_stop_device(mvm);
-               iwl_mvm_unref(mvm, IWL_MVM_REF_INIT_UCODE);
-               mutex_unlock(&mvm->mutex);
-               /* returns 0 if successful, 1 if success but in rfkill */
-               if (err < 0 && !iwlmvm_mod_params.init_dbg) {
-                       IWL_ERR(mvm, "Failed to run INIT ucode: %d\n", err);
-                       goto out_free;
-               }
+       mutex_lock(&mvm->mutex);
+       iwl_mvm_ref(mvm, IWL_MVM_REF_INIT_UCODE);
+       err = iwl_run_init_mvm_ucode(mvm, true);
+       if (!err || !iwlmvm_mod_params.init_dbg)
+               iwl_mvm_stop_device(mvm);
+       iwl_mvm_unref(mvm, IWL_MVM_REF_INIT_UCODE);
+       mutex_unlock(&mvm->mutex);
+       /* returns 0 if successful, 1 if success but in rfkill */
+       if (err < 0 && !iwlmvm_mod_params.init_dbg) {
+               IWL_ERR(mvm, "Failed to run INIT ucode: %d\n", err);
+               goto out_free;
        }
 
        scan_size = iwl_mvm_scan_size(mvm);
        flush_delayed_work(&mvm->fw_dump_wk);
        iwl_phy_db_free(mvm->phy_db);
        kfree(mvm->scan_cmd);
-       if (!cfg->no_power_up_nic_in_init || !mvm->nvm_file_name)
-               iwl_trans_op_mode_leave(trans);
+       iwl_trans_op_mode_leave(trans);
+
        ieee80211_free_hw(mvm->hw);
        return NULL;
 }