Commit f9d918cf authored by Andrzej Kacprowski's avatar Andrzej Kacprowski Committed by Stanislaw Gruszka
Browse files

accel/ivpu: Print firmware name and version



Firmware file name and version are very important for debugging
customer issues - print them as INFO level message instead
of DEBUG message that is turned off by default.

Signed-off-by: default avatarAndrzej Kacprowski <andrzej.kacprowski@linux.intel.com>
Reviewed-by: default avatarStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Signed-off-by: default avatarStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230524074847.866711-5-stanislaw.gruszka@linux.intel.com
parent 8f7fb1e2
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -52,14 +52,20 @@ static int ivpu_fw_request(struct ivpu_device *vdev)
	int ret = -ENOENT;
	int i;

	if (ivpu_firmware)
		return request_firmware(&vdev->fw->file, ivpu_firmware, vdev->drm.dev);
	if (ivpu_firmware) {
		ret = request_firmware(&vdev->fw->file, ivpu_firmware, vdev->drm.dev);
		if (!ret)
			vdev->fw->name = ivpu_firmware;
		return ret;
	}

	for (i = 0; i < ARRAY_SIZE(fw_names); i++) {
		ret = firmware_request_nowarn(&vdev->fw->file, fw_names[i], vdev->drm.dev);
		if (!ret)
		if (!ret) {
			vdev->fw->name = fw_names[i];
			return 0;
		}
	}

	ivpu_err(vdev, "Failed to request firmware: %d\n", ret);
	return ret;
@@ -143,7 +149,9 @@ static int ivpu_fw_parse(struct ivpu_device *vdev)
	}
	ivpu_dbg(vdev, FW_BOOT, "Header version: 0x%x, format 0x%x\n",
		 fw_hdr->header_version, fw_hdr->image_format);
	ivpu_dbg(vdev, FW_BOOT, "FW version: %s\n", (char *)fw_hdr + VPU_FW_HEADER_SIZE);

	ivpu_info(vdev, "Firmware: %s, version: %s", fw->name,
		  (const char *)fw_hdr + VPU_FW_HEADER_SIZE);

	if (IVPU_FW_CHECK_API(vdev, fw_hdr, BOOT, 3))
		return -EINVAL;
+1 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ struct vpu_boot_params;

struct ivpu_fw_info {
	const struct firmware *file;
	const char *name;
	struct ivpu_bo *mem;
	struct ivpu_bo *mem_shave_nn;
	struct ivpu_bo *mem_log_crit;