mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 00:26:47 +07:00
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;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +55,8 @@
|
|||||||
|
|
||||||
#define DRAM_PHYS_DEFAULT_SIZE 0x100000000ull /* 4GB */
|
#define DRAM_PHYS_DEFAULT_SIZE 0x100000000ull /* 4GB */
|
||||||
|
|
||||||
|
#define GOYA_DEFAULT_CARD_NAME "HL1000"
|
||||||
|
|
||||||
/* DRAM Memory Map */
|
/* DRAM Memory Map */
|
||||||
|
|
||||||
#define CPU_FW_IMAGE_SIZE 0x10000000 /* 256MB */
|
#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)
|
int hl_hwmon_init(struct hl_device *hdev)
|
||||||
{
|
{
|
||||||
struct device *dev = hdev->pdev ? &hdev->pdev->dev : hdev->dev;
|
struct device *dev = hdev->pdev ? &hdev->pdev->dev : hdev->dev;
|
||||||
|
struct asic_fixed_properties *prop = &hdev->asic_prop;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if ((hdev->hwmon_initialized) || !(hdev->fw_loading))
|
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->hl_chip_info->ops = &hl_hwmon_ops;
|
||||||
|
|
||||||
hdev->hwmon_dev = hwmon_device_register_with_info(dev,
|
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)) {
|
if (IS_ERR(hdev->hwmon_dev)) {
|
||||||
rc = PTR_ERR(hdev->hwmon_dev);
|
rc = PTR_ERR(hdev->hwmon_dev);
|
||||||
dev_err(hdev->dev,
|
dev_err(hdev->dev,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0
|
/* SPDX-License-Identifier: GPL-2.0
|
||||||
*
|
*
|
||||||
* Copyright 2016-2018 HabanaLabs, Ltd.
|
* Copyright 2016-2019 HabanaLabs, Ltd.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -310,6 +310,7 @@ struct eq_generic_event {
|
|||||||
* ArmCP info
|
* ArmCP info
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define CARD_NAME_MAX_LEN 16
|
||||||
#define VERSION_MAX_LEN 128
|
#define VERSION_MAX_LEN 128
|
||||||
#define ARMCP_MAX_SENSORS 128
|
#define ARMCP_MAX_SENSORS 128
|
||||||
|
|
||||||
@ -318,6 +319,19 @@ struct armcp_sensor {
|
|||||||
__le32 flags;
|
__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_info {
|
||||||
struct armcp_sensor sensors[ARMCP_MAX_SENSORS];
|
struct armcp_sensor sensors[ARMCP_MAX_SENSORS];
|
||||||
__u8 kernel_version[VERSION_MAX_LEN];
|
__u8 kernel_version[VERSION_MAX_LEN];
|
||||||
@ -328,6 +342,7 @@ struct armcp_info {
|
|||||||
__u8 thermal_version[VERSION_MAX_LEN];
|
__u8 thermal_version[VERSION_MAX_LEN];
|
||||||
__u8 armcp_version[VERSION_MAX_LEN];
|
__u8 armcp_version[VERSION_MAX_LEN];
|
||||||
__le64 dram_size;
|
__le64 dram_size;
|
||||||
|
char card_name[CARD_NAME_MAX_LEN];
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* ARMCP_IF_H */
|
#endif /* ARMCP_IF_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user