On Tue, 2021-03-23 at 15:57 -0300, daniel.almeida@xxxxxxxxxxxxx wrote: > From: Daniel Almeida <daniel.almeida@xxxxxxxxxxxxx> > > According to the v4l2 api, it is allowed to skip > setting a control if its contents haven't changed for performance > reasons: userspace should only update the controls that changed from > last frame rather then updating them all. Still some ancient code > that checks for mandatory controls has been left in this driver. > > Remove it. > > Fixes: cd33c830448b ("media: rkvdec: Add the rkvdec driver") > Signed-off-by: Daniel Almeida <daniel.almeida@xxxxxxxxxxxxx> Reviewed-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx> Thanks, Ezequiel > --- > drivers/staging/media/rkvdec/rkvdec.c | 48 +-------------------------- > drivers/staging/media/rkvdec/rkvdec.h | 1 - > 2 files changed, 1 insertion(+), 48 deletions(-) > > diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c > index d3eb81ee8dc2..5f0219d117fb 100644 > --- a/drivers/staging/media/rkvdec/rkvdec.c > +++ b/drivers/staging/media/rkvdec/rkvdec.c > @@ -55,16 +55,13 @@ static const struct v4l2_ctrl_ops rkvdec_ctrl_ops = { > > static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = { > { > - .mandatory = true, > .cfg.id = V4L2_CID_STATELESS_H264_DECODE_PARAMS, > }, > { > - .mandatory = true, > .cfg.id = V4L2_CID_STATELESS_H264_SPS, > .cfg.ops = &rkvdec_ctrl_ops, > }, > { > - .mandatory = true, > .cfg.id = V4L2_CID_STATELESS_H264_PPS, > }, > { > @@ -585,25 +582,7 @@ static const struct vb2_ops rkvdec_queue_ops = { > > static int rkvdec_request_validate(struct media_request *req) > { > - struct media_request_object *obj; > - const struct rkvdec_ctrls *ctrls; > - struct v4l2_ctrl_handler *hdl; > - struct rkvdec_ctx *ctx = NULL; > - unsigned int count, i; > - int ret; > - > - list_for_each_entry(obj, &req->objects, list) { > - if (vb2_request_object_is_buffer(obj)) { > - struct vb2_buffer *vb; > - > - vb = container_of(obj, struct vb2_buffer, req_obj); > - ctx = vb2_get_drv_priv(vb->vb2_queue); > - break; > - } > - } > - > - if (!ctx) > - return -EINVAL; > + unsigned int count; > > count = vb2_request_buffer_cnt(req); > if (!count) > @@ -611,31 +590,6 @@ static int rkvdec_request_validate(struct media_request *req) > else if (count > 1) > return -EINVAL; > > - hdl = v4l2_ctrl_request_hdl_find(req, &ctx->ctrl_hdl); > - if (!hdl) > - return -ENOENT; > - > - ret = 0; > - ctrls = ctx->coded_fmt_desc->ctrls; > - for (i = 0; ctrls && i < ctrls->num_ctrls; i++) { > - u32 id = ctrls->ctrls[i].cfg.id; > - struct v4l2_ctrl *ctrl; > - > - if (!ctrls->ctrls[i].mandatory) > - continue; > - > - ctrl = v4l2_ctrl_request_hdl_ctrl_find(hdl, id); > - if (!ctrl) { > - ret = -ENOENT; > - break; > - } > - } > - > - v4l2_ctrl_request_hdl_put(hdl); > - > - if (ret) > - return ret; > - > return vb2_request_validate(req); > } > > diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h > index 77a137cca88e..52ac3874c5e5 100644 > --- a/drivers/staging/media/rkvdec/rkvdec.h > +++ b/drivers/staging/media/rkvdec/rkvdec.h > @@ -25,7 +25,6 @@ > struct rkvdec_ctx; > > struct rkvdec_ctrl_desc { > - u32 mandatory : 1; > struct v4l2_ctrl_config cfg; > }; >