Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94e04ce1 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: camera2: cpp: support write engine disable"

parents e0d7b24d 2ed01e95
Loading
Loading
Loading
Loading
+38 −27
Original line number Diff line number Diff line
@@ -1200,7 +1200,8 @@ static int msm_cpp_notify_frame_done(struct cpp_device *cpp_dev)
		msm_enqueue(&cpp_dev->eventData_q, &event_qcmd->list_eventdata);

		if (!processed_frame->output_buffer_info[0].processed_divert &&
			!processed_frame->output_buffer_info[0].native_buff) {
			!processed_frame->output_buffer_info[0].native_buff &&
			!processed_frame->we_disable) {
			memset(&buff_mgr_info, 0 ,
				sizeof(struct msm_buf_mngr_info));
			buff_mgr_info.session_id =
@@ -1223,7 +1224,8 @@ static int msm_cpp_notify_frame_done(struct cpp_device *cpp_dev)

		if (processed_frame->duplicate_output  &&
			!processed_frame->
				output_buffer_info[1].processed_divert) {
				output_buffer_info[1].processed_divert &&
			!processed_frame->we_disable) {
			memset(&buff_mgr_info, 0 ,
				sizeof(struct msm_buf_mngr_info));
			buff_mgr_info.session_id =
@@ -1456,7 +1458,8 @@ static int msm_cpp_cfg_frame(struct cpp_device *cpp_dev,
	int32_t rc = 0;
	struct msm_queue_cmd *frame_qcmd = NULL;
	uint32_t *cpp_frame_msg;
	unsigned long in_phyaddr, out_phyaddr0, out_phyaddr1;
	unsigned long in_phyaddr, out_phyaddr0 = (unsigned long)NULL;
	unsigned long out_phyaddr1;
	unsigned long tnr_scratch_buffer0, tnr_scratch_buffer1;
	uint16_t num_stripes = 0;
	struct msm_buf_mngr_info buff_mgr_info, dup_buff_mgr_info;
@@ -1492,12 +1495,16 @@ static int msm_cpp_cfg_frame(struct cpp_device *cpp_dev,
		goto frame_msg_err;
	}

	if (new_frame->we_disable == 0) {
		if (new_frame->output_buffer_info[0].native_buff == 0) {
		memset(&buff_mgr_info, 0, sizeof(struct msm_buf_mngr_info));
		buff_mgr_info.session_id = ((new_frame->identity >> 16) &
			0xFFFF);
		buff_mgr_info.stream_id = (new_frame->identity & 0xFFFF);
		rc = msm_cpp_buffer_ops(cpp_dev, VIDIOC_MSM_BUF_MNGR_GET_BUF,
			memset(&buff_mgr_info, 0,
				sizeof(struct msm_buf_mngr_info));
			buff_mgr_info.session_id =
				((new_frame->identity >> 16) & 0xFFFF);
			buff_mgr_info.stream_id =
				(new_frame->identity & 0xFFFF);
			rc = msm_cpp_buffer_ops(cpp_dev,
				VIDIOC_MSM_BUF_MNGR_GET_BUF,
				&buff_mgr_info);
			if (rc < 0) {
				rc = -EAGAIN;
@@ -1505,7 +1512,8 @@ static int msm_cpp_cfg_frame(struct cpp_device *cpp_dev,
					__func__, rc);
				goto frame_msg_err;
			}
		new_frame->output_buffer_info[0].index = buff_mgr_info.index;
			new_frame->output_buffer_info[0].index =
				buff_mgr_info.index;
		}

		out_phyaddr0 = msm_cpp_fetch_buffer_info(cpp_dev,
@@ -1519,6 +1527,7 @@ static int msm_cpp_cfg_frame(struct cpp_device *cpp_dev,
			rc = -EINVAL;
			goto phyaddr_err;
		}
	}
	out_phyaddr1 = out_phyaddr0;

	/* get buffer for duplicate output */
@@ -2354,6 +2363,7 @@ static struct msm_cpp_frame_info_t *get_64bit_cpp_frame_from_compat(
	new_frame->tnr_scratch_buffer_info[1] =
		new_frame32->tnr_scratch_buffer_info[1];
	new_frame->duplicate_output = new_frame32->duplicate_output;
	new_frame->we_disable = new_frame32->we_disable;
	new_frame->duplicate_identity = new_frame32->duplicate_identity;
	new_frame->reserved = new_frame32->reserved;

@@ -2426,6 +2436,7 @@ static void get_compat_frame_from_64bit(struct msm_cpp_frame_info_t *frame,
	k32_frame->output_buffer_info[0] = frame->output_buffer_info[0];
	k32_frame->output_buffer_info[1] = frame->output_buffer_info[1];
	k32_frame->duplicate_output = frame->duplicate_output;
	k32_frame->we_disable = frame->we_disable;
	k32_frame->duplicate_identity = frame->duplicate_identity;
	k32_frame->reserved = frame->reserved;
	k32_frame->cookie = ptr_to_compat(frame->cookie);
+2 −0
Original line number Diff line number Diff line
@@ -165,6 +165,7 @@ struct msm_cpp_frame_info_t {
	int32_t *status;
	int32_t duplicate_output;
	uint32_t duplicate_identity;
	uint8_t we_disable;
	struct msm_cpp_buffer_info_t input_buffer_info;
	struct msm_cpp_buffer_info_t output_buffer_info[2];
	struct msm_cpp_buffer_info_t tnr_scratch_buffer_info[2];
@@ -337,6 +338,7 @@ struct msm_cpp_frame_info32_t {
	compat_int_t status;
	int32_t duplicate_output;
	uint32_t duplicate_identity;
	uint8_t we_disable;
	struct msm_cpp_buffer_info_t input_buffer_info;
	struct msm_cpp_buffer_info_t output_buffer_info[2];
	struct msm_cpp_buffer_info_t tnr_scratch_buffer_info[2];