]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
accel/habanalabs: add Infineon version check
authorPavan S <pavan.sreenivas@intel.com>
Wed, 2 Oct 2024 07:46:40 +0000 (10:46 +0300)
committerKoby Elbaz <koby.elbaz@intel.com>
Thu, 25 Sep 2025 06:14:45 +0000 (09:14 +0300)
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: Pavan S <pavan.sreenivas@intel.com>
Reviewed-by: Koby Elbaz <koby.elbaz@intel.com>
Signed-off-by: Koby Elbaz <koby.elbaz@intel.com>
drivers/accel/habanalabs/common/sysfs.c

index 82f66520ec18b9f07c029c3d62d202057cad706a..8f55ba3b4e735a544165992af5750bb2ca52c428 100644 (file)
@@ -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);