]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: venus : Addition of EOS Event support for Encoder
authorViswanath Boma <quic_vboma@quicinc.com>
Mon, 8 Aug 2022 09:28:31 +0000 (11:28 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:50:50 +0000 (19:50 +0100)
[ Upstream commit 70b2a5463dcdc18cd94d41f6dc170aa29cfcb922 ]

V4l2 encoder compliance expecting End of stream Event registration
support for Encoder.

Signed-off-by: Viswanath Boma <quic_vboma@quicinc.com>
Signed-off-by: Vikash Garodia <vgarodia@qti.qualcomm.com>
Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Stable-dep-of: 6c9934c5a00a ("media: venus: fix enc/dec destruction order")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/platform/qcom/venus/venc.c

index 8720606cdd95a19f58e5918f1608f70f301dc255..2c23d83273a8522911dd466bc4c690233b3b5221 100644 (file)
@@ -509,6 +509,19 @@ static int venc_enum_frameintervals(struct file *file, void *fh,
        return 0;
 }
 
+static int venc_subscribe_event(struct v4l2_fh *fh,
+                               const struct v4l2_event_subscription *sub)
+{
+       switch (sub->type) {
+       case V4L2_EVENT_EOS:
+               return v4l2_event_subscribe(fh, sub, 2, NULL);
+       case V4L2_EVENT_CTRL:
+               return v4l2_ctrl_subscribe_event(fh, sub);
+       default:
+               return -EINVAL;
+       }
+}
+
 static const struct v4l2_ioctl_ops venc_ioctl_ops = {
        .vidioc_querycap = venc_querycap,
        .vidioc_enum_fmt_vid_cap = venc_enum_fmt,
@@ -534,7 +547,7 @@ static const struct v4l2_ioctl_ops venc_ioctl_ops = {
        .vidioc_g_parm = venc_g_parm,
        .vidioc_enum_framesizes = venc_enum_framesizes,
        .vidioc_enum_frameintervals = venc_enum_frameintervals,
-       .vidioc_subscribe_event = v4l2_ctrl_subscribe_event,
+       .vidioc_subscribe_event = venc_subscribe_event,
        .vidioc_unsubscribe_event = v4l2_event_unsubscribe,
 };