Lines Matching refs:firmware
417 int qe_upload_firmware(const struct qe_firmware *firmware) in qe_upload_firmware() argument
426 if (!firmware) { in qe_upload_firmware()
431 hdr = &firmware->header; in qe_upload_firmware()
448 if ((firmware->count < 1) || (firmware->count > MAX_QE_RISC)) { in qe_upload_firmware()
454 calc_size += (firmware->count - 1) * sizeof(struct qe_microcode); in qe_upload_firmware()
456 for (i = 0; i < firmware->count; i++) in qe_upload_firmware()
463 be32_to_cpu(firmware->microcode[i].count); in qe_upload_firmware()
472 crc = be32_to_cpu(*(__be32 *)((void *)firmware + calc_size)); in qe_upload_firmware()
473 if (crc != crc32(0, firmware, calc_size)) { in qe_upload_firmware()
481 if (!firmware->split) in qe_upload_firmware()
484 if (firmware->soc.model) in qe_upload_firmware()
487 firmware->id, be16_to_cpu(firmware->soc.model), in qe_upload_firmware()
488 firmware->soc.major, firmware->soc.minor); in qe_upload_firmware()
491 firmware->id); in qe_upload_firmware()
498 strcpy(qe_firmware_info.id, firmware->id); in qe_upload_firmware()
499 qe_firmware_info.extended_modes = firmware->extended_modes; in qe_upload_firmware()
500 memcpy(qe_firmware_info.vtraps, firmware->vtraps, in qe_upload_firmware()
501 sizeof(firmware->vtraps)); in qe_upload_firmware()
504 for (i = 0; i < firmware->count; i++) { in qe_upload_firmware()
505 const struct qe_microcode *ucode = &firmware->microcode[i]; in qe_upload_firmware()
509 qe_upload_microcode(firmware, ucode); in qe_upload_firmware()