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 <quic_sqiao@quicinc.com>
This commit is contained in:
George Shen
2022-07-13 16:20:20 -07:00
parent 2eea29b825
commit dcbb74265f
8 changed files with 556 additions and 317 deletions

View File

@@ -448,7 +448,7 @@ static int msm_probe_cvp_device(struct platform_device *pdev)
goto err_fail_sub_device_probe; 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) { if (core->resources.dsp_enabled) {
rc = cvp_dsp_device_init(); rc = cvp_dsp_device_init();

View File

@@ -130,6 +130,24 @@
(HFI_CMD_SESSION_CVP_START + 0x064) (HFI_CMD_SESSION_CVP_START + 0x064)
#define HFI_CMD_SESSION_CVP_WARP_DS_PARAMS\ #define HFI_CMD_SESSION_CVP_WARP_DS_PARAMS\
(HFI_CMD_SESSION_CVP_START + 0x065) (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\ #define HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS\
(HFI_CMD_SESSION_CVP_START + 0x070) (HFI_CMD_SESSION_CVP_START + 0x070)
#define HFI_CMD_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS\ #define HFI_CMD_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS\
@@ -138,6 +156,22 @@
(HFI_CMD_SESSION_CVP_START + 0x072) (HFI_CMD_SESSION_CVP_START + 0x072)
#define HFI_CMD_SESSION_CVP_SET_SNAPSHOT_MODE\ #define HFI_CMD_SESSION_CVP_SET_SNAPSHOT_MODE\
(HFI_CMD_SESSION_CVP_START + 0x073) (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\ #define HFI_CMD_SESSION_CVP_ICA_FRAME\
(HFI_CMD_SESSION_CVP_START + 0x100) (HFI_CMD_SESSION_CVP_START + 0x100)
#define HFI_CMD_SESSION_CVP_ICA_CONFIG\ #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_SET_MODEL_BUFFERS ||
pkt_type == HFI_CMD_SESSION_CVP_DMM_PARAMS || pkt_type == HFI_CMD_SESSION_CVP_DMM_PARAMS ||
pkt_type == HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS || 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; return MAP_PERSIST;
else if (pkt_type == HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS || else if (pkt_type == HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS ||
pkt_type == pkt_type ==

View File

@@ -234,7 +234,8 @@ struct cvp_hal_cmd_sys_get_property_packet {
#define call_hfi_op(q, op, args...) \ #define call_hfi_op(q, op, args...) \
(((q) && (q)->op) ? ((q)->op(args)) : 0) (((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 { struct msm_cvp_hfi_defs {
unsigned int size; unsigned int size;
@@ -297,13 +298,13 @@ void cvp_hfi_deinitialize(enum msm_cvp_hfi_type hfi_type,
struct cvp_hfi_device *hdev); struct cvp_hfi_device *hdev);
int get_pkt_index(struct cvp_hal_session_cmd_pkt *hdr); 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); int get_hfi_version(void);
unsigned int get_msg_size(struct cvp_hfi_msg_session_hdr *hdr); unsigned int get_msg_size(struct cvp_hfi_msg_session_hdr *hdr);
unsigned int get_msg_session_id(void *msg); unsigned int get_msg_session_id(void *msg);
unsigned int get_msg_errorcode(void *msg); unsigned int get_msg_errorcode(void *msg);
int get_msg_opconfigs(void *msg, unsigned int *session_id, int get_msg_opconfigs(void *msg, unsigned int *session_id,
unsigned int *error_type, unsigned int *config_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__ */ #endif /*__CVP_HFI_API_H__ */

View File

@@ -204,12 +204,13 @@ int msm_cvp_map_smem(struct msm_cvp_inst *inst,
int *vmid_list; int *vmid_list;
int *perms_list; int *perms_list;
int nelems = 0; int nelems = 0;
int rc = 0; int i, rc = 0;
dma_addr_t iova = 0; dma_addr_t iova = 0;
u32 temp = 0; u32 temp = 0;
u32 align = SZ_4K; u32 align = SZ_4K;
struct dma_buf *dma_buf; struct dma_buf *dma_buf;
bool is_config_pkt = false;
if (!inst || !smem) { if (!inst || !smem) {
dprintk(CVP_ERR, "%s: Invalid params: %pK %pK\n", 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->size = dma_buf->size;
smem->device_addr = (u32)iova; 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); print_smem(CVP_MEM, str, inst, smem);
goto success; goto success;
exit: exit:

View File

@@ -116,7 +116,7 @@ static int cvp_wait_process_message(struct msm_cvp_inst *inst,
hdr = (struct cvp_hfi_msg_session_hdr *)&msg->pkt; hdr = (struct cvp_hfi_msg_session_hdr *)&msg->pkt;
memcpy(out, &msg->pkt, get_msg_size(hdr)); 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); msm_cvp_unmap_frame(inst, hdr->client_data.kdata);
kmem_cache_free(cvp_driver->msg_cache, msg); kmem_cache_free(cvp_driver->msg_cache, msg);

View File

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

View File

@@ -77,6 +77,7 @@ struct msm_cvp_smem {
u32 flags; u32 flags;
u32 pkt_type; u32 pkt_type;
u32 buf_idx; u32 buf_idx;
u32 checksum;
struct cvp_dma_mapping_info mapping_info; 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); struct eva_kmd_hfi_packet* in_pkt);
void msm_cvp_cache_operations(struct msm_cvp_smem *smem, void msm_cvp_cache_operations(struct msm_cvp_smem *smem,
u32 type, u32 offset, u32 size); 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, int msm_cvp_mark_user_persist(struct msm_cvp_inst *inst,
struct eva_kmd_hfi_packet *in_pkt, struct eva_kmd_hfi_packet *in_pkt,
unsigned int offset, unsigned int buf_num); unsigned int offset, unsigned int buf_num);

View File

@@ -271,10 +271,14 @@ 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[] = { 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, .size = HFI_DFS_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DFS_CONFIG, .type = HFI_CMD_SESSION_CVP_DFS_CONFIG,
@@ -282,6 +286,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "DFS", .name = "DFS",
}, },
[HFI_CMD_SESSION_CVP_DFS_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_DFS_FRAME_CMD_SIZE, .size = HFI_DFS_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DFS_FRAME, .type = HFI_CMD_SESSION_CVP_DFS_FRAME,
@@ -289,6 +294,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "DFS_FRAME", .name = "DFS_FRAME",
}, },
[HFI_CMD_SESSION_CVP_SGM_OF_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_SGM_OF_CONFIG, .type = HFI_CMD_SESSION_CVP_SGM_OF_CONFIG,
@@ -296,6 +302,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "SGM_OF", .name = "SGM_OF",
}, },
[HFI_CMD_SESSION_CVP_SGM_OF_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_SGM_OF_FRAME, .type = HFI_CMD_SESSION_CVP_SGM_OF_FRAME,
@@ -303,6 +310,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "SGM_OF_FRAME", .name = "SGM_OF_FRAME",
}, },
[HFI_CMD_SESSION_CVP_WARP_NCC_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_WARP_NCC_CONFIG, .type = HFI_CMD_SESSION_CVP_WARP_NCC_CONFIG,
@@ -310,6 +318,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "WARP_NCC", .name = "WARP_NCC",
}, },
[HFI_CMD_SESSION_CVP_WARP_NCC_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_WARP_NCC_FRAME, .type = HFI_CMD_SESSION_CVP_WARP_NCC_FRAME,
@@ -317,6 +326,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "WARP_NCC_FRAME", .name = "WARP_NCC_FRAME",
}, },
[HFI_CMD_SESSION_CVP_WARP_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_WARP_CONFIG, .type = HFI_CMD_SESSION_CVP_WARP_CONFIG,
@@ -324,6 +334,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "WARP", .name = "WARP",
}, },
[HFI_CMD_SESSION_CVP_WARP_DS_PARAMS - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_WARP_DS_PARAMS, .type = HFI_CMD_SESSION_CVP_WARP_DS_PARAMS,
@@ -331,6 +342,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "WARP_DS_PARAMS", .name = "WARP_DS_PARAMS",
}, },
[HFI_CMD_SESSION_CVP_WARP_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_WARP_FRAME, .type = HFI_CMD_SESSION_CVP_WARP_FRAME,
@@ -338,6 +350,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "WARP_FRAME", .name = "WARP_FRAME",
}, },
[HFI_CMD_SESSION_CVP_DMM_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_DMM_CONFIG_CMD_SIZE, .size = HFI_DMM_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DMM_CONFIG, .type = HFI_CMD_SESSION_CVP_DMM_CONFIG,
@@ -345,6 +358,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "DMM", .name = "DMM",
}, },
[HFI_CMD_SESSION_CVP_DMM_PARAMS - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_DMM_PARAMS, .type = HFI_CMD_SESSION_CVP_DMM_PARAMS,
@@ -352,6 +366,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "DMM_PARAMS", .name = "DMM_PARAMS",
}, },
[HFI_CMD_SESSION_CVP_DMM_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_DMM_FRAME_CMD_SIZE, .size = HFI_DMM_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DMM_FRAME, .type = HFI_CMD_SESSION_CVP_DMM_FRAME,
@@ -359,41 +374,47 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "DMM_FRAME", .name = "DMM_FRAME",
}, },
[HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_PERSIST_CMD_SIZE, .size = HFI_PERSIST_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS, .type =HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS,
.is_config_pkt = true, .is_config_pkt = true,
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "SET_PERSIST", .name = "SET_PERSIST",
}, },
[HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xffffffff, .size = 0xffffffff,
.type = HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS, .type =HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS,
.is_config_pkt = true, .is_config_pkt = false,
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "REL_PERSIST", .name = "REL_PERSIST",
}, },
[HFI_CMD_SESSION_CVP_DS - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_DS_CMD_SIZE, .size = HFI_DS_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DS, .type =HFI_CMD_SESSION_CVP_DS,
.is_config_pkt = false, .is_config_pkt = false,
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "DS", .name = "DS",
}, },
[HFI_CMD_SESSION_CVP_CV_TME_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_OF_CONFIG_CMD_SIZE, .size = HFI_OF_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_TME_CONFIG, .type =HFI_CMD_SESSION_CVP_CV_TME_CONFIG,
.is_config_pkt = true, .is_config_pkt = true,
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "TME", .name = "TME",
}, },
[HFI_CMD_SESSION_CVP_CV_TME_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_OF_FRAME_CMD_SIZE, .size = HFI_OF_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_TME_FRAME, .type =HFI_CMD_SESSION_CVP_CV_TME_FRAME,
.is_config_pkt = false, .is_config_pkt = false,
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "TME_FRAME", .name = "TME_FRAME",
}, },
[HFI_CMD_SESSION_CVP_CV_ODT_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_ODT_CONFIG_CMD_SIZE, .size = HFI_ODT_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_ODT_CONFIG, .type = HFI_CMD_SESSION_CVP_CV_ODT_CONFIG,
@@ -401,13 +422,15 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "ODT", .name = "ODT",
}, },
[HFI_CMD_SESSION_CVP_CV_ODT_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_ODT_FRAME_CMD_SIZE, .size = HFI_ODT_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_ODT_FRAME, .type =HFI_CMD_SESSION_CVP_CV_ODT_FRAME,
.is_config_pkt = false, .is_config_pkt = false,
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "ODT_FRAME", .name = "ODT_FRAME",
}, },
[HFI_CMD_SESSION_CVP_CV_OD_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_OD_CONFIG_CMD_SIZE, .size = HFI_OD_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_OD_CONFIG, .type = HFI_CMD_SESSION_CVP_CV_OD_CONFIG,
@@ -415,6 +438,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "OD", .name = "OD",
}, },
[HFI_CMD_SESSION_CVP_CV_OD_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_OD_FRAME_CMD_SIZE, .size = HFI_OD_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_OD_FRAME, .type = HFI_CMD_SESSION_CVP_CV_OD_FRAME,
@@ -422,13 +446,15 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "OD_FRAME", .name = "OD_FRAME",
}, },
[HFI_CMD_SESSION_CVP_NCC_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_NCC_CONFIG_CMD_SIZE, .size = HFI_NCC_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_NCC_CONFIG, .type =HFI_CMD_SESSION_CVP_NCC_CONFIG,
.is_config_pkt = true, .is_config_pkt = true,
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "NCC", .name = "NCC",
}, },
[HFI_CMD_SESSION_CVP_NCC_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_NCC_FRAME_CMD_SIZE, .size = HFI_NCC_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_NCC_FRAME, .type = HFI_CMD_SESSION_CVP_NCC_FRAME,
@@ -436,6 +462,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "NCC_FRAME", .name = "NCC_FRAME",
}, },
[HFI_CMD_SESSION_CVP_ICA_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_ICA_CONFIG_CMD_SIZE, .size = HFI_ICA_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_ICA_CONFIG, .type = HFI_CMD_SESSION_CVP_ICA_CONFIG,
@@ -443,13 +470,15 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "ICA", .name = "ICA",
}, },
[HFI_CMD_SESSION_CVP_ICA_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_ICA_FRAME_CMD_SIZE, .size = HFI_ICA_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_ICA_FRAME, .type =HFI_CMD_SESSION_CVP_ICA_FRAME,
.is_config_pkt = false, .is_config_pkt = false,
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "ICA_FRAME", .name = "ICA_FRAME",
}, },
[HFI_CMD_SESSION_CVP_HCD_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_HCD_CONFIG_CMD_SIZE, .size = HFI_HCD_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_HCD_CONFIG, .type = HFI_CMD_SESSION_CVP_HCD_CONFIG,
@@ -457,6 +486,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "HCD", .name = "HCD",
}, },
[HFI_CMD_SESSION_CVP_HCD_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_HCD_FRAME_CMD_SIZE, .size = HFI_HCD_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_HCD_FRAME, .type = HFI_CMD_SESSION_CVP_HCD_FRAME,
@@ -464,6 +494,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "HCD_FRAME", .name = "HCD_FRAME",
}, },
[HFI_CMD_SESSION_CVP_DC_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_DCM_CONFIG_CMD_SIZE, .size = HFI_DCM_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DC_CONFIG, .type = HFI_CMD_SESSION_CVP_DC_CONFIG,
@@ -471,6 +502,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "DC", .name = "DC",
}, },
[HFI_CMD_SESSION_CVP_DC_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_DCM_FRAME_CMD_SIZE, .size = HFI_DCM_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DC_FRAME, .type = HFI_CMD_SESSION_CVP_DC_FRAME,
@@ -478,6 +510,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "DC_FRAME", .name = "DC_FRAME",
}, },
[HFI_CMD_SESSION_CVP_DCM_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_DCM_CONFIG_CMD_SIZE, .size = HFI_DCM_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DCM_CONFIG, .type = HFI_CMD_SESSION_CVP_DCM_CONFIG,
@@ -485,6 +518,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "DCM", .name = "DCM",
}, },
[HFI_CMD_SESSION_CVP_DCM_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_DCM_FRAME_CMD_SIZE, .size = HFI_DCM_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DCM_FRAME, .type = HFI_CMD_SESSION_CVP_DCM_FRAME,
@@ -492,6 +526,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "DCM_FRAME", .name = "DCM_FRAME",
}, },
[HFI_CMD_SESSION_CVP_PYS_HCD_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_PYS_HCD_CONFIG_CMD_SIZE, .size = HFI_PYS_HCD_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_PYS_HCD_CONFIG, .type = HFI_CMD_SESSION_CVP_PYS_HCD_CONFIG,
@@ -499,6 +534,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "PYS_HCD", .name = "PYS_HCD",
}, },
[HFI_CMD_SESSION_CVP_PYS_HCD_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = HFI_PYS_HCD_FRAME_CMD_SIZE, .size = HFI_PYS_HCD_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_PYS_HCD_FRAME, .type = HFI_CMD_SESSION_CVP_PYS_HCD_FRAME,
@@ -506,6 +542,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "PYS_HCD_FRAME", .name = "PYS_HCD_FRAME",
}, },
[HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS, .type = HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS,
@@ -513,20 +550,23 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "SET_MODEL", .name = "SET_MODEL",
}, },
[HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS, .type = HFI_CMD_SESSION_CVP_SET_SNAPSHOT_BUFFERS,
.is_config_pkt = true, .is_config_pkt = false,
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "SET_SNAPSHOT", .name = "SET_SNAPSHOT",
}, },
[HFI_CMD_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS, .type = HFI_CMD_SESSION_CVP_RELEASE_SNAPSHOT_BUFFERS,
.is_config_pkt = true, .is_config_pkt = false,
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "REL_SNAPSHOT", .name = "REL_SNAPSHOT",
}, },
[HFI_CMD_SESSION_CVP_SET_SNAPSHOT_MODE - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_SET_SNAPSHOT_MODE, .type = HFI_CMD_SESSION_CVP_SET_SNAPSHOT_MODE,
@@ -534,6 +574,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "SNAPSHOT_MODE", .name = "SNAPSHOT_MODE",
}, },
[HFI_CMD_SESSION_CVP_SNAPSHOT_WRITE_DONE - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_SNAPSHOT_WRITE_DONE, .type = HFI_CMD_SESSION_CVP_SNAPSHOT_WRITE_DONE,
@@ -541,6 +582,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "SNAPSHOT_DONE", .name = "SNAPSHOT_DONE",
}, },
[HFI_CMD_SESSION_CVP_FD_CONFIG - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_FD_CONFIG, .type = HFI_CMD_SESSION_CVP_FD_CONFIG,
@@ -548,6 +590,7 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "FD", .name = "FD",
}, },
[HFI_CMD_SESSION_CVP_FD_FRAME - HFI_CMD_SESSION_CVP_START] =
{ {
.size = 0xFFFFFFFF, .size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_FD_FRAME, .type = HFI_CMD_SESSION_CVP_FD_FRAME,
@@ -555,24 +598,159 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
.resp = HAL_NO_RESP, .resp = HAL_NO_RESP,
.name = "FD_FRAME", .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)
{
return ARRAY_SIZE(cvp_hfi_defs);
}
int get_pkt_index(struct cvp_hal_session_cmd_pkt *hdr) int get_pkt_index(struct cvp_hal_session_cmd_pkt *hdr)
{ {
int i; if (!hdr || (hdr->packet_type < HFI_CMD_SESSION_CVP_START)
|| hdr->packet_type >= (HFI_CMD_SESSION_CVP_START + MAX_PKT_IDX))
return -EINVAL;
for (i = 0; i < get_pkt_array_size(); i++) if (cvp_hfi_defs[hdr->packet_type - HFI_CMD_SESSION_CVP_START].size)
if (cvp_hfi_defs[i].type == hdr->packet_type) return (hdr->packet_type - HFI_CMD_SESSION_CVP_START);
return i;
return -EINVAL; return -EINVAL;
} }
int get_pkt_index_from_type(u32 pkt_type)
{
if ((pkt_type < HFI_CMD_SESSION_CVP_START) ||
pkt_type >= (HFI_CMD_SESSION_CVP_START + MAX_PKT_IDX))
return -EINVAL;
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); MODULE_DEVICE_TABLE(of, msm_cvp_dt_match);
int cvp_of_fdt_get_ddrtype(void) int cvp_of_fdt_get_ddrtype(void)