浏览代码

msm: eva: Add Lanai EVA HFI check

Adds XRA, DLFL, DLFD, RGE and ITOF packets sanity check.
Optimizes packet type table to avoid linear search during
each packet handling. Instead use packet type as index to expedite
searching. Packet type table grows to over 60 entries and each
entry uses 40B. There will be quite some memory access delay for
each packet handling without optimization.

Change-Id: I1ee26d0d5d0b83d3c15fbcafa7414017c418b6e3
Signed-off-by: George Shen <[email protected]>
George Shen 3 年之前
父节点
当前提交
dcbb74265f
共有 8 个文件被更改,包括 555 次插入316 次删除
  1. 1 1
      msm/eva/cvp.c
  2. 36 1
      msm/eva/cvp_hfi.h
  3. 4 3
      msm/eva/cvp_hfi_api.h
  4. 28 1
      msm/eva/cvp_smem.c
  5. 1 1
      msm/eva/msm_cvp.c
  6. 16 15
      msm/eva/msm_cvp_buf.c
  7. 1 4
      msm/eva/msm_cvp_buf.h
  8. 468 290
      msm/eva/msm_cvp_platform.c

+ 1 - 1
msm/eva/cvp.c

@@ -448,7 +448,7 @@ static int msm_probe_cvp_device(struct platform_device *pdev)
 		goto err_fail_sub_device_probe;
 	}
 
-	atomic64_set(&core->kernel_trans_id, get_pkt_array_size());
+	atomic64_set(&core->kernel_trans_id, ARRAY_SIZE(cvp_hfi_defs));
 
 	if (core->resources.dsp_enabled) {
 		rc = cvp_dsp_device_init();

+ 36 - 1
msm/eva/cvp_hfi.h

@@ -130,6 +130,24 @@
 	(HFI_CMD_SESSION_CVP_START + 0x064)
 #define  HFI_CMD_SESSION_CVP_WARP_DS_PARAMS\
 	(HFI_CMD_SESSION_CVP_START + 0x065)
+#define  HFI_CMD_SESSION_CVP_XRA_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x066)
+#define  HFI_CMD_SESSION_CVP_XRA_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x067)
+#define  HFI_CMD_SESSION_CVP_XRA_BLOB_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x069)
+#define  HFI_CMD_SESSION_CVP_XRA_BLOB_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x06A)
+#define  HFI_CMD_SESSION_CVP_XRA_PATCH_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x06B)
+#define  HFI_CMD_SESSION_CVP_XRA_PATCH_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x06C)
+#define  HFI_CMD_SESSION_CVP_XRA_MATCH_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x06D)
+#define  HFI_CMD_SESSION_CVP_XRA_MATCH_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x06E)
+
+
 #define HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS\
 	(HFI_CMD_SESSION_CVP_START + 0x070)
 #define HFI_CMD_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS\
@@ -138,6 +156,22 @@
 	(HFI_CMD_SESSION_CVP_START + 0x072)
 #define HFI_CMD_SESSION_CVP_SET_SNAPSHOT_MODE\
 	(HFI_CMD_SESSION_CVP_START + 0x073)
+#define  HFI_CMD_SESSION_CVP_RGE_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x076)
+#define  HFI_CMD_SESSION_CVP_RGE_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x077)
+#define  HFI_CMD_SESSION_EVA_ITOF_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x078)
+#define  HFI_CMD_SESSION_EVA_ITOF_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x079)
+#define  HFI_CMD_SESSION_EVA_DLFD_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x07C)
+#define  HFI_CMD_SESSION_EVA_DLFD_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x07D)
+#define  HFI_CMD_SESSION_EVA_DLFL_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x080)
+#define  HFI_CMD_SESSION_EVA_DLFL_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x081)
 #define  HFI_CMD_SESSION_CVP_ICA_FRAME\
 	(HFI_CMD_SESSION_CVP_START + 0x100)
 #define  HFI_CMD_SESSION_CVP_ICA_CONFIG\
@@ -312,7 +346,8 @@ static inline enum buf_map_type cvp_find_map_type(int pkt_type)
 			pkt_type == HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS ||
 			pkt_type == HFI_CMD_SESSION_CVP_DMM_PARAMS ||
 			pkt_type == HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS ||
-			pkt_type == HFI_CMD_SESSION_CVP_WARP_DS_PARAMS)
+			pkt_type == HFI_CMD_SESSION_CVP_WARP_DS_PARAMS ||
+			pkt_type == HFI_CMD_SESSION_EVA_DLFL_CONFIG)
 		return MAP_PERSIST;
 	else if (pkt_type == HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS ||
 			pkt_type ==

+ 4 - 3
msm/eva/cvp_hfi_api.h

@@ -234,7 +234,8 @@ struct cvp_hal_cmd_sys_get_property_packet {
 #define call_hfi_op(q, op, args...)			\
 	(((q) && (q)->op) ? ((q)->op(args)) : 0)
 
-#define PKT_NAME_LEN 32
+#define PKT_NAME_LEN	24
+#define MAX_PKT_IDX	0x200
 
 struct msm_cvp_hfi_defs {
 	unsigned int size;
@@ -297,13 +298,13 @@ void cvp_hfi_deinitialize(enum msm_cvp_hfi_type hfi_type,
 			struct cvp_hfi_device *hdev);
 
 int get_pkt_index(struct cvp_hal_session_cmd_pkt *hdr);
-int get_pkt_array_size(void);
+int get_pkt_index_from_type(u32 pkt_type);
 int get_hfi_version(void);
 unsigned int get_msg_size(struct cvp_hfi_msg_session_hdr *hdr);
 unsigned int get_msg_session_id(void *msg);
 unsigned int get_msg_errorcode(void *msg);
 int get_msg_opconfigs(void *msg, unsigned int *session_id,
 		unsigned int *error_type, unsigned int *config_id);
-extern const struct msm_cvp_hfi_defs cvp_hfi_defs[];
+extern const struct msm_cvp_hfi_defs cvp_hfi_defs[MAX_PKT_IDX];
 
 #endif /*__CVP_HFI_API_H__ */

+ 28 - 1
msm/eva/cvp_smem.c

@@ -204,12 +204,13 @@ int msm_cvp_map_smem(struct msm_cvp_inst *inst,
 	int *vmid_list;
 	int *perms_list;
 	int nelems = 0;
-	int rc = 0;
+	int i, rc = 0;
 
 	dma_addr_t iova = 0;
 	u32 temp = 0;
 	u32 align = SZ_4K;
 	struct dma_buf *dma_buf;
+	bool is_config_pkt = false;
 
 	if (!inst || !smem) {
 		dprintk(CVP_ERR, "%s: Invalid params: %pK %pK\n",
@@ -250,7 +251,33 @@ int msm_cvp_map_smem(struct msm_cvp_inst *inst,
 
 	smem->size = dma_buf->size;
 	smem->device_addr = (u32)iova;
+	i = get_pkt_index_from_type(smem->pkt_type);
+	if (i > 0 && smem->pkt_type != HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS
+		&& smem->pkt_type != HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS
+		&& smem->pkt_type != HFI_CMD_SESSION_EVA_DLFL_CONFIG)
+		/* User persist buffer has no feature config info */
+		is_config_pkt = cvp_hfi_defs[i].is_config_pkt;
+
+	/* if (!(smem->flags & SMEM_SECURE) &&
+				is_config_pkt &&
+				(msm_cvp_debug & CVP_MEM)) {
+		dma_buf_begin_cpu_access(dma_buf, DMA_BIDIRECTIONAL);
+		smem->kvaddr = __cvp_dma_buf_vmap(dma_buf);
+		if (!smem->kvaddr) {
+			dprintk(CVP_WARN,
+				"Failed to map config buf in kernel\n");
+			dma_buf_end_cpu_access(dma_buf, DMA_BIDIRECTIONAL);
+			goto checksum_done;
+		}
+		for (i = 0; i < (dma_buf->size); i++) {
+			smem->checksum += *(u8 *)(smem->kvaddr + i);
+		}
+		__cvp_dma_buf_vunmap(dma_buf, smem->kvaddr);
+		smem->kvaddr = 0;
+		dma_buf_end_cpu_access(dma_buf, DMA_BIDIRECTIONAL);
+	}
 
+checksum_done:*/
 	print_smem(CVP_MEM, str, inst, smem);
 	goto success;
 exit:

+ 1 - 1
msm/eva/msm_cvp.c

@@ -116,7 +116,7 @@ static int cvp_wait_process_message(struct msm_cvp_inst *inst,
 
 	hdr = (struct cvp_hfi_msg_session_hdr *)&msg->pkt;
 	memcpy(out, &msg->pkt, get_msg_size(hdr));
-	if (hdr->client_data.kdata >= get_pkt_array_size())
+	if (hdr->client_data.kdata >= ARRAY_SIZE(cvp_hfi_defs))
 		msm_cvp_unmap_frame(inst, hdr->client_data.kdata);
 	kmem_cache_free(cvp_driver->msg_cache, msg);
 

+ 16 - 15
msm/eva/msm_cvp_buf.c

@@ -56,18 +56,16 @@ int print_smem(u32 tag, const char *str, struct msm_cvp_inst *inst,
 		if (!atomic_read(&smem->refcount))
 			return 0;
 
-		for (i = 0; i < get_pkt_array_size(); i++)
-			if (cvp_hfi_defs[i].type == smem->pkt_type) {
-				strlcpy(name, cvp_hfi_defs[i].name, PKT_NAME_LEN);
-				break;
-			}
+		i = get_pkt_index_from_type(smem->pkt_type);
+		if (i > 0)
+			strlcpy(name, cvp_hfi_defs[i].name, PKT_NAME_LEN);
 
 		dprintk(tag,
-			"%s: %x : %pK size %d flags %#x iova %#x idx %d ref %d pkt_type %s buf_idx %#x",
+			"%s: %x : %pK size %d flags %#x iova %#x idx %d ref %d pkt_type %s buf_idx %#x chksum %#x",
 			str, hash32_ptr(inst->session), smem->dma_buf,
 			smem->size, smem->flags, smem->device_addr,
 			smem->bitmap_index, atomic_read(&smem->refcount),
-			name, smem->buf_idx);
+			name, smem->buf_idx, smem->checksum);
 	}
 	return 0;
 }
@@ -1144,7 +1142,8 @@ static int msm_cvp_session_add_smem(struct msm_cvp_inst *inst,
 
 static struct msm_cvp_smem *msm_cvp_session_get_smem(struct msm_cvp_inst *inst,
 						struct cvp_buf_type *buf,
-						bool is_persist)
+						bool is_persist,
+						u32 pkt_type)
 {
 	int rc = 0, found = 1;
 	struct msm_cvp_smem *smem = NULL;
@@ -1168,6 +1167,9 @@ static struct msm_cvp_smem *msm_cvp_session_get_smem(struct msm_cvp_inst *inst,
 
 		smem->dma_buf = dma_buf;
 		smem->bitmap_index = MAX_DMABUF_NUMS;
+		smem->pkt_type = pkt_type;
+		smem->flags |= SMEM_PERSIST;
+		atomic_inc(&smem->refcount);
 		rc = msm_cvp_map_smem(inst, smem, "map cpu");
 		if (rc)
 			goto exit;
@@ -1189,6 +1191,7 @@ static struct msm_cvp_smem *msm_cvp_session_get_smem(struct msm_cvp_inst *inst,
 
 		smem->dma_buf = dma_buf;
 		smem->bitmap_index = MAX_DMABUF_NUMS;
+		smem->pkt_type = pkt_type;
 		rc = msm_cvp_map_smem(inst, smem, "map cpu");
 		if (rc)
 			goto exit;
@@ -1274,14 +1277,12 @@ static u32 msm_cvp_map_user_persist_buf(struct msm_cvp_inst *inst,
 		return 0;
 	}
 
-	smem = msm_cvp_session_get_smem(inst, buf, true);
+	smem = msm_cvp_session_get_smem(inst, buf, true, pkt_type);
 	if (!smem)
 		goto exit;
 
-	smem->flags |= SMEM_PERSIST;
 	smem->pkt_type = pkt_type;
 	smem->buf_idx = buf_idx;
-	atomic_inc(&smem->refcount);
 	pbuf->smem = smem;
 	pbuf->fd = buf->fd;
 	pbuf->size = buf->size;
@@ -1303,7 +1304,7 @@ exit:
 	return 0;
 }
 
-u32 msm_cvp_map_frame_buf(struct msm_cvp_inst *inst,
+static u32 msm_cvp_map_frame_buf(struct msm_cvp_inst *inst,
 			struct cvp_buf_type *buf,
 			struct msm_cvp_frame *frame,
 			u32 pkt_type, u32 buf_idx)
@@ -1324,11 +1325,10 @@ u32 msm_cvp_map_frame_buf(struct msm_cvp_inst *inst,
 		return 0;
 	}
 
-	smem = msm_cvp_session_get_smem(inst, buf, false);
+	smem = msm_cvp_session_get_smem(inst, buf, false, pkt_type);
 	if (!smem)
 		return 0;
 
-	smem->pkt_type = pkt_type;
 	smem->buf_idx = buf_idx;
 
 	frame->bufs[nr].fd = buf->fd;
@@ -1444,7 +1444,8 @@ int msm_cvp_map_user_persist(struct msm_cvp_inst *inst,
 		if (buf->fd < 0 || !buf->size)
 			continue;
 
-		iova = msm_cvp_map_user_persist_buf(inst, buf, cmd_hdr->packet_type, i);
+		iova = msm_cvp_map_user_persist_buf(inst, buf,
+				cmd_hdr->packet_type, i);
 		if (!iova) {
 			dprintk(CVP_ERR,
 				"%s: buf %d register failed.\n",

+ 1 - 4
msm/eva/msm_cvp_buf.h

@@ -77,6 +77,7 @@ struct msm_cvp_smem {
 	u32 flags;
 	u32 pkt_type;
 	u32 buf_idx;
+	u32 checksum;
 	struct cvp_dma_mapping_info mapping_info;
 };
 
@@ -205,10 +206,6 @@ int msm_cvp_proc_oob(struct msm_cvp_inst* inst,
 			struct eva_kmd_hfi_packet* in_pkt);
 void msm_cvp_cache_operations(struct msm_cvp_smem *smem,
 			u32 type, u32 offset, u32 size);
-u32 msm_cvp_map_frame_buf(struct msm_cvp_inst *inst,
-			struct cvp_buf_type *buf,
-			struct msm_cvp_frame *frame,
-			u32 pkt_type, u32 buf_idx);
 int msm_cvp_mark_user_persist(struct msm_cvp_inst *inst,
 			struct eva_kmd_hfi_packet *in_pkt,
 			unsigned int offset, unsigned int buf_num);

+ 468 - 290
msm/eva/msm_cvp_platform.c

@@ -271,308 +271,486 @@ static const struct of_device_id msm_cvp_dt_match[] = {
 };
 
 /*
- * WARN: name field can not hold more than 31 chars
+ * WARN: name field CAN NOT hold more than 23 chars
+ *	 excluding the ending '\0'
  *
+ * NOTE: the def entry index for the command packet is
+ *	 "the packet type - HFI_CMD_SESSION_CVP_START"
  */
-const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
-	{
-		.size = HFI_DFS_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DFS_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "DFS",
-	},
-	{
-		.size = HFI_DFS_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DFS_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "DFS_FRAME",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_SGM_OF_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "SGM_OF",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_SGM_OF_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "SGM_OF_FRAME",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_WARP_NCC_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "WARP_NCC",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_WARP_NCC_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "WARP_NCC_FRAME",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_WARP_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "WARP",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_WARP_DS_PARAMS,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "WARP_DS_PARAMS",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_WARP_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "WARP_FRAME",
-	},
-	{
-		.size = HFI_DMM_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DMM_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "DMM",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_DMM_PARAMS,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "DMM_PARAMS",
-	},
-	{
-		.size = HFI_DMM_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DMM_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "DMM_FRAME",
-	},
-	{
-		.size = HFI_PERSIST_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "SET_PERSIST",
-	},
-	{
-		.size = 0xffffffff,
-		.type = HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "REL_PERSIST",
-	},
-	{
-		.size = HFI_DS_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DS,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "DS",
-	},
-	{
-		.size = HFI_OF_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_CV_TME_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "TME",
-	},
-	{
-		.size = HFI_OF_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_CV_TME_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "TME_FRAME",
-	},
-	{
-		.size = HFI_ODT_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_CV_ODT_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "ODT",
-	},
-	{
-		.size = HFI_ODT_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_CV_ODT_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "ODT_FRAME",
-	},
-	{
-		.size = HFI_OD_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_CV_OD_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "OD",
-	},
-	{
-		.size = HFI_OD_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_CV_OD_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "OD_FRAME",
-	},
-	{
-		.size = HFI_NCC_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_NCC_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "NCC",
-	},
-	{
-		.size = HFI_NCC_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_NCC_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "NCC_FRAME",
-	},
-	{
-		.size = HFI_ICA_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_ICA_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "ICA",
-	},
-	{
-		.size = HFI_ICA_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_ICA_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "ICA_FRAME",
-	},
-	{
-		.size = HFI_HCD_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_HCD_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "HCD",
-	},
-	{
-		.size = HFI_HCD_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_HCD_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "HCD_FRAME",
-	},
-	{
-		.size = HFI_DCM_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DC_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "DC",
-	},
-	{
-		.size = HFI_DCM_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DC_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "DC_FRAME",
-	},
-	{
-		.size = HFI_DCM_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DCM_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "DCM",
-	},
-	{
-		.size = HFI_DCM_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DCM_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "DCM_FRAME",
-	},
-	{
-		.size = HFI_PYS_HCD_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_PYS_HCD_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "PYS_HCD",
-	},
-	{
-		.size = HFI_PYS_HCD_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_PYS_HCD_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "PYS_HCD_FRAME",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "SET_MODEL",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "SET_SNAPSHOT",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "REL_SNAPSHOT",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_SET_SNAPSHOT_MODE,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "SNAPSHOT_MODE",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_SNAPSHOT_WRITE_DONE,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "SNAPSHOT_DONE",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_FD_CONFIG,
-		.is_config_pkt = true,
-		.resp = HAL_NO_RESP,
-		.name = "FD",
-	},
-	{
-		.size = 0xFFFFFFFF,
-		.type = HFI_CMD_SESSION_CVP_FD_FRAME,
-		.is_config_pkt = false,
-		.resp = HAL_NO_RESP,
-		.name = "FD_FRAME",
-	},
+const struct msm_cvp_hfi_defs cvp_hfi_defs[MAX_PKT_IDX] = {
+	[HFI_CMD_SESSION_CVP_DFS_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_DFS_CONFIG_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_DFS_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "DFS",
+		},
+	[HFI_CMD_SESSION_CVP_DFS_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_DFS_FRAME_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_DFS_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "DFS_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_SGM_OF_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_SGM_OF_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "SGM_OF",
+		},
+	[HFI_CMD_SESSION_CVP_SGM_OF_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_SGM_OF_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "SGM_OF_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_WARP_NCC_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_WARP_NCC_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "WARP_NCC",
+		},
+	[HFI_CMD_SESSION_CVP_WARP_NCC_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_WARP_NCC_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "WARP_NCC_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_WARP_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_WARP_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "WARP",
+		},
+	[HFI_CMD_SESSION_CVP_WARP_DS_PARAMS - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_WARP_DS_PARAMS,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "WARP_DS_PARAMS",
+		},
+	[HFI_CMD_SESSION_CVP_WARP_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_WARP_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "WARP_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_DMM_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_DMM_CONFIG_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_DMM_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "DMM",
+		},
+	[HFI_CMD_SESSION_CVP_DMM_PARAMS - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_DMM_PARAMS,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "DMM_PARAMS",
+		},
+	[HFI_CMD_SESSION_CVP_DMM_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_DMM_FRAME_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_DMM_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "DMM_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_PERSIST_CMD_SIZE,
+			.type =HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "SET_PERSIST",
+		},
+	[HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xffffffff,
+			.type =HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "REL_PERSIST",
+		},
+	[HFI_CMD_SESSION_CVP_DS - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_DS_CMD_SIZE,
+			.type =HFI_CMD_SESSION_CVP_DS,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "DS",
+		},
+	[HFI_CMD_SESSION_CVP_CV_TME_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_OF_CONFIG_CMD_SIZE,
+			.type =HFI_CMD_SESSION_CVP_CV_TME_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "TME",
+		},
+	[HFI_CMD_SESSION_CVP_CV_TME_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_OF_FRAME_CMD_SIZE,
+			.type =HFI_CMD_SESSION_CVP_CV_TME_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "TME_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_CV_ODT_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_ODT_CONFIG_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_CV_ODT_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "ODT",
+		},
+	[HFI_CMD_SESSION_CVP_CV_ODT_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_ODT_FRAME_CMD_SIZE,
+			.type =HFI_CMD_SESSION_CVP_CV_ODT_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "ODT_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_CV_OD_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_OD_CONFIG_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_CV_OD_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "OD",
+		},
+	[HFI_CMD_SESSION_CVP_CV_OD_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_OD_FRAME_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_CV_OD_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "OD_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_NCC_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_NCC_CONFIG_CMD_SIZE,
+			.type =HFI_CMD_SESSION_CVP_NCC_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "NCC",
+		},
+	[HFI_CMD_SESSION_CVP_NCC_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_NCC_FRAME_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_NCC_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "NCC_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_ICA_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_ICA_CONFIG_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_ICA_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "ICA",
+		},
+	[HFI_CMD_SESSION_CVP_ICA_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_ICA_FRAME_CMD_SIZE,
+			.type =HFI_CMD_SESSION_CVP_ICA_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "ICA_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_HCD_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_HCD_CONFIG_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_HCD_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "HCD",
+		},
+	[HFI_CMD_SESSION_CVP_HCD_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_HCD_FRAME_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_HCD_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "HCD_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_DC_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_DCM_CONFIG_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_DC_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "DC",
+		},
+	[HFI_CMD_SESSION_CVP_DC_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_DCM_FRAME_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_DC_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "DC_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_DCM_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_DCM_CONFIG_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_DCM_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "DCM",
+		},
+	[HFI_CMD_SESSION_CVP_DCM_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_DCM_FRAME_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_DCM_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "DCM_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_PYS_HCD_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_PYS_HCD_CONFIG_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_PYS_HCD_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "PYS_HCD",
+		},
+	[HFI_CMD_SESSION_CVP_PYS_HCD_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = HFI_PYS_HCD_FRAME_CMD_SIZE,
+			.type = HFI_CMD_SESSION_CVP_PYS_HCD_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "PYS_HCD_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "SET_MODEL",
+		},
+	[HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "SET_SNAPSHOT",
+		},
+	[HFI_CMD_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "REL_SNAPSHOT",
+		},
+	[HFI_CMD_SESSION_CVP_SET_SNAPSHOT_MODE - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_SET_SNAPSHOT_MODE,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "SNAPSHOT_MODE",
+		},
+	[HFI_CMD_SESSION_CVP_SNAPSHOT_WRITE_DONE - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_SNAPSHOT_WRITE_DONE,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "SNAPSHOT_DONE",
+		},
+	[HFI_CMD_SESSION_CVP_FD_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_FD_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "FD",
+		},
+	[HFI_CMD_SESSION_CVP_FD_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_FD_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "FD_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_XRA_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_XRA_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "XRA_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_XRA_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_XRA_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "XRA_CONFIG",
+		},
+	[HFI_CMD_SESSION_CVP_XRA_BLOB_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_XRA_BLOB_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "XRA_BLOB_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_XRA_BLOB_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_XRA_BLOB_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "XRA_BLOB_CONFIG",
+		},
+	[HFI_CMD_SESSION_CVP_XRA_PATCH_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_XRA_PATCH_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "XRA_PATCH_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_XRA_PATCH_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_XRA_PATCH_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "XRA_PATCH_CONFIG",
+		},
+	[HFI_CMD_SESSION_CVP_XRA_MATCH_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_XRA_MATCH_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "XRA_MATCH_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_XRA_MATCH_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_XRA_MATCH_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "XRA_MATCH_CONFIG",
+		},
+	[HFI_CMD_SESSION_CVP_RGE_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_RGE_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "RGE_FRAME",
+		},
+	[HFI_CMD_SESSION_CVP_RGE_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_CVP_RGE_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "RGE_CONFIG",
+		},
+	[HFI_CMD_SESSION_EVA_ITOF_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_EVA_ITOF_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "ITOF_FRAME",
+		},
+	[HFI_CMD_SESSION_EVA_ITOF_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_EVA_ITOF_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "ITOF_CONFIG",
+		},
+	[HFI_CMD_SESSION_EVA_DLFD_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_EVA_DLFD_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "DLFD_FRAME",
+		},
+	[HFI_CMD_SESSION_EVA_DLFD_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_EVA_DLFD_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "DLFD_CONFIG",
+		},
+	[HFI_CMD_SESSION_EVA_DLFL_FRAME - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_EVA_DLFL_FRAME,
+			.is_config_pkt = false,
+			.resp = HAL_NO_RESP,
+			.name = "DLFL_FRAME",
+		},
+	[HFI_CMD_SESSION_EVA_DLFL_CONFIG - HFI_CMD_SESSION_CVP_START] =
+		{
+			.size = 0xFFFFFFFF,
+			.type = HFI_CMD_SESSION_EVA_DLFL_CONFIG,
+			.is_config_pkt = true,
+			.resp = HAL_NO_RESP,
+			.name = "DLFL_CONFIG",
+		},
 };
 
-int get_pkt_array_size(void)
+int get_pkt_index(struct cvp_hal_session_cmd_pkt *hdr)
 {
-	return ARRAY_SIZE(cvp_hfi_defs);
+	if (!hdr || (hdr->packet_type < HFI_CMD_SESSION_CVP_START)
+		|| hdr->packet_type >= (HFI_CMD_SESSION_CVP_START + MAX_PKT_IDX))
+		return -EINVAL;
+
+	if (cvp_hfi_defs[hdr->packet_type - HFI_CMD_SESSION_CVP_START].size)
+		return (hdr->packet_type - HFI_CMD_SESSION_CVP_START);
+
+	return -EINVAL;
 }
 
-int get_pkt_index(struct cvp_hal_session_cmd_pkt *hdr)
+int get_pkt_index_from_type(u32 pkt_type)
 {
-	int i;
+	if ((pkt_type < HFI_CMD_SESSION_CVP_START) ||
+		pkt_type >= (HFI_CMD_SESSION_CVP_START + MAX_PKT_IDX))
+		return -EINVAL;
 
-	for (i = 0; i < get_pkt_array_size(); i++)
-		if (cvp_hfi_defs[i].type == hdr->packet_type)
-			return i;
+	if (cvp_hfi_defs[pkt_type - HFI_CMD_SESSION_CVP_START].size)
+		return (pkt_type - HFI_CMD_SESSION_CVP_START);
 
 	return -EINVAL;
 }
-
 MODULE_DEVICE_TABLE(of, msm_cvp_dt_match);
 
 int cvp_of_fdt_get_ddrtype(void)