Browse Source

msm: eva: feature related Waipio eva driver change

Feature related Waipio_EVA_driver_code changes

Change-Id: I49955d8b33d8c2e668555ac2a1795ea8d5710442
Signed-off-by: Yu SI <[email protected]>
Yu SI 4 years ago
parent
commit
085cc3a1a8

+ 53 - 13
msm/eva/cvp_hfi.c

@@ -51,24 +51,59 @@ const struct msm_cvp_hfi_defs cvp_hfi_defs[] = {
 		.resp = HAL_NO_RESP,
 	},
 	{
-		.size = HFI_DME_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DME_CONFIG,
+		.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_SESSION_DME_CONFIG_CMD_DONE,
+		.resp = HAL_NO_RESP,
 	},
 	{
-		.size = HFI_DME_BASIC_CONFIG_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DME_BASIC_CONFIG,
+		.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_DME_BASIC_CONFIG_CMD_DONE,
+		.resp = HAL_SESSION_DMM_PARAMS_CMD_DONE,
 	},
 	{
-		.size = HFI_DME_FRAME_CMD_SIZE,
-		.type = HFI_CMD_SESSION_CVP_DME_FRAME,
-		.buf_offset = HFI_DME_FRAME_BUFFERS_OFFSET,
-		.buf_num = HFI_DME_BUF_NUM,
+		.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,
 	},
 	{
@@ -2909,7 +2944,9 @@ static void **get_session_id(struct msm_cvp_cb_info *info)
 	case HAL_SESSION_REGISTER_BUFFER_DONE:
 	case HAL_SESSION_UNREGISTER_BUFFER_DONE:
 	case HAL_SESSION_DFS_CONFIG_CMD_DONE:
-	case HAL_SESSION_DME_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_TME_CONFIG_CMD_DONE:
 	case HAL_SESSION_ODT_CONFIG_CMD_DONE:
 	case HAL_SESSION_OD_CONFIG_CMD_DONE:
@@ -2919,9 +2956,12 @@ static void **get_session_id(struct msm_cvp_cb_info *info)
 	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_DME_BASIC_CONFIG_CMD_DONE:
+	case HAL_SESSION_DMM_PARAMS_CMD_DONE:
+	case HAL_SESSION_WARP_DS_PARAMS_CMD_DONE:
 	case HAL_SESSION_DFS_FRAME_CMD_DONE:
-	case HAL_SESSION_DME_FRAME_CMD_DONE:
+	case HAL_SESSION_DMM_FRAME_CMD_DONE:
+	case HAL_SESSION_WARP_FRAME_CMD_DONE:
+	case HAL_SESSION_WARP_NCC_FRAME_CMD_DONE:
 	case HAL_SESSION_ICA_FRAME_CMD_DONE:
 	case HAL_SESSION_FD_FRAME_CMD_DONE:
 	case HAL_SESSION_PERSIST_SET_DONE:

+ 52 - 4
msm/eva/cvp_hfi.h

@@ -99,8 +99,39 @@
 	(HFI_CMD_SESSION_CVP_START + 0x054)
 #define HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS\
 	(HFI_CMD_SESSION_CVP_START + 0x055)
-#define HFI_CMD_SESSION_CVP_FLUSH\
+#define  HFI_CMD_SESSION_CVP_RELEASE_MODEL_BUFFERS\
+	(HFI_CMD_SESSION_CVP_START + 0x056)
+#define  HFI_CMD_SESSION_CVP_SGM_DFS_CONFIG\
 	(HFI_CMD_SESSION_CVP_START + 0x057)
+#define  HFI_CMD_SESSION_CVP_SGM_DFS_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x058)
+#define  HFI_CMD_SESSION_CVP_SGM_OF_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x059)
+#define  HFI_CMD_SESSION_CVP_SGM_OF_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x05A)
+#define  HFI_CMD_SESSION_CVP_GCE_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x05B)
+#define  HFI_CMD_SESSION_CVP_GCE_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x05C)
+#define  HFI_CMD_SESSION_CVP_WARP_NCC_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x05D)
+#define  HFI_CMD_SESSION_CVP_WARP_NCC_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x05E)
+#define  HFI_CMD_SESSION_CVP_DMM_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x05F)
+#define  HFI_CMD_SESSION_CVP_DMM_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x060)
+#define HFI_CMD_SESSION_CVP_FLUSH\
+	(HFI_CMD_SESSION_CVP_START + 0x061)
+#define  HFI_CMD_SESSION_CVP_WARP_CONFIG\
+	(HFI_CMD_SESSION_CVP_START + 0x062)
+#define  HFI_CMD_SESSION_CVP_WARP_FRAME\
+	(HFI_CMD_SESSION_CVP_START + 0x063)
+#define  HFI_CMD_SESSION_CVP_DMM_PARAMS\
+	(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_ICA_FRAME\
 	(HFI_CMD_SESSION_CVP_START + 0x100)
 #define  HFI_CMD_SESSION_CVP_ICA_CONFIG\
@@ -147,10 +178,27 @@
 	(HFI_MSG_SESSION_CVP_START + 0x037)
 #define HFI_MSG_SESSION_CVP_RELEASE_PERSIST_BUFFERS\
 	(HFI_MSG_SESSION_CVP_START + 0x038)
-#define HFI_MSG_SESSION_CVP_FLUSH_DEPRECATE\
-	(HFI_CMD_SESSION_CVP_START + 0x03A)
-#define HFI_MSG_SESSION_CVP_FLUSH\
+#define  HFI_MSG_SESSION_CVP_RELEASE_MODEL_BUFFERS\
+	(HFI_MSG_SESSION_CVP_START + 0x039)
+#define  HFI_MSG_SESSION_CVP_SGM_OF\
 	(HFI_MSG_SESSION_CVP_START + 0x03A)
+#define  HFI_MSG_SESSION_CVP_GCE\
+	(HFI_MSG_SESSION_CVP_START + 0x03B)
+#define  HFI_MSG_SESSION_CVP_WARP_NCC\
+	(HFI_MSG_SESSION_CVP_START + 0x03C)
+#define  HFI_MSG_SESSION_CVP_DMM\
+	(HFI_MSG_SESSION_CVP_START + 0x03D)
+#define  HFI_MSG_SESSION_CVP_SGM_DFS\
+	(HFI_MSG_SESSION_CVP_START + 0x03E)
+#define  HFI_MSG_SESSION_CVP_WARP\
+	(HFI_MSG_SESSION_CVP_START + 0x03F)
+#define  HFI_MSG_SESSION_CVP_DMM_PARAMS\
+	(HFI_MSG_SESSION_CVP_START + 0x040)
+#define  HFI_MSG_SESSION_CVP_WARP_DS_PARAMS\
+	(HFI_MSG_SESSION_CVP_START + 0x041)
+
+#define HFI_MSG_SESSION_CVP_FLUSH\
+	(HFI_MSG_SESSION_CVP_START + 0x004A)
 
 #define CVP_IFACEQ_MAX_PKT_SIZE       1024
 #define CVP_IFACEQ_MED_PKT_SIZE       768

+ 13 - 8
msm/eva/cvp_hfi_api.h

@@ -35,11 +35,11 @@
 #define HFI_DFS_FRAME_BUFFERS_OFFSET 8
 #define HFI_DFS_BUF_NUM 4
 
-#define HFI_DME_CONFIG_CMD_SIZE	194
-#define HFI_DME_BASIC_CONFIG_CMD_SIZE	51
-#define HFI_DME_FRAME_CMD_SIZE	28
-#define HFI_DME_FRAME_BUFFERS_OFFSET 12
-#define HFI_DME_BUF_NUM 8
+#define HFI_DMM_CONFIG_CMD_SIZE	194
+#define HFI_DMM_BASIC_CONFIG_CMD_SIZE	51
+#define HFI_DMM_FRAME_CMD_SIZE	28
+#define HFI_DMM_FRAME_BUFFERS_OFFSET 12
+#define HFI_DMM_BUF_NUM 8
 
 #define HFI_PERSIST_CMD_SIZE	11
 #define HFI_PERSIST_BUFFERS_OFFSET 7
@@ -212,9 +212,14 @@ enum hal_command_response {
 	HAL_SESSION_RELEASE_RESOURCE_DONE,
 	HAL_SESSION_DFS_CONFIG_CMD_DONE,
 	HAL_SESSION_DFS_FRAME_CMD_DONE,
-	HAL_SESSION_DME_CONFIG_CMD_DONE,
-	HAL_SESSION_DME_BASIC_CONFIG_CMD_DONE,
-	HAL_SESSION_DME_FRAME_CMD_DONE,
+	HAL_SESSION_DMM_CONFIG_CMD_DONE,
+	HAL_SESSION_DMM_PARAMS_CMD_DONE,
+	HAL_SESSION_DMM_FRAME_CMD_DONE,
+	HAL_SESSION_WARP_CONFIG_CMD_DONE,
+	HAL_SESSION_WARP_DS_PARAMS_CMD_DONE,
+	HAL_SESSION_WARP_FRAME_CMD_DONE,
+	HAL_SESSION_WARP_NCC_CONFIG_CMD_DONE,
+	HAL_SESSION_WARP_NCC_FRAME_CMD_DONE,
 	HAL_SESSION_TME_CONFIG_CMD_DONE,
 	HAL_SESSION_ODT_CONFIG_CMD_DONE,
 	HAL_SESSION_OD_CONFIG_CMD_DONE,

+ 1 - 1
msm/eva/cvp_hfi_helper.h

@@ -224,7 +224,7 @@ struct cvp_hfi_cmd_sys_get_property_packet {
 
 enum HFI_SESSION_TYPE {
 	HFI_SESSION_CV = 1,
-	HFI_SESSION_DME,
+	HFI_SESSION_DMM,
 	HFI_SESSION_ODT,
 	HFI_SESSION_FD
 };

+ 11 - 1
msm/eva/hfi_response_handler.c

@@ -429,6 +429,12 @@ static int hfi_process_session_cvp_operation_config(u32 device_id,
 	else if (pkt->packet_type == HFI_MSG_SESSION_CVP_SET_MODEL_BUFFERS)
 		signal = get_signal_from_pkt_type(
 				HFI_CMD_SESSION_CVP_SET_MODEL_BUFFERS);
+	else if (pkt->packet_type == HFI_MSG_SESSION_CVP_DMM_PARAMS)
+		signal = get_signal_from_pkt_type(
+				HFI_CMD_SESSION_CVP_DMM_PARAMS);
+	else if (pkt->packet_type == HFI_MSG_SESSION_CVP_WARP_DS_PARAMS)
+		signal = get_signal_from_pkt_type(
+				HFI_CMD_SESSION_CVP_WARP_DS_PARAMS);
 	else
 		signal = get_signal_from_pkt_type(conf_id);
 
@@ -657,12 +663,16 @@ int cvp_hfi_process_msg_packet(u32 device_id, void *hdr,
 	case HFI_MSG_SESSION_CVP_SET_PERSIST_BUFFERS:
 	case HFI_MSG_SESSION_CVP_RELEASE_PERSIST_BUFFERS:
 	case HFI_MSG_SESSION_CVP_SET_MODEL_BUFFERS:
+	case HFI_MSG_SESSION_CVP_DMM_PARAMS:
+	case HFI_MSG_SESSION_CVP_WARP_DS_PARAMS:
 		pkt_func =
 			(pkt_func_def)hfi_process_session_cvp_operation_config;
 		break;
 	case HFI_MSG_SESSION_CVP_DS:
 	case HFI_MSG_SESSION_CVP_DFS:
-	case HFI_MSG_SESSION_CVP_DME:
+	case HFI_MSG_SESSION_CVP_DMM:
+	case HFI_MSG_SESSION_CVP_WARP:
+	case HFI_MSG_SESSION_CVP_WARP_NCC:
 	case HFI_MSG_SESSION_CVP_FD:
 		pkt_func = (pkt_func_def)hfi_process_session_cvp_msg;
 		break;

+ 5 - 3
msm/eva/msm_cvp.c

@@ -211,7 +211,9 @@ static int msm_cvp_session_process_hfi(
 	}
 	pkt_type = in_pkt->pkt_data[1];
 	if (pkt_type == HFI_CMD_SESSION_CVP_SET_PERSIST_BUFFERS ||
-		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_WARP_DS_PARAMS)
 		rc = msm_cvp_map_user_persist(inst, in_pkt, offset, buf_num);
 	else if (pkt_type == HFI_CMD_SESSION_CVP_RELEASE_PERSIST_BUFFERS)
 		rc = msm_cvp_mark_user_persist(inst, in_pkt, offset, buf_num);
@@ -651,7 +653,7 @@ static int msm_cvp_session_process_hfi_fence(struct msm_cvp_inst *inst,
 	pkt = (struct cvp_hfi_cmd_session_hdr *)&fence_pkt->pkt_data;
 	idx = get_pkt_index((struct cvp_hal_session_cmd_pkt *)pkt);
 
-	if (idx < 0 || pkt->size > MAX_HFI_FENCE_OFFSET) {
+	if (idx < 0 || (pkt->size > MAX_HFI_FENCE_OFFSET * sizeof(unsigned int))) {
 		dprintk(CVP_ERR, "%s incorrect packet %d %#x\n", __func__,
 				pkt->size, pkt->packet_type);
 		goto exit;
@@ -1883,7 +1885,7 @@ int msm_cvp_session_init(struct msm_cvp_inst *inst)
 
 	inst->prop.type = HFI_SESSION_CV;
 	if (inst->session_type == MSM_CVP_KERNEL)
-		inst->prop.type = HFI_SESSION_DME;
+		inst->prop.type = HFI_SESSION_DMM;
 
 	inst->prop.kernel_mask = 0xFFFFFFFF;
 	inst->prop.priority = 0;

+ 1 - 1
msm/eva/msm_cvp_buf.h

@@ -15,7 +15,7 @@
 #include <linux/refcount.h>
 #include <media/msm_eva_private.h>
 
-#define MAX_FRAME_BUFFER_NUMS 30
+#define MAX_FRAME_BUFFER_NUMS 48
 #define MAX_DMABUF_NUMS 64
 
 struct msm_cvp_inst;

+ 8 - 3
msm/eva/msm_cvp_common.c

@@ -794,9 +794,14 @@ void cvp_handle_cmd_response(enum hal_command_response cmd, void *data)
 		break;
 	case HAL_SESSION_DFS_CONFIG_CMD_DONE:
 	case HAL_SESSION_DFS_FRAME_CMD_DONE:
-	case HAL_SESSION_DME_CONFIG_CMD_DONE:
-	case HAL_SESSION_DME_BASIC_CONFIG_CMD_DONE:
-	case HAL_SESSION_DME_FRAME_CMD_DONE:
+	case HAL_SESSION_DMM_CONFIG_CMD_DONE:
+	case HAL_SESSION_DMM_PARAMS_CMD_DONE:
+	case HAL_SESSION_DMM_FRAME_CMD_DONE:
+	case HAL_SESSION_WARP_CONFIG_CMD_DONE:
+	case HAL_SESSION_WARP_DS_PARAMS_CMD_DONE:
+	case HAL_SESSION_WARP_FRAME_CMD_DONE:
+	case HAL_SESSION_WARP_NCC_CONFIG_CMD_DONE:
+	case HAL_SESSION_WARP_NCC_FRAME_CMD_DONE:
 	case HAL_SESSION_PERSIST_SET_DONE:
 	case HAL_SESSION_PERSIST_REL_DONE:
 	case HAL_SESSION_TME_CONFIG_CMD_DONE:

+ 2 - 2
msm/eva/msm_cvp_core.c

@@ -19,11 +19,11 @@
 
 #define MAX_EVENTS 30
 #define NUM_CYCLES16X16_HCD_FRAME 95
-#define NUM_CYCLES16X16_DME_FRAME 600
+#define NUM_CYCLES16X16_DMM_FRAME 600
 #define NUM_CYCLES16X16_NCC_FRAME 400
 #define NUM_CYCLES16X16_DS_FRAME  80
 #define NUM_CYCLESFW_FRAME  1680000
-#define NUM_DME_MAX_FEATURE_POINTS 500
+#define NUM_DMM_MAX_FEATURE_POINTS 500
 #define CYCLES_MARGIN_IN_POWEROF2 3
 
 int msm_cvp_poll(void *instance, struct file *filp,

+ 3 - 3
msm/eva/msm_cvp_internal.h

@@ -34,9 +34,9 @@
 #define FENCE_WAIT_SIGNAL_RETRY_TIMES 20
 #define FENCE_BIT (1ULL << 63)
 
-#define FENCE_DME_ICA_ENABLED_IDX 0
-#define FENCE_DME_DS_IDX 1
-#define FENCE_DME_OUTPUT_IDX 7
+#define FENCE_DMM_ICA_ENABLED_IDX 0
+#define FENCE_DMM_DS_IDX 1
+#define FENCE_DMM_OUTPUT_IDX 7
 
 #define SYS_MSG_START HAL_SYS_INIT_DONE
 #define SYS_MSG_END HAL_SYS_ERROR

+ 1 - 1
msm/eva/msm_cvp_synx.c

@@ -166,7 +166,7 @@ static int cvp_wait_synx(struct synx_session ssid, u32 *synx, u32 num_synx,
 		u32 *synx_state)
 {
 	int i = 0, rc = 0;
-	unsigned long timeout_ms = 1000;
+	unsigned long timeout_ms = 2000; //1000;
 	int h_synx;
 
 	while (i < num_synx) {