Lines Matching refs:firmware

394  * Set to 1 if QE firmware has been uploaded, and therefore
412 printk(KERN_INFO "qe-firmware: "
416 printk(KERN_INFO "qe-firmware: "
442 * 'calc_size' is the calculated size, in bytes, of the firmware structure and
447 int qe_upload_firmware(const struct qe_firmware *firmware)
456 if (!firmware) {
457 printk(KERN_ERR "qe-firmware: invalid pointer\n");
461 hdr = &firmware->header;
467 printk(KERN_ERR "qe-firmware: not a microcode\n");
473 printk(KERN_ERR "qe-firmware: unsupported version\n");
478 if ((firmware->count < 1) || (firmware->count > MAX_QE_RISC)) {
479 printk(KERN_ERR "qe-firmware: invalid data\n");
484 calc_size = struct_size(firmware, microcode, firmware->count);
486 for (i = 0; i < firmware->count; i++)
493 be32_to_cpu(firmware->microcode[i].count);
497 printk(KERN_ERR "qe-firmware: invalid length\n");
502 crc = be32_to_cpu(*(__be32 *)((void *)firmware + calc_size));
503 if (crc != crc32(0, firmware, calc_size)) {
504 printk(KERN_ERR "qe-firmware: firmware CRC is invalid\n");
511 if (!firmware->split)
514 if (firmware->soc.model)
516 "qe-firmware: firmware '%s' for %u V%u.%u\n",
517 firmware->id, be16_to_cpu(firmware->soc.model),
518 firmware->soc.major, firmware->soc.minor);
520 printk(KERN_INFO "qe-firmware: firmware '%s'\n",
521 firmware->id);
528 strscpy(qe_firmware_info.id, firmware->id, sizeof(qe_firmware_info.id));
529 qe_firmware_info.extended_modes = be64_to_cpu(firmware->extended_modes);
530 memcpy(qe_firmware_info.vtraps, firmware->vtraps,
531 sizeof(firmware->vtraps));
534 for (i = 0; i < firmware->count; i++) {
535 const struct qe_microcode *ucode = &firmware->microcode[i];
539 qe_upload_microcode(firmware, ucode);
562 * Get info on the currently-loaded firmware
565 * uploaded a firmware already.
575 * If we haven't checked yet, and a driver hasn't uploaded a firmware
590 /* Find the 'firmware' child node */
591 fw = of_get_child_by_name(qe, "firmware");
594 /* Did we find the 'firmware' node? */