|
8 | 8 | #include "habanalabs.h"
|
9 | 9 |
|
10 | 10 | #include <linux/pci.h>
|
| 11 | +#include <linux/types.h> |
11 | 12 |
|
12 | 13 | static ssize_t clk_max_freq_mhz_show(struct device *dev, struct device_attribute *attr, char *buf)
|
13 | 14 | {
|
@@ -80,12 +81,27 @@ static ssize_t vrm_ver_show(struct device *dev, struct device_attribute *attr, c
|
80 | 81 | {
|
81 | 82 | struct hl_device *hdev = dev_get_drvdata(dev);
|
82 | 83 | struct cpucp_info *cpucp_info;
|
| 84 | + u32 infineon_second_stage_version; |
| 85 | + u32 infineon_second_stage_first_instance; |
| 86 | + u32 infineon_second_stage_second_instance; |
| 87 | + u32 infineon_second_stage_third_instance; |
| 88 | + u32 mask = 0xff; |
83 | 89 |
|
84 | 90 | cpucp_info = &hdev->asic_prop.cpucp_info;
|
85 | 91 |
|
| 92 | + infineon_second_stage_version = le32_to_cpu(cpucp_info->infineon_second_stage_version); |
| 93 | + infineon_second_stage_first_instance = infineon_second_stage_version & mask; |
| 94 | + infineon_second_stage_second_instance = |
| 95 | + (infineon_second_stage_version >> 8) & mask; |
| 96 | + infineon_second_stage_third_instance = |
| 97 | + (infineon_second_stage_version >> 16) & mask; |
| 98 | + |
86 | 99 | if (cpucp_info->infineon_second_stage_version)
|
87 |
| - return sprintf(buf, "%#04x %#04x\n", le32_to_cpu(cpucp_info->infineon_version), |
88 |
| - le32_to_cpu(cpucp_info->infineon_second_stage_version)); |
| 100 | + return sprintf(buf, "%#04x %#04x:%#04x:%#04x\n", |
| 101 | + le32_to_cpu(cpucp_info->infineon_version), |
| 102 | + infineon_second_stage_first_instance, |
| 103 | + infineon_second_stage_second_instance, |
| 104 | + infineon_second_stage_third_instance); |
89 | 105 | else
|
90 | 106 | return sprintf(buf, "%#04x\n", le32_to_cpu(cpucp_info->infineon_version));
|
91 | 107 | }
|
|
0 commit comments