msm_shared: smem: Add New v7 format type for socinfo
Change-Id: Iedd3f55a2c5f27f1009a10ae2cea857272c1cf11
diff --git a/platform/msm_shared/board.c b/platform/msm_shared/board.c
index c9d48bf..fdc5ed0 100644
--- a/platform/msm_shared/board.c
+++ b/platform/msm_shared/board.c
@@ -42,6 +42,7 @@
static void platform_detect()
{
struct smem_board_info_v6 board_info_v6;
+ struct smem_board_info_v7 board_info_v7;
unsigned int board_info_len = 0;
unsigned ret = 0;
unsigned format = 0;
@@ -51,23 +52,39 @@
if (ret)
return;
- if (format == 6) {
- board_info_len = sizeof(board_info_v6);
+ if (format == 6)
+ {
+ board_info_len = sizeof(board_info_v6);
- ret =
- smem_read_alloc_entry(SMEM_BOARD_INFO_LOCATION,
- &board_info_v6,
- board_info_len);
+ ret = smem_read_alloc_entry(SMEM_BOARD_INFO_LOCATION,
+ &board_info_v6,
+ board_info_len);
if (ret)
return;
board.platform = board_info_v6.board_info_v3.msm_id;
- board.platform_hw =
- board_info_v6.board_info_v3.hw_platform;
- board.platform_subtype =
- board_info_v6.platform_subtype;
- } else {
- dprintf(CRITICAL, "Unsupported board info format.\n");
+ board.platform_hw = board_info_v6.board_info_v3.hw_platform;
+ board.platform_subtype = board_info_v6.platform_subtype;
+ }
+ else if (format == 7)
+ {
+ board_info_len = sizeof(board_info_v7);
+
+ ret = smem_read_alloc_entry(SMEM_BOARD_INFO_LOCATION,
+ &board_info_v7,
+ board_info_len);
+ if (ret)
+ return;
+
+ board.platform = board_info_v7.board_info_v3.msm_id;
+ board.platform_hw = board_info_v7.board_info_v3.hw_platform;
+ board.platform_subtype = board_info_v7.platform_subtype;
+
+ }
+ else
+ {
+ dprintf(CRITICAL, "Unsupported board info format\n");
+ ASSERT(0);
}
}