Commit 6ca282c3 authored by Pavan S's avatar Pavan S Committed by Koby Elbaz
Browse files

accel/habanalabs: add Infineon version check



On HL338 ASICs, the Infineon first‑stage firmware is not present and
the reported version is 0. In this case printing a version number is
misleading, as it suggests valid firmware when it does not exist.

Fix this by printing the first‑stage Infineon firmware version only
if the reported value is non‑zero. This avoids confusing or incorrect
log messages on devices where the first stage is not applicable.

Signed-off-by: default avatarPavan S <pavan.sreenivas@intel.com>
Reviewed-by: default avatarKoby Elbaz <koby.elbaz@intel.com>
Signed-off-by: default avatarKoby Elbaz <koby.elbaz@intel.com>
parent a0d866ba
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -96,14 +96,21 @@ static ssize_t vrm_ver_show(struct device *dev, struct device_attribute *attr, c
	infineon_second_stage_third_instance =
					(infineon_second_stage_version >> 16) & mask;

	if (cpucp_info->infineon_second_stage_version)
	if (cpucp_info->infineon_version && cpucp_info->infineon_second_stage_version)
		return sprintf(buf, "%#04x %#04x:%#04x:%#04x\n",
				le32_to_cpu(cpucp_info->infineon_version),
				infineon_second_stage_first_instance,
				infineon_second_stage_second_instance,
				infineon_second_stage_third_instance);
	else
	else if (cpucp_info->infineon_second_stage_version)
		return sprintf(buf, "%#04x:%#04x:%#04x\n",
				infineon_second_stage_first_instance,
				infineon_second_stage_second_instance,
				infineon_second_stage_third_instance);
	else if (cpucp_info->infineon_version)
		return sprintf(buf, "%#04x\n", le32_to_cpu(cpucp_info->infineon_version));

	return 0;
}

static DEVICE_ATTR_RO(vrm_ver);