Lines Matching refs:pieces

302 static struct fw_sec *get_sec(struct iwl_firmware_pieces *pieces,  in get_sec()  argument
306 return &pieces->img[type].sec[sec]; in get_sec()
309 static void set_sec_data(struct iwl_firmware_pieces *pieces, in set_sec_data() argument
314 pieces->img[type].sec[sec].data = data; in set_sec_data()
317 static void set_sec_size(struct iwl_firmware_pieces *pieces, in set_sec_size() argument
322 pieces->img[type].sec[sec].size = size; in set_sec_size()
325 static size_t get_sec_size(struct iwl_firmware_pieces *pieces, in get_sec_size() argument
329 return pieces->img[type].sec[sec].size; in get_sec_size()
332 static void set_sec_offset(struct iwl_firmware_pieces *pieces, in set_sec_offset() argument
337 pieces->img[type].sec[sec].offset = offset; in set_sec_offset()
402 static int iwl_store_ucode_sec(struct iwl_firmware_pieces *pieces, in iwl_store_ucode_sec() argument
410 if (WARN_ON(!pieces || !data || type >= IWL_UCODE_TYPE_MAX)) in iwl_store_ucode_sec()
415 img = &pieces->img[type]; in iwl_store_ucode_sec()
491 struct iwl_firmware_pieces *pieces) in iwl_parse_v1_v2_firmware() argument
509 set_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_INST, in iwl_parse_v1_v2_firmware()
511 set_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_DATA, in iwl_parse_v1_v2_firmware()
513 set_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_INST, in iwl_parse_v1_v2_firmware()
515 set_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_DATA, in iwl_parse_v1_v2_firmware()
528 set_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_INST, in iwl_parse_v1_v2_firmware()
530 set_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_DATA, in iwl_parse_v1_v2_firmware()
532 set_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_INST, in iwl_parse_v1_v2_firmware()
534 set_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_DATA, in iwl_parse_v1_v2_firmware()
559 get_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_INST) + in iwl_parse_v1_v2_firmware()
560 get_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_DATA) + in iwl_parse_v1_v2_firmware()
561 get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_INST) + in iwl_parse_v1_v2_firmware()
562 get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_DATA)) { in iwl_parse_v1_v2_firmware()
571 set_sec_data(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_INST, src); in iwl_parse_v1_v2_firmware()
572 src += get_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_INST); in iwl_parse_v1_v2_firmware()
573 set_sec_offset(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_INST, in iwl_parse_v1_v2_firmware()
575 set_sec_data(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_DATA, src); in iwl_parse_v1_v2_firmware()
576 src += get_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_DATA); in iwl_parse_v1_v2_firmware()
577 set_sec_offset(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_DATA, in iwl_parse_v1_v2_firmware()
579 set_sec_data(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_INST, src); in iwl_parse_v1_v2_firmware()
580 src += get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_INST); in iwl_parse_v1_v2_firmware()
581 set_sec_offset(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_INST, in iwl_parse_v1_v2_firmware()
583 set_sec_data(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_DATA, src); in iwl_parse_v1_v2_firmware()
584 src += get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_DATA); in iwl_parse_v1_v2_firmware()
585 set_sec_offset(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_DATA, in iwl_parse_v1_v2_firmware()
592 struct iwl_firmware_pieces *pieces, in iwl_parse_tlv_firmware() argument
664 set_sec_data(pieces, IWL_UCODE_REGULAR, in iwl_parse_tlv_firmware()
666 set_sec_size(pieces, IWL_UCODE_REGULAR, in iwl_parse_tlv_firmware()
668 set_sec_offset(pieces, IWL_UCODE_REGULAR, in iwl_parse_tlv_firmware()
673 set_sec_data(pieces, IWL_UCODE_REGULAR, in iwl_parse_tlv_firmware()
675 set_sec_size(pieces, IWL_UCODE_REGULAR, in iwl_parse_tlv_firmware()
677 set_sec_offset(pieces, IWL_UCODE_REGULAR, in iwl_parse_tlv_firmware()
682 set_sec_data(pieces, IWL_UCODE_INIT, in iwl_parse_tlv_firmware()
684 set_sec_size(pieces, IWL_UCODE_INIT, in iwl_parse_tlv_firmware()
686 set_sec_offset(pieces, IWL_UCODE_INIT, in iwl_parse_tlv_firmware()
691 set_sec_data(pieces, IWL_UCODE_INIT, in iwl_parse_tlv_firmware()
693 set_sec_size(pieces, IWL_UCODE_INIT, in iwl_parse_tlv_firmware()
695 set_sec_offset(pieces, IWL_UCODE_INIT, in iwl_parse_tlv_firmware()
744 pieces->init_evtlog_ptr = in iwl_parse_tlv_firmware()
750 pieces->init_evtlog_size = in iwl_parse_tlv_firmware()
756 pieces->init_errlog_ptr = in iwl_parse_tlv_firmware()
762 pieces->inst_evtlog_ptr = in iwl_parse_tlv_firmware()
768 pieces->inst_evtlog_size = in iwl_parse_tlv_firmware()
774 pieces->inst_errlog_ptr = in iwl_parse_tlv_firmware()
783 set_sec_data(pieces, IWL_UCODE_WOWLAN, in iwl_parse_tlv_firmware()
785 set_sec_size(pieces, IWL_UCODE_WOWLAN, in iwl_parse_tlv_firmware()
787 set_sec_offset(pieces, IWL_UCODE_WOWLAN, in iwl_parse_tlv_firmware()
792 set_sec_data(pieces, IWL_UCODE_WOWLAN, in iwl_parse_tlv_firmware()
794 set_sec_size(pieces, IWL_UCODE_WOWLAN, in iwl_parse_tlv_firmware()
796 set_sec_offset(pieces, IWL_UCODE_WOWLAN, in iwl_parse_tlv_firmware()
807 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_REGULAR, in iwl_parse_tlv_firmware()
812 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_INIT, in iwl_parse_tlv_firmware()
817 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_WOWLAN, in iwl_parse_tlv_firmware()
839 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_REGULAR, in iwl_parse_tlv_firmware()
844 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_INIT, in iwl_parse_tlv_firmware()
849 iwl_store_ucode_sec(pieces, tlv_data, IWL_UCODE_WOWLAN, in iwl_parse_tlv_firmware()
901 if (pieces->dbg_dest_tlv) { in iwl_parse_tlv_firmware()
907 pieces->dbg_dest_tlv = dest; in iwl_parse_tlv_firmware()
922 if (!pieces->dbg_dest_tlv) { in iwl_parse_tlv_firmware()
936 if (pieces->dbg_conf_tlv[conf->id]) { in iwl_parse_tlv_firmware()
949 pieces->dbg_conf_tlv[conf->id] = conf; in iwl_parse_tlv_firmware()
950 pieces->dbg_conf_tlv_len[conf->id] = tlv_len; in iwl_parse_tlv_firmware()
965 if (pieces->dbg_trigger_tlv[trigger_id]) { in iwl_parse_tlv_firmware()
974 pieces->dbg_trigger_tlv[trigger_id] = trigger; in iwl_parse_tlv_firmware()
975 pieces->dbg_trigger_tlv_len[trigger_id] = tlv_len; in iwl_parse_tlv_firmware()
980 iwl_store_ucode_sec(pieces, tlv_data, in iwl_parse_tlv_firmware()
1063 struct iwl_firmware_pieces *pieces, in iwl_alloc_ucode() argument
1068 i < IWL_UCODE_SECTION_MAX && get_sec_size(pieces, type, i); in iwl_alloc_ucode()
1071 get_sec(pieces, type, i))) in iwl_alloc_ucode()
1077 struct iwl_firmware_pieces *pieces, in validate_sec_sizes() argument
1081 get_sec_size(pieces, IWL_UCODE_REGULAR, in validate_sec_sizes()
1084 get_sec_size(pieces, IWL_UCODE_REGULAR, in validate_sec_sizes()
1087 get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_INST)); in validate_sec_sizes()
1089 get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_DATA)); in validate_sec_sizes()
1092 if (get_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_INST) > in validate_sec_sizes()
1095 get_sec_size(pieces, IWL_UCODE_REGULAR, in validate_sec_sizes()
1100 if (get_sec_size(pieces, IWL_UCODE_REGULAR, IWL_UCODE_SECTION_DATA) > in validate_sec_sizes()
1103 get_sec_size(pieces, IWL_UCODE_REGULAR, in validate_sec_sizes()
1108 if (get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_INST) > in validate_sec_sizes()
1111 get_sec_size(pieces, IWL_UCODE_INIT, in validate_sec_sizes()
1116 if (get_sec_size(pieces, IWL_UCODE_INIT, IWL_UCODE_SECTION_DATA) > in validate_sec_sizes()
1119 get_sec_size(pieces, IWL_UCODE_REGULAR, in validate_sec_sizes()
1183 struct iwl_firmware_pieces *pieces; in iwl_req_fw_callback() local
1200 pieces = kzalloc(sizeof(*pieces), GFP_KERNEL); in iwl_req_fw_callback()
1201 if (!pieces) in iwl_req_fw_callback()
1225 err = iwl_parse_v1_v2_firmware(drv, ucode_raw, pieces); in iwl_req_fw_callback()
1227 err = iwl_parse_tlv_firmware(drv, ucode_raw, pieces, in iwl_req_fw_callback()
1271 if (!fw->mvm_fw && validate_sec_sizes(drv, pieces, drv->cfg)) in iwl_req_fw_callback()
1280 if (iwl_alloc_ucode(drv, pieces, i)) in iwl_req_fw_callback()
1283 if (pieces->dbg_dest_tlv) { in iwl_req_fw_callback()
1285 kmemdup(pieces->dbg_dest_tlv, in iwl_req_fw_callback()
1286 sizeof(*pieces->dbg_dest_tlv) + in iwl_req_fw_callback()
1287 sizeof(pieces->dbg_dest_tlv->reg_ops[0]) * in iwl_req_fw_callback()
1295 if (pieces->dbg_conf_tlv[i]) { in iwl_req_fw_callback()
1297 pieces->dbg_conf_tlv_len[i]; in iwl_req_fw_callback()
1299 kmemdup(pieces->dbg_conf_tlv[i], in iwl_req_fw_callback()
1328 if (pieces->dbg_trigger_tlv[i]) { in iwl_req_fw_callback()
1336 if (WARN_ON(pieces->dbg_trigger_tlv_len[i] < in iwl_req_fw_callback()
1341 pieces->dbg_trigger_tlv_len[i]; in iwl_req_fw_callback()
1343 kmemdup(pieces->dbg_trigger_tlv[i], in iwl_req_fw_callback()
1358 fw->init_evtlog_ptr = pieces->init_evtlog_ptr; in iwl_req_fw_callback()
1359 if (pieces->init_evtlog_size) in iwl_req_fw_callback()
1360 fw->init_evtlog_size = (pieces->init_evtlog_size - 16)/12; in iwl_req_fw_callback()
1364 fw->init_errlog_ptr = pieces->init_errlog_ptr; in iwl_req_fw_callback()
1365 fw->inst_evtlog_ptr = pieces->inst_evtlog_ptr; in iwl_req_fw_callback()
1366 if (pieces->inst_evtlog_size) in iwl_req_fw_callback()
1367 fw->inst_evtlog_size = (pieces->inst_evtlog_size - 16)/12; in iwl_req_fw_callback()
1371 fw->inst_errlog_ptr = pieces->inst_errlog_ptr; in iwl_req_fw_callback()
1430 kfree(pieces); in iwl_req_fw_callback()
1438 kfree(pieces); in iwl_req_fw_callback()
1446 kfree(pieces); in iwl_req_fw_callback()