Lines Matching refs:fw
110 struct iwl_fw fw; member
175 kfree(drv->fw.dbg_dest_tlv); in iwl_dealloc_ucode()
176 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg_conf_tlv); i++) in iwl_dealloc_ucode()
177 kfree(drv->fw.dbg_conf_tlv[i]); in iwl_dealloc_ucode()
178 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg_trigger_tlv); i++) in iwl_dealloc_ucode()
179 kfree(drv->fw.dbg_trigger_tlv[i]); in iwl_dealloc_ucode()
182 iwl_free_fw_img(drv, drv->fw.img + i); in iwl_dealloc_ucode()
340 static int iwl_store_cscheme(struct iwl_fw *fw, const u8 *data, const u32 len) in iwl_store_cscheme() argument
360 cs = &fw->cs[j++]; in iwl_store_cscheme()
413 drv->fw.default_calib[ucode_type].flow_trigger = in iwl_set_default_calib()
415 drv->fw.default_calib[ucode_type].event_trigger = in iwl_set_default_calib()
462 drv->fw.ucode_ver = le32_to_cpu(ucode->ver); in iwl_parse_v1_v2_firmware()
463 api_ver = IWL_UCODE_API(drv->fw.ucode_ver); in iwl_parse_v1_v2_firmware()
511 snprintf(drv->fw.fw_version, in iwl_parse_v1_v2_firmware()
512 sizeof(drv->fw.fw_version), in iwl_parse_v1_v2_firmware()
514 IWL_UCODE_MAJOR(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
515 IWL_UCODE_MINOR(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
516 IWL_UCODE_API(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
517 IWL_UCODE_SERIAL(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
583 drv->fw.ucode_ver = le32_to_cpu(ucode->ver); in iwl_parse_tlv_firmware()
584 memcpy(drv->fw.human_readable, ucode->human_readable, in iwl_parse_tlv_firmware()
585 sizeof(drv->fw.human_readable)); in iwl_parse_tlv_firmware()
595 snprintf(drv->fw.fw_version, in iwl_parse_tlv_firmware()
596 sizeof(drv->fw.fw_version), in iwl_parse_tlv_firmware()
598 IWL_UCODE_MAJOR(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
599 IWL_UCODE_MINOR(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
600 IWL_UCODE_API(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
601 IWL_UCODE_SERIAL(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
742 drv->fw.enhance_sensitivity_table = true; in iwl_parse_tlv_firmware()
771 drv->fw.mvm_fw = true; in iwl_parse_tlv_firmware()
776 drv->fw.mvm_fw = true; in iwl_parse_tlv_firmware()
781 drv->fw.mvm_fw = true; in iwl_parse_tlv_firmware()
792 drv->fw.phy_config = le32_to_cpup((__le32 *)tlv_data); in iwl_parse_tlv_firmware()
793 drv->fw.valid_tx_ant = (drv->fw.phy_config & in iwl_parse_tlv_firmware()
796 drv->fw.valid_rx_ant = (drv->fw.phy_config & in iwl_parse_tlv_firmware()
803 drv->fw.mvm_fw = true; in iwl_parse_tlv_firmware()
808 drv->fw.mvm_fw = true; in iwl_parse_tlv_firmware()
813 drv->fw.mvm_fw = true; in iwl_parse_tlv_firmware()
822 drv->fw.img[IWL_UCODE_REGULAR].is_dual_cpus = in iwl_parse_tlv_firmware()
824 drv->fw.img[IWL_UCODE_INIT].is_dual_cpus = in iwl_parse_tlv_firmware()
826 drv->fw.img[IWL_UCODE_WOWLAN].is_dual_cpus = in iwl_parse_tlv_firmware()
834 if (iwl_store_cscheme(&drv->fw, tlv_data, tlv_len)) in iwl_parse_tlv_firmware()
855 snprintf(drv->fw.fw_version, in iwl_parse_tlv_firmware()
856 sizeof(drv->fw.fw_version), "%u.%u.%u", in iwl_parse_tlv_firmware()
873 drv->fw.dbg_dest_reg_num = in iwl_parse_tlv_firmware()
876 drv->fw.dbg_dest_reg_num /= in iwl_parse_tlv_firmware()
877 sizeof(drv->fw.dbg_dest_tlv->reg_ops[0]); in iwl_parse_tlv_firmware()
891 if (conf->id >= ARRAY_SIZE(drv->fw.dbg_conf_tlv)) { in iwl_parse_tlv_firmware()
920 if (trigger_id >= ARRAY_SIZE(drv->fw.dbg_trigger_tlv)) { in iwl_parse_tlv_firmware()
949 drv->fw.sdio_adma_addr = in iwl_parse_tlv_firmware()
988 if (iwl_alloc_fw_desc(drv, &(drv->fw.img[type].sec[i]), in iwl_alloc_ucode()
1062 op_mode = ops->start(drv->trans, drv->cfg, &drv->fw, dbgfs_dir); in _iwl_op_mode_start()
1097 struct iwl_fw *fw = &drv->fw; in iwl_req_fw_callback() local
1110 fw->ucode_capa.max_probe_length = IWL_DEFAULT_MAX_PROBE_LENGTH; in iwl_req_fw_callback()
1111 fw->ucode_capa.standard_phy_calibration_size = in iwl_req_fw_callback()
1113 fw->ucode_capa.n_scan_channels = IWL_DEFAULT_SCAN_CHANNELS; in iwl_req_fw_callback()
1146 &fw->ucode_capa); in iwl_req_fw_callback()
1151 if (drv->fw.ucode_capa.api[0] & IWL_UCODE_TLV_API_NEW_VERSION) in iwl_req_fw_callback()
1152 api_ver = drv->fw.ucode_ver; in iwl_req_fw_callback()
1154 api_ver = IWL_UCODE_API(drv->fw.ucode_ver); in iwl_req_fw_callback()
1189 if (!fw->mvm_fw && validate_sec_sizes(drv, pieces, drv->cfg)) in iwl_req_fw_callback()
1202 drv->fw.dbg_dest_tlv = in iwl_req_fw_callback()
1206 drv->fw.dbg_dest_reg_num, GFP_KERNEL); in iwl_req_fw_callback()
1208 if (!drv->fw.dbg_dest_tlv) in iwl_req_fw_callback()
1212 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg_conf_tlv); i++) { in iwl_req_fw_callback()
1214 drv->fw.dbg_conf_tlv_len[i] = in iwl_req_fw_callback()
1216 drv->fw.dbg_conf_tlv[i] = in iwl_req_fw_callback()
1218 drv->fw.dbg_conf_tlv_len[i], in iwl_req_fw_callback()
1220 if (!drv->fw.dbg_conf_tlv[i]) in iwl_req_fw_callback()
1243 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg_trigger_tlv); i++) { in iwl_req_fw_callback()
1256 drv->fw.dbg_trigger_tlv_len[i] = in iwl_req_fw_callback()
1258 drv->fw.dbg_trigger_tlv[i] = in iwl_req_fw_callback()
1260 drv->fw.dbg_trigger_tlv_len[i], in iwl_req_fw_callback()
1262 if (!drv->fw.dbg_trigger_tlv[i]) in iwl_req_fw_callback()
1274 fw->init_evtlog_ptr = pieces->init_evtlog_ptr; in iwl_req_fw_callback()
1276 fw->init_evtlog_size = (pieces->init_evtlog_size - 16)/12; in iwl_req_fw_callback()
1278 fw->init_evtlog_size = in iwl_req_fw_callback()
1280 fw->init_errlog_ptr = pieces->init_errlog_ptr; in iwl_req_fw_callback()
1281 fw->inst_evtlog_ptr = pieces->inst_evtlog_ptr; in iwl_req_fw_callback()
1283 fw->inst_evtlog_size = (pieces->inst_evtlog_size - 16)/12; in iwl_req_fw_callback()
1285 fw->inst_evtlog_size = in iwl_req_fw_callback()
1287 fw->inst_errlog_ptr = pieces->inst_errlog_ptr; in iwl_req_fw_callback()
1293 if (fw->ucode_capa.standard_phy_calibration_size > in iwl_req_fw_callback()
1295 fw->ucode_capa.standard_phy_calibration_size = in iwl_req_fw_callback()
1302 if (fw->mvm_fw) in iwl_req_fw_callback()
1308 drv->fw.fw_version, op->name); in iwl_req_fw_callback()