From 609992d7e7989f7260b3ac0af2635432647797bf Mon Sep 17 00:00:00 2001 From: Shijie Qin Date: Tue, 23 Apr 2019 15:21:14 +0800 Subject: [PATCH] MLK-21521 VPU Decoder: add new v4l2_s_contrl for contrl decode frame disable reorder #define V4L2_CID_USER_FRAME_DIS_REORDER (V4L2_CID_USER_BASE + 0x1300) cfg.ops = &vpu_custom_ctrl_ops; cfg.id = V4L2_CID_USER_FRAME_DIS_REORDER; cfg.name = "frame disable reoder ctrl"; cfg.min = 0; cfg.max = 1; cfg.step = 1; cfg.def = 0; cfg.type = V4L2_CTRL_TYPE_BOOLEAN; Signed-off-by: Shijie Qin --- drivers/mxc/vpu_malone/vpu_b0.c | 22 +++++++++++++++++++++- drivers/mxc/vpu_malone/vpu_b0.h | 1 + 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/drivers/mxc/vpu_malone/vpu_b0.c b/drivers/mxc/vpu_malone/vpu_b0.c index ca8d29d8c5a7..d8ff18c25725 100644 --- a/drivers/mxc/vpu_malone/vpu_b0.c +++ b/drivers/mxc/vpu_malone/vpu_b0.c @@ -1596,6 +1596,9 @@ static int v4l2_custom_s_ctrl(struct v4l2_ctrl *ctrl) case V4L2_CID_USER_FRAME_DEPTH: vpu_frm_depth = ctrl->val; break; + case V4L2_CID_USER_FRAME_DIS_REORDER: + ctx->b_dis_reorder = ctrl->val; + break; default: vpu_dbg(LVL_ERR, "%s() Invalid costomer control(%d)\n", __func__, ctrl->id); @@ -1696,6 +1699,23 @@ static int add_custom_ctrl(struct vpu_ctx *This) return -EINVAL; } + memset(&cfg, 0, sizeof(struct v4l2_ctrl_config)); + cfg.ops = &vpu_custom_ctrl_ops; + cfg.id = V4L2_CID_USER_FRAME_DIS_REORDER; + cfg.name = "frame disable reoder ctrl"; + cfg.min = 0; + cfg.max = 1; + cfg.step = 1; + cfg.def = 0; + cfg.type = V4L2_CTRL_TYPE_BOOLEAN; + + ctrl = v4l2_ctrl_new_custom(&This->ctrl_handler, + &cfg, NULL); + if (!ctrl) { + vpu_dbg(LVL_ERR, "Add custom ctrl fail\n"); + return -EINVAL; + } + return 0; } @@ -1705,7 +1725,7 @@ static int ctrls_setup_decoder(struct vpu_ctx *This) return -EINVAL; v4l2_ctrl_handler_init(&This->ctrl_handler, - NUM_CTRLS_DEC + 1 + NUM_CTRLS_DEC + 3 ); if (This->ctrl_handler.error) { vpu_dbg(LVL_ERR, "%s() v4l2_ctrl_handler_init failed(%d)\n", diff --git a/drivers/mxc/vpu_malone/vpu_b0.h b/drivers/mxc/vpu_malone/vpu_b0.h index 8a31250dfc5c..ade2207365d5 100644 --- a/drivers/mxc/vpu_malone/vpu_b0.h +++ b/drivers/mxc/vpu_malone/vpu_b0.h @@ -131,6 +131,7 @@ typedef enum{ #define V4L2_CID_USER_RAW_BASE (V4L2_CID_USER_BASE + 0x1100) #define V4L2_CID_USER_FRAME_DEPTH (V4L2_CID_USER_BASE + 0x1200) +#define V4L2_CID_USER_FRAME_DIS_REORDER (V4L2_CID_USER_BASE + 0x1300) enum vpu_pixel_format { VPU_HAS_COLOCATED = 0x00000001, -- 2.17.1