msm: cvp: Reduce kmd's feature dependency

Move feature configuration processing out of kmd. Relocate
feature specific code to msm_cvp_platform.c and cvp_hfi.h.

Change-Id: I425ee8b8638bd7b81c653c860f1ed1f5d95abac8
Signed-off-by: George Shen <sqiao@codeaurora.org>
此提交包含在:
George Shen
2021-05-07 19:44:04 -07:00
提交者 Gerrit - the friendly Code Review server
父節點 077b0f11d3
當前提交 11a18d4d23
共有 11 個檔案被更改,包括 361 行新增588 行删除

查看文件

@@ -36,262 +36,6 @@
#define QDSS_IOVA_START 0x80001000
#define MIN_PAYLOAD_SIZE 3
const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
{
.size = HFI_DFS_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DFS_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_DFS_CONFIG_CMD_DONE,
},
{
.size = HFI_DFS_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DFS_FRAME,
.buf_offset = HFI_DFS_FRAME_BUFFERS_OFFSET,
.buf_num = HFI_DFS_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_SGM_OF_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_SGM_OF_CONFIG_CMD_DONE,
},
{
.size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_SGM_OF_FRAME,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_NO_RESP,
},
{
.size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_WARP_NCC_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_WARP_NCC_CONFIG_CMD_DONE,
},
{
.size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_WARP_NCC_FRAME,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_NO_RESP,
},
{
.size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_WARP_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_WARP_CONFIG_CMD_DONE,
},
{
.size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_WARP_DS_PARAMS,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_WARP_DS_PARAMS_CMD_DONE,
},
{
.size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_WARP_FRAME,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_NO_RESP,
},
{
.size = HFI_DMM_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DMM_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_DMM_CONFIG_CMD_DONE,
},
{
.size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_DMM_PARAMS,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_DMM_PARAMS_CMD_DONE,
},
{
.size = HFI_DMM_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DMM_FRAME,
.buf_offset = HFI_DMM_FRAME_BUFFERS_OFFSET,
.buf_num = HFI_DMM_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = HFI_PERSIST_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS,
.buf_offset = HFI_PERSIST_BUFFERS_OFFSET,
.buf_num = HFI_PERSIST_BUF_NUM,
.resp = HAL_SESSION_PERSIST_SET_DONE,
},
{
.size = 0xffffffff,
.type = HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_PERSIST_REL_DONE,
},
{
.size = HFI_DS_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DS,
.buf_offset = HFI_DS_BUFFERS_OFFSET,
.buf_num = HFI_DS_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = HFI_OF_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_TME_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_TME_CONFIG_CMD_DONE,
},
{
.size = HFI_OF_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_TME_FRAME,
.buf_offset = HFI_OF_BUFFERS_OFFSET,
.buf_num = HFI_OF_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = HFI_ODT_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_ODT_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_ODT_CONFIG_CMD_DONE,
},
{
.size = HFI_ODT_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_ODT_FRAME,
.buf_offset = HFI_ODT_BUFFERS_OFFSET,
.buf_num = HFI_ODT_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = HFI_OD_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_OD_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_OD_CONFIG_CMD_DONE,
},
{
.size = HFI_OD_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_CV_OD_FRAME,
.buf_offset = HFI_OD_BUFFERS_OFFSET,
.buf_num = HFI_OD_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = HFI_NCC_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_NCC_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_NCC_CONFIG_CMD_DONE,
},
{
.size = HFI_NCC_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_NCC_FRAME,
.buf_offset = HFI_NCC_BUFFERS_OFFSET,
.buf_num = HFI_NCC_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = HFI_ICA_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_ICA_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_ICA_CONFIG_CMD_DONE,
},
{
.size = HFI_ICA_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_ICA_FRAME,
.buf_offset = HFI_ICA_BUFFERS_OFFSET,
.buf_num = HFI_ICA_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = HFI_HCD_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_HCD_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_HCD_CONFIG_CMD_DONE,
},
{
.size = HFI_HCD_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_HCD_FRAME,
.buf_offset = HFI_HCD_BUFFERS_OFFSET,
.buf_num = HFI_HCD_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = HFI_DCM_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DC_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_DC_CONFIG_CMD_DONE,
},
{
.size = HFI_DCM_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DC_FRAME,
.buf_offset = HFI_DCM_BUFFERS_OFFSET,
.buf_num = HFI_DCM_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = HFI_DCM_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DCM_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_DCM_CONFIG_CMD_DONE,
},
{
.size = HFI_DCM_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_DCM_FRAME,
.buf_offset = HFI_DCM_BUFFERS_OFFSET,
.buf_num = HFI_DCM_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = HFI_PYS_HCD_CONFIG_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_PYS_HCD_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_PYS_HCD_CONFIG_CMD_DONE,
},
{
.size = HFI_PYS_HCD_FRAME_CMD_SIZE,
.type = HFI_CMD_SESSION_CVP_PYS_HCD_FRAME,
.buf_offset = HFI_PYS_HCD_BUFFERS_OFFSET,
.buf_num = HFI_PYS_HCD_BUF_NUM,
.resp = HAL_NO_RESP,
},
{
.size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_MODEL_BUF_CMD_DONE,
},
{
.size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_FD_CONFIG,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_SESSION_FD_CONFIG_CMD_DONE,
},
{
.size = 0xFFFFFFFF,
.type = HFI_CMD_SESSION_CVP_FD_FRAME,
.buf_offset = 0,
.buf_num = 0,
.resp = HAL_NO_RESP,
},
};
struct cvp_tzbsp_memprot {
u32 cp_start;
u32 cp_size;
@@ -389,17 +133,6 @@ static inline bool is_sys_cache_present(struct iris_hfi_device *device)
#define ROW_SIZE 32
int get_pkt_index(struct cvp_hal_session_cmd_pkt *hdr)
{
int i, pkt_num = ARRAY_SIZE(cvp_hfi_defs);
for (i = 0; i < pkt_num; i++)
if (cvp_hfi_defs[i].type == hdr->packet_type)
return i;
return -EINVAL;
}
int get_hfi_version(void)
{
struct msm_cvp_core *core;
@@ -469,17 +202,6 @@ int get_msg_opconfigs(void *msg, unsigned int *session_id,
return 0;
}
int get_signal_from_pkt_type(unsigned int type)
{
int i, pkt_num = ARRAY_SIZE(cvp_hfi_defs);
for (i = 0; i < pkt_num; i++)
if (cvp_hfi_defs[i].type == type)
return cvp_hfi_defs[i].resp;
return -EINVAL;
}
static void __dump_packet(u8 *packet, enum cvp_msg_prio log_level)
{
u32 c = 0, packet_size = *(u32 *)packet;
@@ -2929,26 +2651,6 @@ static void **get_session_id(struct msm_cvp_cb_info *info)
case HAL_SESSION_RELEASE_BUFFER_DONE:
case HAL_SESSION_REGISTER_BUFFER_DONE:
case HAL_SESSION_UNREGISTER_BUFFER_DONE:
case HAL_SESSION_DFS_CONFIG_CMD_DONE:
case HAL_SESSION_DMM_CONFIG_CMD_DONE:
case HAL_SESSION_WARP_CONFIG_CMD_DONE:
case HAL_SESSION_WARP_NCC_CONFIG_CMD_DONE:
case HAL_SESSION_SGM_OF_CONFIG_CMD_DONE:
case HAL_SESSION_TME_CONFIG_CMD_DONE:
case HAL_SESSION_ODT_CONFIG_CMD_DONE:
case HAL_SESSION_OD_CONFIG_CMD_DONE:
case HAL_SESSION_NCC_CONFIG_CMD_DONE:
case HAL_SESSION_ICA_CONFIG_CMD_DONE:
case HAL_SESSION_HCD_CONFIG_CMD_DONE:
case HAL_SESSION_DCM_CONFIG_CMD_DONE:
case HAL_SESSION_DC_CONFIG_CMD_DONE:
case HAL_SESSION_PYS_HCD_CONFIG_CMD_DONE:
case HAL_SESSION_DMM_PARAMS_CMD_DONE:
case HAL_SESSION_WARP_DS_PARAMS_CMD_DONE:
case HAL_SESSION_PERSIST_SET_DONE:
case HAL_SESSION_PERSIST_REL_DONE:
case HAL_SESSION_FD_CONFIG_CMD_DONE:
case HAL_SESSION_MODEL_BUF_CMD_DONE:
case HAL_SESSION_PROPERTY_INFO:
case HAL_SESSION_EVENT_CHANGE:
session_id = &info->response.cmd.session_id;