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

Commit 59e0dc4c authored by Kyle Yan's avatar Kyle Yan Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: vidc: Simplify DCVS algorithm" into msm-4.9

parents cb928028 75cf18ef
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -883,6 +883,7 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
		property_id = HAL_PARAM_VDEC_SYNC_FRAME_DECODE;
		hal_property.enable = ctrl->val;
		pdata = &hal_property;
		msm_dcvs_try_enable(inst);
		break;
	case V4L2_CID_MPEG_VIDC_VIDEO_SECURE:
		inst->flags |= VIDC_SECURE;
+1 −2
Original line number Diff line number Diff line
@@ -1390,7 +1390,7 @@ static inline int start_streaming(struct msm_vidc_inst *inst)
			"Failed to move inst: %pK to start done state\n", inst);
		goto fail_start;
	}
	msm_dcvs_init_load(inst);
	msm_dcvs_init(inst);
	if (msm_comm_get_stream_output_mode(inst) ==
			HAL_VIDEO_DECODER_SECONDARY) {
		rc = msm_comm_queue_output_buffers(inst);
@@ -1953,7 +1953,6 @@ void *msm_vidc_open(int core_id, int session_type)
	if (rc)
		goto fail_bufq_capture;

	msm_dcvs_init(inst);
	rc = vb2_bufq_init(inst, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE,
			session_type);
	if (rc) {
+126 −529

File changed.

Preview size limit exceeded, changes collapsed.

+0 −3
Original line number Diff line number Diff line
@@ -32,10 +32,7 @@
#define DCVS_BUFFER_SAFEGUARD (DCVS_DEC_EXTRA_OUTPUT_BUFFERS - 1)

void msm_dcvs_init(struct msm_vidc_inst *inst);
void msm_dcvs_init_load(struct msm_vidc_inst *inst);
void msm_dcvs_monitor_buffer(struct msm_vidc_inst *inst);
int  msm_dcvs_get_extra_buff_count(struct msm_vidc_inst *inst);
void msm_dcvs_check_and_scale_clocks(struct msm_vidc_inst *inst, bool is_etb);
int msm_dcvs_try_enable(struct msm_vidc_inst *inst);
int msm_comm_scale_clocks_and_bus(struct msm_vidc_inst *inst);
int msm_comm_init_clocks_and_bus_data(struct msm_vidc_inst *inst);
+4 −10
Original line number Diff line number Diff line
@@ -1525,9 +1525,6 @@ static void handle_event_change(enum hal_command_response cmd, void *data)
		inst->prop.width[OUTPUT_PORT] = event_notify->width;
	}

	if (inst->session_type == MSM_VIDC_DECODER)
		msm_dcvs_init_load(inst);

	rc = msm_vidc_check_session_supported(inst);
	if (!rc) {
		seq_changed_event.type = event;
@@ -3850,7 +3847,6 @@ static void log_frame(struct msm_vidc_inst *inst, struct vidc_frame_data *data,
			data->timestamp, data->flags);
		msm_vidc_debugfs_update(inst, MSM_VIDC_DEBUGFS_EVENT_FTB);
	}

}

/*
@@ -4723,6 +4719,10 @@ int msm_comm_flush(struct msm_vidc_inst *inst, u32 flags)
		return 0;
	}

	// Finish FLUSH As Soon As Possible.
	inst->dcvs.buffer_counter = 0;
	msm_comm_scale_clocks_and_bus(inst);

	msm_comm_flush_dynamic_buffers(inst);

	if (inst->state == MSM_VIDC_CORE_INVALID ||
@@ -5058,9 +5058,6 @@ int msm_vidc_check_session_supported(struct msm_vidc_inst *inst)
		return -ENOTSUPP;
	}

	if (!rc)
		msm_dcvs_try_enable(inst);

	if (!rc) {
		if (inst->prop.width[CAPTURE_PORT] < capability->width.min ||
			inst->prop.height[CAPTURE_PORT] <
@@ -5377,10 +5374,7 @@ int msm_vidc_comm_s_parm(struct msm_vidc_inst *inst, struct v4l2_streamparm *a)
			if (rc)
				dprintk(VIDC_WARN,
					"Failed to set frame rate %d\n", rc);
		} else {
			msm_dcvs_init_load(inst);
		}
		msm_dcvs_try_enable(inst);
	}
exit:
	return rc;
Loading