Lines Matching refs:fw
112 struct iwl_fw fw; member
177 kfree(drv->fw.dbg.dest_tlv); in iwl_dealloc_ucode()
178 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg.conf_tlv); i++) in iwl_dealloc_ucode()
179 kfree(drv->fw.dbg.conf_tlv[i]); in iwl_dealloc_ucode()
180 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg.trigger_tlv); i++) in iwl_dealloc_ucode()
181 kfree(drv->fw.dbg.trigger_tlv[i]); in iwl_dealloc_ucode()
182 kfree(drv->fw.dbg.mem_tlv); in iwl_dealloc_ucode()
183 kfree(drv->fw.iml); in iwl_dealloc_ucode()
184 kfree(drv->fw.ucode_capa.cmd_versions); in iwl_dealloc_ucode()
187 iwl_free_fw_img(drv, drv->fw.img + i); in iwl_dealloc_ucode()
190 memset(&drv->fw, 0, sizeof(drv->fw)); 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()
520 drv->fw.ucode_ver = le32_to_cpu(ucode->ver); in iwl_parse_v1_v2_firmware()
521 api_ver = IWL_UCODE_API(drv->fw.ucode_ver); in iwl_parse_v1_v2_firmware()
567 snprintf(drv->fw.fw_version, in iwl_parse_v1_v2_firmware()
568 sizeof(drv->fw.fw_version), in iwl_parse_v1_v2_firmware()
570 IWL_UCODE_MAJOR(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
571 IWL_UCODE_MINOR(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
572 IWL_UCODE_API(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
573 IWL_UCODE_SERIAL(drv->fw.ucode_ver), in iwl_parse_v1_v2_firmware()
642 drv->fw.ucode_ver = le32_to_cpu(ucode->ver); in iwl_parse_tlv_firmware()
643 memcpy(drv->fw.human_readable, ucode->human_readable, in iwl_parse_tlv_firmware()
644 sizeof(drv->fw.human_readable)); in iwl_parse_tlv_firmware()
652 snprintf(drv->fw.fw_version, in iwl_parse_tlv_firmware()
653 sizeof(drv->fw.fw_version), in iwl_parse_tlv_firmware()
655 IWL_UCODE_MAJOR(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
656 IWL_UCODE_MINOR(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
657 IWL_UCODE_API(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
658 IWL_UCODE_SERIAL(drv->fw.ucode_ver), in iwl_parse_tlv_firmware()
797 drv->fw.enhance_sensitivity_table = true; in iwl_parse_tlv_firmware()
826 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
831 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
836 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
847 drv->fw.phy_config = le32_to_cpup((__le32 *)tlv_data); in iwl_parse_tlv_firmware()
848 drv->fw.valid_tx_ant = (drv->fw.phy_config & in iwl_parse_tlv_firmware()
851 drv->fw.valid_rx_ant = (drv->fw.phy_config & in iwl_parse_tlv_firmware()
858 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
863 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
868 drv->fw.type = IWL_FW_MVM; in iwl_parse_tlv_firmware()
877 drv->fw.img[IWL_UCODE_REGULAR].is_dual_cpus = in iwl_parse_tlv_firmware()
879 drv->fw.img[IWL_UCODE_INIT].is_dual_cpus = in iwl_parse_tlv_firmware()
881 drv->fw.img[IWL_UCODE_WOWLAN].is_dual_cpus = in iwl_parse_tlv_firmware()
889 if (iwl_store_cscheme(&drv->fw, tlv_data, tlv_len)) in iwl_parse_tlv_firmware()
911 snprintf(drv->fw.fw_version, in iwl_parse_tlv_firmware()
912 sizeof(drv->fw.fw_version), in iwl_parse_tlv_firmware()
916 snprintf(drv->fw.fw_version, in iwl_parse_tlv_firmware()
917 sizeof(drv->fw.fw_version), in iwl_parse_tlv_firmware()
958 drv->fw.dbg.n_dest_reg = (dest_v1) ? in iwl_parse_tlv_firmware()
966 drv->fw.dbg.n_dest_reg /= in iwl_parse_tlv_firmware()
967 sizeof(drv->fw.dbg.dest_tlv->reg_ops[0]); in iwl_parse_tlv_firmware()
981 if (conf->id >= ARRAY_SIZE(drv->fw.dbg.conf_tlv)) { in iwl_parse_tlv_firmware()
1010 if (trigger_id >= ARRAY_SIZE(drv->fw.dbg.trigger_tlv)) { in iwl_parse_tlv_firmware()
1037 drv->fw.dbg.dump_mask = in iwl_parse_tlv_firmware()
1070 drv->fw.img[IWL_UCODE_REGULAR].paging_mem_size = in iwl_parse_tlv_firmware()
1073 drv->fw.img[usniffer_img].paging_mem_size = in iwl_parse_tlv_firmware()
1102 drv->fw.iml_len = tlv_len; in iwl_parse_tlv_firmware()
1103 drv->fw.iml = kmemdup(tlv_data, tlv_len, GFP_KERNEL); in iwl_parse_tlv_firmware()
1104 if (!drv->fw.iml) in iwl_parse_tlv_firmware()
1243 drv->fw.img[type].sec = sec; in iwl_alloc_ucode()
1244 drv->fw.img[type].num_sec = pieces->img[type].sec_counter; in iwl_alloc_ucode()
1320 &drv->fw, dbgfs_dir); in _iwl_op_mode_start()
1359 struct iwl_fw *fw = &drv->fw; in iwl_req_fw_callback() local
1373 fw->ucode_capa.max_probe_length = IWL_DEFAULT_MAX_PROBE_LENGTH; in iwl_req_fw_callback()
1374 fw->ucode_capa.standard_phy_calibration_size = in iwl_req_fw_callback()
1376 fw->ucode_capa.n_scan_channels = IWL_DEFAULT_SCAN_CHANNELS; in iwl_req_fw_callback()
1377 fw->ucode_capa.num_stations = IWL_MVM_STATION_COUNT_MAX; in iwl_req_fw_callback()
1379 fw->dbg.dump_mask = 0xffffffff; in iwl_req_fw_callback()
1404 &fw->ucode_capa, &usniffer_images); in iwl_req_fw_callback()
1409 if (fw_has_api(&drv->fw.ucode_capa, IWL_UCODE_TLV_API_NEW_VERSION)) in iwl_req_fw_callback()
1410 api_ver = drv->fw.ucode_ver; in iwl_req_fw_callback()
1412 api_ver = IWL_UCODE_API(drv->fw.ucode_ver); in iwl_req_fw_callback()
1431 if (fw->type == IWL_FW_DVM && validate_sec_sizes(drv, pieces, in iwl_req_fw_callback()
1446 size_t dbg_dest_size = sizeof(*drv->fw.dbg.dest_tlv) + in iwl_req_fw_callback()
1447 sizeof(drv->fw.dbg.dest_tlv->reg_ops[0]) * in iwl_req_fw_callback()
1448 drv->fw.dbg.n_dest_reg; in iwl_req_fw_callback()
1450 drv->fw.dbg.dest_tlv = kmalloc(dbg_dest_size, GFP_KERNEL); in iwl_req_fw_callback()
1452 if (!drv->fw.dbg.dest_tlv) in iwl_req_fw_callback()
1456 memcpy(drv->fw.dbg.dest_tlv, pieces->dbg_dest_tlv_v1, in iwl_req_fw_callback()
1460 drv->fw.dbg.dest_tlv; in iwl_req_fw_callback()
1475 sizeof(drv->fw.dbg.dest_tlv->reg_ops[0]) * in iwl_req_fw_callback()
1476 drv->fw.dbg.n_dest_reg); in iwl_req_fw_callback()
1492 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg.conf_tlv); i++) { in iwl_req_fw_callback()
1494 drv->fw.dbg.conf_tlv[i] = in iwl_req_fw_callback()
1498 if (!drv->fw.dbg.conf_tlv[i]) in iwl_req_fw_callback()
1525 for (i = 0; i < ARRAY_SIZE(drv->fw.dbg.trigger_tlv); i++) { in iwl_req_fw_callback()
1538 drv->fw.dbg.trigger_tlv_len[i] = in iwl_req_fw_callback()
1540 drv->fw.dbg.trigger_tlv[i] = in iwl_req_fw_callback()
1542 drv->fw.dbg.trigger_tlv_len[i], in iwl_req_fw_callback()
1544 if (!drv->fw.dbg.trigger_tlv[i]) in iwl_req_fw_callback()
1551 drv->fw.dbg.mem_tlv = pieces->dbg_mem_tlv; in iwl_req_fw_callback()
1553 drv->fw.dbg.n_mem_tlv = pieces->n_mem_tlv; in iwl_req_fw_callback()
1560 fw->init_evtlog_ptr = pieces->init_evtlog_ptr; in iwl_req_fw_callback()
1562 fw->init_evtlog_size = (pieces->init_evtlog_size - 16)/12; in iwl_req_fw_callback()
1564 fw->init_evtlog_size = in iwl_req_fw_callback()
1566 fw->init_errlog_ptr = pieces->init_errlog_ptr; in iwl_req_fw_callback()
1567 fw->inst_evtlog_ptr = pieces->inst_evtlog_ptr; in iwl_req_fw_callback()
1569 fw->inst_evtlog_size = (pieces->inst_evtlog_size - 16)/12; in iwl_req_fw_callback()
1571 fw->inst_evtlog_size = in iwl_req_fw_callback()
1573 fw->inst_errlog_ptr = pieces->inst_errlog_ptr; in iwl_req_fw_callback()
1579 if (fw->ucode_capa.standard_phy_calibration_size > in iwl_req_fw_callback()
1581 fw->ucode_capa.standard_phy_calibration_size = in iwl_req_fw_callback()
1588 switch (fw->type) { in iwl_req_fw_callback()
1593 WARN(1, "Invalid fw type %d\n", fw->type); in iwl_req_fw_callback()
1601 drv->fw.fw_version, op->name); in iwl_req_fw_callback()