summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/soc/qcom/icnss.c8
-rw-r--r--include/soc/qcom/icnss.h8
2 files changed, 15 insertions, 1 deletions
diff --git a/drivers/soc/qcom/icnss.c b/drivers/soc/qcom/icnss.c
index ea25ed5d0611..e8a9751fa266 100644
--- a/drivers/soc/qcom/icnss.c
+++ b/drivers/soc/qcom/icnss.c
@@ -1580,6 +1580,14 @@ int icnss_get_soc_info(struct icnss_soc_info *info)
info->v_addr = penv->mem_base_va;
info->p_addr = penv->mem_base_pa;
+ info->chip_id = penv->chip_info.chip_id;
+ info->chip_family = penv->chip_info.chip_family;
+ info->board_id = penv->board_info.board_id;
+ info->soc_id = penv->soc_info.soc_id;
+ info->fw_version = penv->fw_version_info.fw_version;
+ strlcpy(info->fw_build_timestamp,
+ penv->fw_version_info.fw_build_timestamp,
+ QMI_WLFW_MAX_TIMESTAMP_LEN_V01 + 1);
return 0;
}
diff --git a/include/soc/qcom/icnss.h b/include/soc/qcom/icnss.h
index 6c3ec33cc613..6275e4536bc0 100644
--- a/include/soc/qcom/icnss.h
+++ b/include/soc/qcom/icnss.h
@@ -15,6 +15,7 @@
#include <linux/interrupt.h>
#define ICNSS_MAX_IRQ_REGISTRATIONS 12
+#define ICNSS_MAX_TIMESTAMP_LEN 32
struct icnss_driver_ops {
char *name;
@@ -79,7 +80,12 @@ enum icnss_driver_mode {
struct icnss_soc_info {
void __iomem *v_addr;
phys_addr_t p_addr;
- u32 version;
+ uint32_t chip_id;
+ uint32_t chip_family;
+ uint32_t board_id;
+ uint32_t soc_id;
+ uint32_t fw_version;
+ char fw_build_timestamp[ICNSS_MAX_TIMESTAMP_LEN + 1];
};
extern int icnss_register_driver(struct icnss_driver_ops *driver);