diff --git a/core/pld/inc/pld_common.h b/core/pld/inc/pld_common.h index 167c4f6e1db4..93fdb163b9a0 100644 --- a/core/pld/inc/pld_common.h +++ b/core/pld/inc/pld_common.h @@ -264,6 +264,23 @@ enum pld_driver_mode { PLD_COLDBOOT_CALIBRATION = 7 }; +/** + * struct pld_device_version - WLAN device version info + * @family_number: family number of WLAN SOC HW + * @device_number: device number of WLAN SOC HW + * @major_version: major version of WLAN SOC HW + * @minor_version: minor version of WLAN SOC HW + * + * pld_device_version is used to store WLAN device version info + */ + +struct pld_device_version { + u32 family_number; + u32 device_number; + u32 major_version; + u32 minor_version; +}; + #define PLD_MAX_TIMESTAMP_LEN 32 /** @@ -276,6 +293,7 @@ enum pld_driver_mode { * @soc_id: SOC ID * @fw_version: FW version * @fw_build_timestamp: FW build timestamp + * @device_version: WLAN device version info * * pld_soc_info is used to store WLAN SOC information. */ @@ -288,6 +306,7 @@ struct pld_soc_info { u32 soc_id; u32 fw_version; char fw_build_timestamp[PLD_MAX_TIMESTAMP_LEN + 1]; + struct pld_device_version device_version; }; /** diff --git a/core/pld/src/pld_pcie.c b/core/pld/src/pld_pcie.c index 0292cc76385b..8894dd9c77c0 100644 --- a/core/pld/src/pld_pcie.c +++ b/core/pld/src/pld_pcie.c @@ -717,6 +717,14 @@ int pld_pcie_get_soc_info(struct device *dev, struct pld_soc_info *info) info->fw_version = cnss_info.fw_version; strlcpy(info->fw_build_timestamp, cnss_info.fw_build_timestamp, sizeof(info->fw_build_timestamp)); + info->device_version.family_number = + cnss_info.device_version.family_number; + info->device_version.device_number = + cnss_info.device_version.device_number; + info->device_version.major_version = + cnss_info.device_version.major_version; + info->device_version.minor_version = + cnss_info.device_version.minor_version; return 0; }