Lines Matching refs:fw
111 struct iwl_fw fw; member
176 kfree(drv->fw.dbg_dest_tlv); in iwl_dealloc_ucode()
177 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg_conf_tlv); i++) in iwl_dealloc_ucode()
178 kfree(drv->fw.dbg_conf_tlv[i]); in iwl_dealloc_ucode()
179 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg_trigger_tlv); i++) in iwl_dealloc_ucode()
180 kfree(drv->fw.dbg_trigger_tlv[i]); in iwl_dealloc_ucode()
181 kfree(drv->fw.dbg_mem_tlv); in iwl_dealloc_ucode()
184 iwl_free_fw_img(drv, drv->fw.img + i); in iwl_dealloc_ucode()
376 static int iwl_store_cscheme(struct iwl_fw *fw, const u8 *data, const u32 len) in iwl_store_cscheme() argument
393 fw->cs[j++] = *fwcs; in iwl_store_cscheme()
399 static void iwl_store_gscan_capa(struct iwl_fw *fw, const u8 *data, in iwl_store_gscan_capa() argument
403 struct iwl_gscan_capabilities *capa = &fw->gscan_capa; in iwl_store_gscan_capa()
474 drv->fw.default_calib[ucode_type].flow_trigger = in iwl_set_default_calib()
476 drv->fw.default_calib[ucode_type].event_trigger = in iwl_set_default_calib()
533 drv->fw.ucode_ver = le32_to_cpu(ucode->ver); in iwl_parse_v1_v2_firmware()
534 api_ver = IWL_UCODE_API(drv->fw.ucode_ver); in iwl_parse_v1_v2_firmware()
580 snprintf(drv->fw.fw_version, in iwl_parse_v1_v2_firmware()
581 sizeof(drv->fw.fw_version), in iwl_parse_v1_v2_firmware()
583 IWL_UCODE_MAJOR(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
584 IWL_UCODE_MINOR(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
585 IWL_UCODE_API(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
586 IWL_UCODE_SERIAL(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
654 drv->fw.ucode_ver = le32_to_cpu(ucode->ver); in iwl_parse_tlv_firmware()
655 memcpy(drv->fw.human_readable, ucode->human_readable, in iwl_parse_tlv_firmware()
656 sizeof(drv->fw.human_readable)); in iwl_parse_tlv_firmware()
664 snprintf(drv->fw.fw_version, in iwl_parse_tlv_firmware()
665 sizeof(drv->fw.fw_version), in iwl_parse_tlv_firmware()
667 IWL_UCODE_MAJOR(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
668 IWL_UCODE_MINOR(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
669 IWL_UCODE_API(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
670 IWL_UCODE_SERIAL(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
809 drv->fw.enhance_sensitivity_table = true; in iwl_parse_tlv_firmware()
838 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
843 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
848 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
859 drv->fw.phy_config = le32_to_cpup((__le32 *)tlv_data); in iwl_parse_tlv_firmware()
860 drv->fw.valid_tx_ant = (drv->fw.phy_config & in iwl_parse_tlv_firmware()
863 drv->fw.valid_rx_ant = (drv->fw.phy_config & in iwl_parse_tlv_firmware()
870 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
875 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
880 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
889 drv->fw.img[IWL_UCODE_REGULAR].is_dual_cpus = in iwl_parse_tlv_firmware()
891 drv->fw.img[IWL_UCODE_INIT].is_dual_cpus = in iwl_parse_tlv_firmware()
893 drv->fw.img[IWL_UCODE_WOWLAN].is_dual_cpus = in iwl_parse_tlv_firmware()
901 if (iwl_store_cscheme(&drv->fw, tlv_data, tlv_len)) in iwl_parse_tlv_firmware()
922 snprintf(drv->fw.fw_version, in iwl_parse_tlv_firmware()
923 sizeof(drv->fw.fw_version), "%u.%u.%u", in iwl_parse_tlv_firmware()
940 drv->fw.dbg_dest_reg_num = in iwl_parse_tlv_firmware()
943 drv->fw.dbg_dest_reg_num /= in iwl_parse_tlv_firmware()
944 sizeof(drv->fw.dbg_dest_tlv->reg_ops[0]); in iwl_parse_tlv_firmware()
958 if (conf->id >= ARRAY_SIZE(drv->fw.dbg_conf_tlv)) { in iwl_parse_tlv_firmware()
987 if (trigger_id >= ARRAY_SIZE(drv->fw.dbg_trigger_tlv)) { in iwl_parse_tlv_firmware()
1036 drv->fw.img[IWL_UCODE_REGULAR].paging_mem_size = in iwl_parse_tlv_firmware()
1039 drv->fw.img[usniffer_img].paging_mem_size = in iwl_parse_tlv_firmware()
1045 drv->fw.sdio_adma_addr = in iwl_parse_tlv_firmware()
1057 iwl_store_gscan_capa(&drv->fw, tlv_data, tlv_len); in iwl_parse_tlv_firmware()
1149 drv->fw.img[type].sec = sec; in iwl_alloc_ucode()
1150 drv->fw.img[type].num_sec = pieces->img[type].sec_counter; in iwl_alloc_ucode()
1227 op_mode = ops->start(drv->trans, drv->trans->cfg, &drv->fw, dbgfs_dir); in _iwl_op_mode_start()
1262 struct iwl_fw *fw = &drv->fw; in iwl_req_fw_callback() local
1275 fw->ucode_capa.max_probe_length = IWL_DEFAULT_MAX_PROBE_LENGTH; in iwl_req_fw_callback()
1276 fw->ucode_capa.standard_phy_calibration_size = in iwl_req_fw_callback()
1278 fw->ucode_capa.n_scan_channels = IWL_DEFAULT_SCAN_CHANNELS; in iwl_req_fw_callback()
1303 &fw->ucode_capa, &usniffer_images); in iwl_req_fw_callback()
1308 if (fw_has_api(&drv->fw.ucode_capa, IWL_UCODE_TLV_API_NEW_VERSION)) in iwl_req_fw_callback()
1309 api_ver = drv->fw.ucode_ver; in iwl_req_fw_callback()
1311 api_ver = IWL_UCODE_API(drv->fw.ucode_ver); in iwl_req_fw_callback()
1330 if (fw->type == IWL_FW_DVM && validate_sec_sizes(drv, pieces, in iwl_req_fw_callback()
1344 drv->fw.dbg_dest_tlv = in iwl_req_fw_callback()
1348 drv->fw.dbg_dest_reg_num, GFP_KERNEL); in iwl_req_fw_callback()
1350 if (!drv->fw.dbg_dest_tlv) in iwl_req_fw_callback()
1354 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg_conf_tlv); i++) { in iwl_req_fw_callback()
1356 drv->fw.dbg_conf_tlv_len[i] = in iwl_req_fw_callback()
1358 drv->fw.dbg_conf_tlv[i] = in iwl_req_fw_callback()
1360 drv->fw.dbg_conf_tlv_len[i], in iwl_req_fw_callback()
1362 if (!drv->fw.dbg_conf_tlv[i]) in iwl_req_fw_callback()
1389 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg_trigger_tlv); i++) { in iwl_req_fw_callback()
1402 drv->fw.dbg_trigger_tlv_len[i] = in iwl_req_fw_callback()
1404 drv->fw.dbg_trigger_tlv[i] = in iwl_req_fw_callback()
1406 drv->fw.dbg_trigger_tlv_len[i], in iwl_req_fw_callback()
1408 if (!drv->fw.dbg_trigger_tlv[i]) in iwl_req_fw_callback()
1415 drv->fw.dbg_mem_tlv = pieces->dbg_mem_tlv; in iwl_req_fw_callback()
1417 drv->fw.n_dbg_mem_tlv = pieces->n_dbg_mem_tlv; in iwl_req_fw_callback()
1424 fw->init_evtlog_ptr = pieces->init_evtlog_ptr; in iwl_req_fw_callback()
1426 fw->init_evtlog_size = (pieces->init_evtlog_size - 16)/12; in iwl_req_fw_callback()
1428 fw->init_evtlog_size = in iwl_req_fw_callback()
1430 fw->init_errlog_ptr = pieces->init_errlog_ptr; in iwl_req_fw_callback()
1431 fw->inst_evtlog_ptr = pieces->inst_evtlog_ptr; in iwl_req_fw_callback()
1433 fw->inst_evtlog_size = (pieces->inst_evtlog_size - 16)/12; in iwl_req_fw_callback()
1435 fw->inst_evtlog_size = in iwl_req_fw_callback()
1437 fw->inst_errlog_ptr = pieces->inst_errlog_ptr; in iwl_req_fw_callback()
1443 if (fw->ucode_capa.standard_phy_calibration_size > in iwl_req_fw_callback()
1445 fw->ucode_capa.standard_phy_calibration_size = in iwl_req_fw_callback()
1452 switch (fw->type) { in iwl_req_fw_callback()
1457 WARN(1, "Invalid fw type %d\n", fw->type); in iwl_req_fw_callback()
1464 drv->fw.fw_version, op->name); in iwl_req_fw_callback()