habanalabs: expose card name in INFO IOCTL
authorOded Gabbay <oded.gabbay@gmail.com>
Wed, 16 Oct 2019 08:53:52 +0000 (11:53 +0300)
committerOded Gabbay <oded.gabbay@gmail.com>
Thu, 21 Nov 2019 09:35:45 +0000 (11:35 +0200)
To enable userspace processes, e.g. management utilities, to display the
card name to the user, add the card name property to the HW_IP
structure that is copied to the user in the INFO IOCTL.

Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
drivers/misc/habanalabs/goya/goya.c
drivers/misc/habanalabs/habanalabs_ioctl.c
include/uapi/misc/habanalabs.h

index e8812154343f3c8fbb0569282c14142eef31e2cd..d3ee9e2aa57ef05a2977032610ef7ecf427e5c06 100644 (file)
@@ -396,6 +396,9 @@ void goya_get_fixed_properties(struct hl_device *hdev)
        prop->tpc_enabled_mask = TPC_ENABLED_MASK;
        prop->pcie_dbi_base_address = mmPCIE_DBI_BASE;
        prop->pcie_aux_dbi_reg_addr = CFG_BASE + mmPCIE_AUX_DBI;
+
+       strncpy(prop->armcp_info.card_name, GOYA_DEFAULT_CARD_NAME,
+               CARD_NAME_MAX_LEN);
 }
 
 /*
index cd4b5a9ceac163b9d257adaff2f9363f89f87f1d..02d7491fa28fd785e39ddc20bc519139ec6c6c95 100644 (file)
@@ -63,8 +63,13 @@ static int hw_ip_info(struct hl_device *hdev, struct hl_info_args *args)
        if (hw_ip.dram_size > 0)
                hw_ip.dram_enabled = 1;
        hw_ip.num_of_events = prop->num_of_events;
-       memcpy(hw_ip.armcp_version,
-               prop->armcp_info.armcp_version, VERSION_MAX_LEN);
+
+       memcpy(hw_ip.armcp_version, prop->armcp_info.armcp_version,
+               min(VERSION_MAX_LEN, HL_INFO_VERSION_MAX_LEN));
+
+       memcpy(hw_ip.card_name, prop->armcp_info.card_name,
+               min(CARD_NAME_MAX_LEN, HL_INFO_CARD_NAME_MAX_LEN));
+
        hw_ip.armcp_cpld_version = le32_to_cpu(prop->armcp_info.cpld_version);
        hw_ip.psoc_pci_pll_nr = prop->psoc_pci_pll_nr;
        hw_ip.psoc_pci_pll_nf = prop->psoc_pci_pll_nf;
index 783793c8be1c8e1e6782df8071b5261b88037e8a..e387d9e560b34dbaf376fa54ca4dffe6f8cdba1c 100644 (file)
@@ -109,6 +109,7 @@ enum hl_device_status {
 #define HL_INFO_CLK_RATE               8
 
 #define HL_INFO_VERSION_MAX_LEN        128
+#define HL_INFO_CARD_NAME_MAX_LEN      16
 
 struct hl_info_hw_ip_info {
        __u64 sram_base_address;
@@ -127,6 +128,7 @@ struct hl_info_hw_ip_info {
        __u8 dram_enabled;
        __u8 pad[2];
        __u8 armcp_version[HL_INFO_VERSION_MAX_LEN];
+       __u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
 };
 
 struct hl_info_dram_usage {