Lines Matching refs:firmware
419 int qe_upload_firmware(const struct qe_firmware *firmware) in qe_upload_firmware() argument
428 if (!firmware) { in qe_upload_firmware()
433 hdr = &firmware->header; in qe_upload_firmware()
450 if ((firmware->count < 1) || (firmware->count > MAX_QE_RISC)) { in qe_upload_firmware()
456 calc_size += (firmware->count - 1) * sizeof(struct qe_microcode); in qe_upload_firmware()
458 for (i = 0; i < firmware->count; i++) in qe_upload_firmware()
465 be32_to_cpu(firmware->microcode[i].count); in qe_upload_firmware()
474 crc = be32_to_cpu(*(__be32 *)((void *)firmware + calc_size)); in qe_upload_firmware()
475 if (crc != crc32(0, firmware, calc_size)) { in qe_upload_firmware()
483 if (!firmware->split) in qe_upload_firmware()
486 if (firmware->soc.model) in qe_upload_firmware()
489 firmware->id, be16_to_cpu(firmware->soc.model), in qe_upload_firmware()
490 firmware->soc.major, firmware->soc.minor); in qe_upload_firmware()
493 firmware->id); in qe_upload_firmware()
500 strlcpy(qe_firmware_info.id, firmware->id, sizeof(qe_firmware_info.id)); in qe_upload_firmware()
501 qe_firmware_info.extended_modes = firmware->extended_modes; in qe_upload_firmware()
502 memcpy(qe_firmware_info.vtraps, firmware->vtraps, in qe_upload_firmware()
503 sizeof(firmware->vtraps)); in qe_upload_firmware()
506 for (i = 0; i < firmware->count; i++) { in qe_upload_firmware()
507 const struct qe_microcode *ucode = &firmware->microcode[i]; in qe_upload_firmware()
511 qe_upload_microcode(firmware, ucode); in qe_upload_firmware()