On Mon, Nov 30, 2020 at 7:24 PM Alexandre Courbot <acourbot@xxxxxxxxxxxx> wrote: > > On Sun, Nov 29, 2020 at 3:05 PM Fritz Koenig <frkoenig@xxxxxxxxxxxx> wrote: > > > > V4L2_ENC_CMD_STOP and V4L2_ENC_CMD_START are already > > supported. Add a way to query for support. > > I think your Signed-off-by is missing (checkpatch.pl should warn you > about such problems). > > > > > --- > > drivers/media/platform/qcom/venus/venc.c | 26 ++++++++++++++++++++++++ > > 1 file changed, 26 insertions(+) > > > > diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platform/qcom/venus/venc.c > > index 2ddfeddf98514..e05db3c4bfb24 100644 > > --- a/drivers/media/platform/qcom/venus/venc.c > > +++ b/drivers/media/platform/qcom/venus/venc.c > > @@ -507,6 +507,27 @@ static int venc_enum_frameintervals(struct file *file, void *fh, > > return 0; > > } > > > > +static int > > +venc_try_encoder_cmd(struct file *file, void *fh, struct v4l2_encoder_cmd *cmd) > > +{ > > + struct venus_inst *inst = to_inst(file); > > + struct device *dev = inst->core->dev_dec; > > + > > + switch (cmd->cmd) { > > + case V4L2_ENC_CMD_STOP: > > + case V4L2_ENC_CMD_START: > > + if (cmd->flags != 0) { > > + dev_dbg(dev, "flags=%u are not supported", cmd->flags); > > + return -EINVAL; > > + } > > + break; > > + default: > > + return -EINVAL; > > + } > > + > > + return 0; > > +} > > + > > static int > > venc_encoder_cmd(struct file *file, void *fh, struct v4l2_encoder_cmd *cmd) > > I am not seeing venc_encoder_cmd() in the media tree, does this patch > depend on others that are not yet merged? If so they should be > submitted together as a series. > Sorry, I'm still a little unsure of procedures here. There is another patch set[1] posted and I thought it was missing this part. It turns out I had not applied the whole set to my tree. > > { > > @@ -514,6 +535,10 @@ venc_encoder_cmd(struct file *file, void *fh, struct v4l2_encoder_cmd *cmd) > > struct hfi_frame_data fdata = {0}; > > int ret = 0; > > > > + ret = venc_try_encoder_cmd(file, fh, cmd); > > + if (ret < 0) > > + return ret; > > + > > v4l2_m2m_ioctl_try_encoder_cmd() is called right below, and AFAICT > does the same thing as the newly-defined venc_try_encoder_cmd(). So > IIUC this patch can be turned into a one-liner that does just the > following: > > @@ -575,6 +600,7 @@ static const struct v4l2_ioctl_ops venc_ioctl_ops = { > .vidioc_subscribe_event = v4l2_ctrl_subscribe_event, > .vidioc_unsubscribe_event = v4l2_event_unsubscribe, > .vidioc_encoder_cmd = venc_encoder_cmd, > + .vidioc_try_encoder_cmd = v4l2_m2m_ioctl_try_encoder_cmd, > }; > Yes, that's how it is in the current patch[2], which is why I may have missed it. (I'm embarrassed because I reviewed that patch and then posted mine.) > > ret = v4l2_m2m_ioctl_try_encoder_cmd(file, fh, cmd); > > if (ret) > > return ret; > > @@ -575,6 +600,7 @@ static const struct v4l2_ioctl_ops venc_ioctl_ops = { > > .vidioc_subscribe_event = v4l2_ctrl_subscribe_event, > > .vidioc_unsubscribe_event = v4l2_event_unsubscribe, > > .vidioc_encoder_cmd = venc_encoder_cmd, > > + .vidioc_try_encoder_cmd = venc_try_encoder_cmd, > > }; > > > > static int venc_set_properties(struct venus_inst *inst) > > -- > > 2.29.2.454.gaff20da3a2-goog > > [1] : https://patchwork.kernel.org/project/linux-media/list/?series=382113 [2]: https://patchwork.kernel.org/project/linux-media/patch/20201111143755.24541-7-stanimir.varbanov@xxxxxxxxxx/