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

Commit 5f62bf9b authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: vidc: remove volatile flag for controls"

parents 647ecf34 d303eed6
Loading
Loading
Loading
Loading
+1 −23
Original line number Diff line number Diff line
@@ -71,7 +71,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		.maximum = 0,
		.default_value = 0,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -95,7 +94,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
				  V4L2_MPEG_VIDC_VIDEO_PICTYPE_DECODE_P |
				  V4L2_MPEG_VIDC_VIDEO_PICTYPE_DECODE_B),
		.step = 0,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -123,7 +121,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		.minimum = EXTRADATA_NONE,
		.maximum = EXTRADATA_DEFAULT | EXTRADATA_ADVANCED,
		.default_value = EXTRADATA_DEFAULT,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -136,7 +133,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
			V4L2_CID_MPEG_VIDC_VIDEO_STREAM_OUTPUT_SECONDARY,
		.default_value =
			V4L2_CID_MPEG_VIDC_VIDEO_STREAM_OUTPUT_PRIMARY,
		.menu_skip_mask = 0,
		.step = 1,
		.qmenu = NULL,
	},
@@ -154,7 +150,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_H264_PROFILE_HIGH) |
		(1 << V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH)
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -186,7 +181,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_2)
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -201,7 +195,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE) |
		(1 << V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10)
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -226,7 +219,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2)
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -240,7 +232,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_HEVC_TIER_MAIN) |
		(1 << V4L2_MPEG_VIDEO_HEVC_TIER_HIGH)
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -251,7 +242,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		.maximum = V4L2_MPEG_VIDEO_VP8_PROFILE_0,
		.default_value = V4L2_MPEG_VIDEO_VP8_PROFILE_0,
		.menu_skip_mask = ~(1 << V4L2_MPEG_VIDEO_VP8_PROFILE_0),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -269,7 +259,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		(1 << V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3)
		),
		.qmenu = vp8_profile_level,
		.flags = V4L2_CTRL_FLAG_VOLATILE | V4L2_CTRL_FLAG_READ_ONLY,
	},
	{
		.id = V4L2_CID_MPEG_VIDEO_VP9_PROFILE,
@@ -284,7 +273,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_VP9_PROFILE_2)
		),
		.qmenu = NULL,
		.flags = V4L2_CTRL_FLAG_VOLATILE | V4L2_CTRL_FLAG_READ_ONLY,
	},
	{
		.id = V4L2_CID_MPEG_VIDC_VIDEO_VP9_LEVEL,
@@ -309,7 +297,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		(1 << V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_61)
		),
		.qmenu = vp9_level,
		.flags = V4L2_CTRL_FLAG_VOLATILE | V4L2_CTRL_FLAG_READ_ONLY,
	},
	{
		.id = V4L2_CID_MPEG_VIDC_VIDEO_MPEG2_PROFILE,
@@ -323,7 +310,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		(1 << V4L2_MPEG_VIDC_VIDEO_MPEG2_PROFILE_MAIN)
		),
		.qmenu = mpeg2_profile,
		.flags = V4L2_CTRL_FLAG_VOLATILE | V4L2_CTRL_FLAG_READ_ONLY,
	},
	{
		.id = V4L2_CID_MPEG_VIDC_VIDEO_MPEG2_LEVEL,
@@ -338,7 +324,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
			(1 << V4L2_MPEG_VIDC_VIDEO_MPEG2_LEVEL_2)
		),
		.qmenu = mpeg2_level,
		.flags = V4L2_CTRL_FLAG_VOLATILE | V4L2_CTRL_FLAG_READ_ONLY,
	},
	{
		.id = V4L2_CID_MPEG_VIDC_VIDEO_CONCEAL_COLOR_8BIT,
@@ -366,7 +351,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		.maximum = INT_MAX,
		.default_value = 0,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -377,9 +361,7 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		.maximum = MAX_NUM_CAPTURE_BUFFERS,
		.default_value = MIN_NUM_CAPTURE_BUFFERS,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
		.flags = V4L2_CTRL_FLAG_VOLATILE,
	},
	{
		.id = V4L2_CID_MIN_BUFFERS_FOR_OUTPUT,
@@ -389,9 +371,7 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		.maximum = MAX_NUM_OUTPUT_BUFFERS,
		.default_value = MIN_NUM_OUTPUT_BUFFERS,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
		.flags = V4L2_CTRL_FLAG_VOLATILE,
	},
	{
		.id = V4L2_CID_MPEG_VIDC_VIDEO_FRAME_RATE,
@@ -401,7 +381,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		.maximum = (MAXIMUM_FPS << 16),
		.default_value = (DEFAULT_FPS << 16),
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -421,7 +400,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
		.maximum = INT_MAX,
		.default_value =  (DEFAULT_FPS << 16),
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
+0 −28
Original line number Diff line number Diff line
@@ -91,7 +91,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = INT_MAX,
		.default_value = 2*DEFAULT_FPS-1,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -102,7 +101,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_QP,
		.default_value = DEFAULT_MIN_QP,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -113,7 +111,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_QP,
		.default_value = DEFAULT_MIN_QP,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -124,7 +121,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_QP,
		.default_value = DEFAULT_MIN_QP,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -135,7 +131,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_QP_PACKED,
		.default_value = DEFAULT_MIN_QP_PACKED,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -146,7 +141,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_QP_PACKED,
		.default_value = DEFAULT_MAX_QP_PACKED,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -157,7 +151,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_NUM_B_FRAMES,
		.default_value = 0,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -168,9 +161,7 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_NUM_CAPTURE_BUFFERS,
		.default_value = MIN_NUM_CAPTURE_BUFFERS,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
		.flags = V4L2_CTRL_FLAG_VOLATILE,
	},
	{
		.id = V4L2_CID_MIN_BUFFERS_FOR_OUTPUT,
@@ -180,9 +171,7 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_NUM_OUTPUT_BUFFERS,
		.default_value = MIN_NUM_OUTPUT_BUFFERS,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
		.flags = V4L2_CTRL_FLAG_VOLATILE,
	},

	{
@@ -193,7 +182,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = 0,
		.default_value = 0,
		.step = 0,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -221,7 +209,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_FRAME_QUALITY,
		.default_value = DEFAULT_FRAME_QUALITY,
		.step = FRAME_QUALITY_STEP,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -232,7 +219,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = 512,
		.default_value = 0,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -243,7 +229,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = (MAXIMUM_FPS << 16),
		.default_value = (DEFAULT_FPS << 16),
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -254,7 +239,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_BIT_RATE,
		.default_value = DEFAULT_BIT_RATE,
		.step = BIT_RATE_STEP,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -283,7 +267,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_H264_PROFILE_HIGH) |
		(1 << V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH)
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -315,7 +298,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_H264_LEVEL_6_2)
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -326,7 +308,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = V4L2_MPEG_VIDEO_VP8_PROFILE_0,
		.default_value = V4L2_MPEG_VIDEO_VP8_PROFILE_0,
		.menu_skip_mask = ~(1 << V4L2_MPEG_VIDEO_VP8_PROFILE_0),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -344,7 +325,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		(1 << V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3)
		),
		.qmenu = vp8_profile_level,
		.flags = V4L2_CTRL_FLAG_VOLATILE,
	},
	{
		.id = V4L2_CID_MPEG_VIDEO_HEVC_PROFILE,
@@ -358,7 +338,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE) |
		(1 << V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10)
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -384,7 +363,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1) |
		(1 << V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2)
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -398,7 +376,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		(1 << V4L2_MPEG_VIDEO_HEVC_TIER_MAIN) |
		(1 << V4L2_MPEG_VIDEO_HEVC_TIER_HIGH)
		),
		.flags = V4L2_CTRL_FLAG_VOLATILE,
		.qmenu = NULL,
	},
	{
@@ -432,7 +409,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_SLICE_BYTE_SIZE,
		.default_value = MIN_SLICE_BYTE_SIZE,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -443,7 +419,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_SLICE_MB_SIZE,
		.default_value = 1,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -465,7 +440,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = MAX_INTRA_REFRESH_MBS,
		.default_value = 0,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -476,7 +450,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = 6,
		.default_value = 0,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
@@ -487,7 +460,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
		.maximum = 6,
		.default_value = 0,
		.step = 1,
		.menu_skip_mask = 0,
		.qmenu = NULL,
	},
	{
+1 −51
Original line number Diff line number Diff line
@@ -1348,6 +1348,7 @@ static int msm_vidc_op_s_ctrl(struct v4l2_ctrl *ctrl)
				inst, v4l2_ctrl_get_name(ctrl->id));
	return rc;
}

static int try_get_ctrl_for_instance(struct msm_vidc_inst *inst,
	struct v4l2_ctrl *ctrl)
{
@@ -1355,7 +1356,6 @@ static int try_get_ctrl_for_instance(struct msm_vidc_inst *inst,
	struct hal_buffer_requirements *bufreq = NULL;

	switch (ctrl->id) {

	case V4L2_CID_MPEG_VIDEO_H264_PROFILE:
		ctrl->val = msm_comm_hfi_to_v4l2(
			V4L2_CID_MPEG_VIDEO_H264_PROFILE,
@@ -1384,8 +1384,6 @@ static int try_get_ctrl_for_instance(struct msm_vidc_inst *inst,
			V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
			inst->level);
		break;


	case V4L2_CID_MIN_BUFFERS_FOR_CAPTURE:
		bufreq = get_buff_req_buffer(inst, HAL_BUFFER_OUTPUT);
		if (!bufreq) {
@@ -1407,7 +1405,6 @@ static int try_get_ctrl_for_instance(struct msm_vidc_inst *inst,
					HAL_BUFFER_INPUT);
			return -EINVAL;
		}

		ctrl->val = bufreq->buffer_count_min_host;
		dprintk(VIDC_DBG, "g_min: %x : hal_buffer %d min buffers %d\n",
			hash32_ptr(inst->session), HAL_BUFFER_INPUT, ctrl->val);
@@ -1416,62 +1413,15 @@ static int try_get_ctrl_for_instance(struct msm_vidc_inst *inst,
		ctrl->val = inst->prop.extradata_ctrls;
		break;
	default:
		/*
		 * Other controls aren't really volatile, shouldn't need to
		 * modify ctrl->value
		 */
		break;
	}

	return rc;
}

static int msm_vidc_op_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
{
	int rc = 0;
	unsigned int c = 0;
	struct msm_vidc_inst *inst;
	struct v4l2_ctrl *master;

	if (!ctrl) {
		dprintk(VIDC_ERR, "%s invalid parameters for ctrl\n", __func__);
		return -EINVAL;
	}

	inst = container_of(ctrl->handler,
		struct msm_vidc_inst, ctrl_handler);
	if (!inst) {
		dprintk(VIDC_ERR, "%s invalid parameters for inst\n", __func__);
		return -EINVAL;
	}
	master = ctrl->cluster[0];
	if (!master) {
		dprintk(VIDC_ERR, "%s invalid parameters for master\n",
			__func__);
		return -EINVAL;
	}

	for (c = 0; c < master->ncontrols; ++c) {
		if (master->cluster[c]->flags & V4L2_CTRL_FLAG_VOLATILE) {
			rc = try_get_ctrl_for_instance(inst,
				master->cluster[c]);
			if (rc) {
				dprintk(VIDC_ERR, "Failed getting %x\n",
					master->cluster[c]->id);
				return rc;
			}
		}
	}
	if (rc)
		dprintk(VIDC_ERR, "Failed getting control: Inst = %pK (%s)\n",
				inst, v4l2_ctrl_get_name(ctrl->id));
	return rc;
}

static const struct v4l2_ctrl_ops msm_vidc_ctrl_ops = {

	.s_ctrl = msm_vidc_op_s_ctrl,
	.g_volatile_ctrl = msm_vidc_op_g_volatile_ctrl,
};

static struct msm_vidc_inst_smem_ops  msm_vidc_smem_ops = {