platform: msm_shared: Add smem changes for SMD

Add smem macro and api to read smem entry.

Change-Id: I1aa951d6f427fcaa49a444f0196ed5a18789e817
diff --git a/platform/msm_shared/smem.c b/platform/msm_shared/smem.c
index 4bf9fda..948a256 100644
--- a/platform/msm_shared/smem.c
+++ b/platform/msm_shared/smem.c
@@ -97,6 +97,45 @@
 	return 0;
 }
 
+/* Return a pointer to smem_item with size */
+void* smem_get_alloc_entry(smem_mem_type_t type, uint32_t* size)
+{
+	struct smem_alloc_info *ainfo = NULL;
+	uint32_t smem_addr = 0;
+	uint32_t base_ext = 0;
+	uint32_t offset = 0;
+	void *ret = 0;
+
+#if DYNAMIC_SMEM
+	smem_addr = smem_get_base_addr();
+#else
+	smem_addr = platform_get_smem_base_addr();
+#endif
+	smem = (struct smem *)smem_addr;
+
+	if (type < SMEM_FIRST_VALID_TYPE || type > SMEM_LAST_VALID_TYPE)
+		return 1;
+
+	ainfo = &smem->alloc_info[type];
+	if (readl(&ainfo->allocated) == 0)
+		return 1;
+
+	*size = readl(&ainfo->size);
+	base_ext = readl(&ainfo->base_ext);
+	offset = readl(&ainfo->offset);
+
+	if(base_ext)
+	{
+		ret = base_ext + offset;
+	}
+	else
+	{
+		ret = (void*) smem_addr + offset;
+	}
+
+	return ret;
+}
+
 unsigned
 smem_read_alloc_entry_offset(smem_mem_type_t type, void *buf, int len,
 			     int offset)
diff --git a/platform/msm_shared/smem.h b/platform/msm_shared/smem.h
index c637024..1d68c66 100644
--- a/platform/msm_shared/smem.h
+++ b/platform/msm_shared/smem.h
@@ -47,6 +47,8 @@
 
 #define SMEM_TARGET_INFO_IDENTIFIER     0x49494953
 
+#define SMEM_NUM_SMD_STREAM_CHANNELS        64
+
 enum smem_ram_ptable_version
 {
 	SMEM_RAM_PTABLE_VERSION_0,
@@ -71,7 +73,7 @@
 	unsigned allocated;
 	unsigned offset;
 	unsigned size;
-	unsigned reserved;
+	unsigned base_ext;
 };
 
 struct smem_board_info_v2 {
@@ -415,13 +417,16 @@
 
 typedef enum {
 	SMEM_SPINLOCK_ARRAY = 7,
-
 	SMEM_AARM_PARTITION_TABLE = 9,
+	SMEM_CHANNEL_ALLOC_TBL = 13,
+	SMEM_SMD_BASE_ID = 14,
 
 	SMEM_APPS_BOOT_MODE = 106,
 
 	SMEM_BOARD_INFO_LOCATION = 137,
 
+	SMEM_SMD_FIFO_BASE_ID = 338,
+
 	SMEM_USABLE_RAM_PARTITION_TABLE = 402,
 
 	SMEM_POWER_ON_STATUS_INFO = 403,
@@ -571,4 +576,5 @@
 void smem_get_ram_ptable_entry(ram_partition*, uint32_t entry);
 uint32_t smem_get_ram_ptable_version(void);
 uint32_t smem_get_ram_ptable_len(void);
+void* smem_get_alloc_entry(smem_mem_type_t type, uint32_t* size);
 #endif				/* __PLATFORM_MSM_SHARED_SMEM_H */