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()
182 kfree(drv->fw.iml); in iwl_dealloc_ucode()
185 iwl_free_fw_img(drv, drv->fw.img + i); in iwl_dealloc_ucode()
382 static int iwl_store_cscheme(struct iwl_fw *fw, const u8 *data, const u32 len) in iwl_store_cscheme() argument
399 fw->cs[j++] = *fwcs; in iwl_store_cscheme()
451 drv->fw.default_calib[ucode_type].flow_trigger = in iwl_set_default_calib()
453 drv->fw.default_calib[ucode_type].event_trigger = in iwl_set_default_calib()
510 drv->fw.ucode_ver = le32_to_cpu(ucode->ver); in iwl_parse_v1_v2_firmware()
511 api_ver = IWL_UCODE_API(drv->fw.ucode_ver); in iwl_parse_v1_v2_firmware()
557 snprintf(drv->fw.fw_version, in iwl_parse_v1_v2_firmware()
558 sizeof(drv->fw.fw_version), in iwl_parse_v1_v2_firmware()
560 IWL_UCODE_MAJOR(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
561 IWL_UCODE_MINOR(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
562 IWL_UCODE_API(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
563 IWL_UCODE_SERIAL(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
630 drv->fw.ucode_ver = le32_to_cpu(ucode->ver); in iwl_parse_tlv_firmware()
631 memcpy(drv->fw.human_readable, ucode->human_readable, in iwl_parse_tlv_firmware()
632 sizeof(drv->fw.human_readable)); in iwl_parse_tlv_firmware()
640 snprintf(drv->fw.fw_version, in iwl_parse_tlv_firmware()
641 sizeof(drv->fw.fw_version), in iwl_parse_tlv_firmware()
643 IWL_UCODE_MAJOR(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
644 IWL_UCODE_MINOR(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
645 IWL_UCODE_API(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
646 IWL_UCODE_SERIAL(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
785 drv->fw.enhance_sensitivity_table = true; in iwl_parse_tlv_firmware()
814 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
819 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
824 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
835 drv->fw.phy_config = le32_to_cpup((__le32 *)tlv_data); in iwl_parse_tlv_firmware()
836 drv->fw.valid_tx_ant = (drv->fw.phy_config & in iwl_parse_tlv_firmware()
839 drv->fw.valid_rx_ant = (drv->fw.phy_config & in iwl_parse_tlv_firmware()
846 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
851 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
856 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
865 drv->fw.img[IWL_UCODE_REGULAR].is_dual_cpus = in iwl_parse_tlv_firmware()
867 drv->fw.img[IWL_UCODE_INIT].is_dual_cpus = in iwl_parse_tlv_firmware()
869 drv->fw.img[IWL_UCODE_WOWLAN].is_dual_cpus = in iwl_parse_tlv_firmware()
877 if (iwl_store_cscheme(&drv->fw, tlv_data, tlv_len)) in iwl_parse_tlv_firmware()
899 snprintf(drv->fw.fw_version, in iwl_parse_tlv_firmware()
900 sizeof(drv->fw.fw_version), in iwl_parse_tlv_firmware()
903 snprintf(drv->fw.fw_version, in iwl_parse_tlv_firmware()
904 sizeof(drv->fw.fw_version), in iwl_parse_tlv_firmware()
944 drv->fw.dbg_dest_reg_num = (dest_v1) ? in iwl_parse_tlv_firmware()
952 drv->fw.dbg_dest_reg_num /= in iwl_parse_tlv_firmware()
953 sizeof(drv->fw.dbg_dest_tlv->reg_ops[0]); in iwl_parse_tlv_firmware()
967 if (conf->id >= ARRAY_SIZE(drv->fw.dbg_conf_tlv)) { in iwl_parse_tlv_firmware()
996 if (trigger_id >= ARRAY_SIZE(drv->fw.dbg_trigger_tlv)) { in iwl_parse_tlv_firmware()
1023 drv->fw.dbg_dump_mask = in iwl_parse_tlv_firmware()
1056 drv->fw.img[IWL_UCODE_REGULAR].paging_mem_size = in iwl_parse_tlv_firmware()
1059 drv->fw.img[usniffer_img].paging_mem_size = in iwl_parse_tlv_firmware()
1103 drv->fw.iml_len = tlv_len; in iwl_parse_tlv_firmware()
1104 drv->fw.iml = kmemdup(tlv_data, tlv_len, GFP_KERNEL); in iwl_parse_tlv_firmware()
1105 if (!drv->fw.iml) in iwl_parse_tlv_firmware()
1148 drv->fw.img[type].sec = sec; in iwl_alloc_ucode()
1149 drv->fw.img[type].num_sec = pieces->img[type].sec_counter; in iwl_alloc_ucode()
1226 op_mode = ops->start(drv->trans, drv->trans->cfg, &drv->fw, dbgfs_dir); in _iwl_op_mode_start()
1261 struct iwl_fw *fw = &drv->fw; in iwl_req_fw_callback() local
1274 fw->ucode_capa.max_probe_length = IWL_DEFAULT_MAX_PROBE_LENGTH; in iwl_req_fw_callback()
1275 fw->ucode_capa.standard_phy_calibration_size = in iwl_req_fw_callback()
1277 fw->ucode_capa.n_scan_channels = IWL_DEFAULT_SCAN_CHANNELS; in iwl_req_fw_callback()
1279 fw->dbg_dump_mask = 0xffffffff; in iwl_req_fw_callback()
1304 &fw->ucode_capa, &usniffer_images); in iwl_req_fw_callback()
1309 if (fw_has_api(&drv->fw.ucode_capa, IWL_UCODE_TLV_API_NEW_VERSION)) in iwl_req_fw_callback()
1310 api_ver = drv->fw.ucode_ver; in iwl_req_fw_callback()
1312 api_ver = IWL_UCODE_API(drv->fw.ucode_ver); in iwl_req_fw_callback()
1331 if (fw->type == IWL_FW_DVM && validate_sec_sizes(drv, pieces, in iwl_req_fw_callback()
1346 size_t dbg_dest_size = sizeof(*drv->fw.dbg_dest_tlv) + in iwl_req_fw_callback()
1347 sizeof(drv->fw.dbg_dest_tlv->reg_ops[0]) * in iwl_req_fw_callback()
1348 drv->fw.dbg_dest_reg_num; in iwl_req_fw_callback()
1350 drv->fw.dbg_dest_tlv = kmalloc(dbg_dest_size, GFP_KERNEL); in iwl_req_fw_callback()
1352 if (!drv->fw.dbg_dest_tlv) in iwl_req_fw_callback()
1356 memcpy(drv->fw.dbg_dest_tlv, pieces->dbg_dest_tlv_v1, in iwl_req_fw_callback()
1360 drv->fw.dbg_dest_tlv; in iwl_req_fw_callback()
1375 sizeof(drv->fw.dbg_dest_tlv->reg_ops[0]) * in iwl_req_fw_callback()
1376 drv->fw.dbg_dest_reg_num); in iwl_req_fw_callback()
1392 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg_conf_tlv); i++) { in iwl_req_fw_callback()
1394 drv->fw.dbg_conf_tlv_len[i] = in iwl_req_fw_callback()
1396 drv->fw.dbg_conf_tlv[i] = in iwl_req_fw_callback()
1398 drv->fw.dbg_conf_tlv_len[i], in iwl_req_fw_callback()
1400 if (!drv->fw.dbg_conf_tlv[i]) in iwl_req_fw_callback()
1427 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg_trigger_tlv); i++) { in iwl_req_fw_callback()
1440 drv->fw.dbg_trigger_tlv_len[i] = in iwl_req_fw_callback()
1442 drv->fw.dbg_trigger_tlv[i] = in iwl_req_fw_callback()
1444 drv->fw.dbg_trigger_tlv_len[i], in iwl_req_fw_callback()
1446 if (!drv->fw.dbg_trigger_tlv[i]) in iwl_req_fw_callback()
1453 drv->fw.dbg_mem_tlv = pieces->dbg_mem_tlv; in iwl_req_fw_callback()
1455 drv->fw.n_dbg_mem_tlv = pieces->n_dbg_mem_tlv; in iwl_req_fw_callback()
1462 fw->init_evtlog_ptr = pieces->init_evtlog_ptr; in iwl_req_fw_callback()
1464 fw->init_evtlog_size = (pieces->init_evtlog_size - 16)/12; in iwl_req_fw_callback()
1466 fw->init_evtlog_size = in iwl_req_fw_callback()
1468 fw->init_errlog_ptr = pieces->init_errlog_ptr; in iwl_req_fw_callback()
1469 fw->inst_evtlog_ptr = pieces->inst_evtlog_ptr; in iwl_req_fw_callback()
1471 fw->inst_evtlog_size = (pieces->inst_evtlog_size - 16)/12; in iwl_req_fw_callback()
1473 fw->inst_evtlog_size = in iwl_req_fw_callback()
1475 fw->inst_errlog_ptr = pieces->inst_errlog_ptr; in iwl_req_fw_callback()
1481 if (fw->ucode_capa.standard_phy_calibration_size > in iwl_req_fw_callback()
1483 fw->ucode_capa.standard_phy_calibration_size = in iwl_req_fw_callback()
1490 switch (fw->type) { in iwl_req_fw_callback()
1495 WARN(1, "Invalid fw type %d\n", fw->type); in iwl_req_fw_callback()
1502 drv->fw.fw_version, op->name); in iwl_req_fw_callback()