forked from luck/tmp_suning_uos_patched
habanalabs: display card name as sensors header
To allow the user to use a custom file for the HWMON lm-sensors library per card type, the driver needs to register the HWMON sensors with the specific card type name. The card name is supplied by the F/W running on the device. If the F/W is old and doesn't supply a card name, a default card name is displayed as the sensors group name. Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com> Reviewed-by: Omer Shpigelman <oshpigelman@habana.ai>
This commit is contained in:
parent
e9730763a2
commit
0996bd1c74
|
@ -4961,6 +4961,10 @@ int goya_armcp_info_get(struct hl_device *hdev)
|
|||
prop->dram_end_address = prop->dram_base_address + dram_size;
|
||||
}
|
||||
|
||||
if (!strlen(prop->armcp_info.card_name))
|
||||
strncpy(prop->armcp_info.card_name, GOYA_DEFAULT_CARD_NAME,
|
||||
CARD_NAME_MAX_LEN);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -55,6 +55,8 @@
|
|||
|
||||
#define DRAM_PHYS_DEFAULT_SIZE 0x100000000ull /* 4GB */
|
||||
|
||||
#define GOYA_DEFAULT_CARD_NAME "HL1000"
|
||||
|
||||
/* DRAM Memory Map */
|
||||
|
||||
#define CPU_FW_IMAGE_SIZE 0x10000000 /* 256MB */
|
||||
|
|
|
@ -421,6 +421,7 @@ void hl_set_pwm_info(struct hl_device *hdev, int sensor_index, u32 attr,
|
|||
int hl_hwmon_init(struct hl_device *hdev)
|
||||
{
|
||||
struct device *dev = hdev->pdev ? &hdev->pdev->dev : hdev->dev;
|
||||
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||
int rc;
|
||||
|
||||
if ((hdev->hwmon_initialized) || !(hdev->fw_loading))
|
||||
|
@ -430,7 +431,8 @@ int hl_hwmon_init(struct hl_device *hdev)
|
|||
hdev->hl_chip_info->ops = &hl_hwmon_ops;
|
||||
|
||||
hdev->hwmon_dev = hwmon_device_register_with_info(dev,
|
||||
"habanalabs", hdev, hdev->hl_chip_info, NULL);
|
||||
prop->armcp_info.card_name, hdev,
|
||||
hdev->hl_chip_info, NULL);
|
||||
if (IS_ERR(hdev->hwmon_dev)) {
|
||||
rc = PTR_ERR(hdev->hwmon_dev);
|
||||
dev_err(hdev->dev,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2016-2018 HabanaLabs, Ltd.
|
||||
* Copyright 2016-2019 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
|
@ -310,6 +310,7 @@ struct eq_generic_event {
|
|||
* ArmCP info
|
||||
*/
|
||||
|
||||
#define CARD_NAME_MAX_LEN 16
|
||||
#define VERSION_MAX_LEN 128
|
||||
#define ARMCP_MAX_SENSORS 128
|
||||
|
||||
|
@ -318,6 +319,19 @@ struct armcp_sensor {
|
|||
__le32 flags;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct armcp_info - host driver's necessary info from ArmCP.
|
||||
* @sensors: available sensors description.
|
||||
* @kernel_version: ArmCP linux kernel version.
|
||||
* @reserved: reserved field.
|
||||
* @cpld_version: CPLD programmed F/W version.
|
||||
* @infineon_version: Infineon main DC-DC version.
|
||||
* @fuse_version: silicon production FUSE information.
|
||||
* @thermal_version: thermald S/W version.
|
||||
* @armcp_version: ArmCP S/W version.
|
||||
* @dram_size: available DRAM size.
|
||||
* @card_name: card name that will be displayed in HWMON subsystem on the host
|
||||
*/
|
||||
struct armcp_info {
|
||||
struct armcp_sensor sensors[ARMCP_MAX_SENSORS];
|
||||
__u8 kernel_version[VERSION_MAX_LEN];
|
||||
|
@ -328,6 +342,7 @@ struct armcp_info {
|
|||
__u8 thermal_version[VERSION_MAX_LEN];
|
||||
__u8 armcp_version[VERSION_MAX_LEN];
|
||||
__le64 dram_size;
|
||||
char card_name[CARD_NAME_MAX_LEN];
|
||||
};
|
||||
|
||||
#endif /* ARMCP_IF_H */
|
||||
|
|
Loading…
Reference in New Issue
Block a user