Lines Matching refs:firmware

393  * Set to 1 if QE firmware has been uploaded, and therefore
411 printk(KERN_INFO "qe-firmware: "
415 printk(KERN_INFO "qe-firmware: "
441 * 'calc_size' is the calculated size, in bytes, of the firmware structure and
446 int qe_upload_firmware(const struct qe_firmware *firmware)
455 if (!firmware) {
456 printk(KERN_ERR "qe-firmware: invalid pointer\n");
460 hdr = &firmware->header;
466 printk(KERN_ERR "qe-firmware: not a microcode\n");
472 printk(KERN_ERR "qe-firmware: unsupported version\n");
477 if ((firmware->count < 1) || (firmware->count > MAX_QE_RISC)) {
478 printk(KERN_ERR "qe-firmware: invalid data\n");
483 calc_size = struct_size(firmware, microcode, firmware->count);
485 for (i = 0; i < firmware->count; i++)
492 be32_to_cpu(firmware->microcode[i].count);
496 printk(KERN_ERR "qe-firmware: invalid length\n");
501 crc = be32_to_cpu(*(__be32 *)((void *)firmware + calc_size));
502 if (crc != crc32(0, firmware, calc_size)) {
503 printk(KERN_ERR "qe-firmware: firmware CRC is invalid\n");
510 if (!firmware->split)
513 if (firmware->soc.model)
515 "qe-firmware: firmware '%s' for %u V%u.%u\n",
516 firmware->id, be16_to_cpu(firmware->soc.model),
517 firmware->soc.major, firmware->soc.minor);
519 printk(KERN_INFO "qe-firmware: firmware '%s'\n",
520 firmware->id);
527 strlcpy(qe_firmware_info.id, firmware->id, sizeof(qe_firmware_info.id));
528 qe_firmware_info.extended_modes = be64_to_cpu(firmware->extended_modes);
529 memcpy(qe_firmware_info.vtraps, firmware->vtraps,
530 sizeof(firmware->vtraps));
533 for (i = 0; i < firmware->count; i++) {
534 const struct qe_microcode *ucode = &firmware->microcode[i];
538 qe_upload_microcode(firmware, ucode);
561 * Get info on the currently-loaded firmware
564 * uploaded a firmware already.
574 * If we haven't checked yet, and a driver hasn't uploaded a firmware
589 /* Find the 'firmware' child node */
590 fw = of_get_child_by_name(qe, "firmware");
593 /* Did we find the 'firmware' node? */