Message ID | 20230824092133.39510-11-benjamin.gaignard@collabora.com |
---|---|
State | Superseded |
Headers | show |
Series | Add DELETE_BUF ioctl | expand |
Hi Benjamin, kernel test robot noticed the following build errors: [auto build test ERROR on next-20230824] [also build test ERROR on v6.5-rc7] [cannot apply to linus/master v6.5-rc7 v6.5-rc6 v6.5-rc5] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Benjamin-Gaignard/media-videobuf2-Rework-offset-cookie-encoding-pattern/20230824-172416 base: next-20230824 patch link: https://lore.kernel.org/r/20230824092133.39510-11-benjamin.gaignard%40collabora.com patch subject: [PATCH v5 10/10] media: v4l2: Add mem2mem helpers for DELETE_BUFS ioctl config: alpha-randconfig-r005-20230825 (https://download.01.org/0day-ci/archive/20230825/202308251828.fSyIXACx-lkp@intel.com/config) compiler: alpha-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20230825/202308251828.fSyIXACx-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202308251828.fSyIXACx-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/media/test-drivers/vim2m.c:963:10: error: 'const struct v4l2_ioctl_ops' has no member named 'vidioc_delete_buf'; did you mean 'vidioc_delete_bufs'? 963 | .vidioc_delete_buf = v4l2_m2m_ioctl_delete_buf, | ^~~~~~~~~~~~~~~~~ | vidioc_delete_bufs >> drivers/media/test-drivers/vim2m.c:963:35: error: 'v4l2_m2m_ioctl_delete_buf' undeclared here (not in a function); did you mean 'v4l2_m2m_ioctl_delete_bufs'? 963 | .vidioc_delete_buf = v4l2_m2m_ioctl_delete_buf, | ^~~~~~~~~~~~~~~~~~~~~~~~~ | v4l2_m2m_ioctl_delete_bufs vim +963 drivers/media/test-drivers/vim2m.c 942 943 static const struct v4l2_ioctl_ops vim2m_ioctl_ops = { 944 .vidioc_querycap = vidioc_querycap, 945 946 .vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap, 947 .vidioc_enum_framesizes = vidioc_enum_framesizes, 948 .vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap, 949 .vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap, 950 .vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap, 951 952 .vidioc_enum_fmt_vid_out = vidioc_enum_fmt_vid_out, 953 .vidioc_g_fmt_vid_out = vidioc_g_fmt_vid_out, 954 .vidioc_try_fmt_vid_out = vidioc_try_fmt_vid_out, 955 .vidioc_s_fmt_vid_out = vidioc_s_fmt_vid_out, 956 957 .vidioc_reqbufs = v4l2_m2m_ioctl_reqbufs, 958 .vidioc_querybuf = v4l2_m2m_ioctl_querybuf, 959 .vidioc_qbuf = v4l2_m2m_ioctl_qbuf, 960 .vidioc_dqbuf = v4l2_m2m_ioctl_dqbuf, 961 .vidioc_prepare_buf = v4l2_m2m_ioctl_prepare_buf, 962 .vidioc_create_bufs = v4l2_m2m_ioctl_create_bufs, > 963 .vidioc_delete_buf = v4l2_m2m_ioctl_delete_buf, 964 .vidioc_expbuf = v4l2_m2m_ioctl_expbuf, 965 966 .vidioc_streamon = v4l2_m2m_ioctl_streamon, 967 .vidioc_streamoff = v4l2_m2m_ioctl_streamoff, 968 969 .vidioc_subscribe_event = v4l2_ctrl_subscribe_event, 970 .vidioc_unsubscribe_event = v4l2_event_unsubscribe, 971 }; 972
Hi Benjamin, kernel test robot noticed the following build errors: [auto build test ERROR on next-20230824] [also build test ERROR on v6.5-rc7] [cannot apply to linus/master v6.5-rc7 v6.5-rc6 v6.5-rc5] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Benjamin-Gaignard/media-videobuf2-Rework-offset-cookie-encoding-pattern/20230824-172416 base: next-20230824 patch link: https://lore.kernel.org/r/20230824092133.39510-11-benjamin.gaignard%40collabora.com patch subject: [PATCH v5 10/10] media: v4l2: Add mem2mem helpers for DELETE_BUFS ioctl config: i386-randconfig-r033-20230825 (https://download.01.org/0day-ci/archive/20230825/202308252057.jcyaKKOJ-lkp@intel.com/config) compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07) reproduce: (https://download.01.org/0day-ci/archive/20230825/202308252057.jcyaKKOJ-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202308252057.jcyaKKOJ-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/media/test-drivers/vim2m.c:963:23: error: use of undeclared identifier 'v4l2_m2m_ioctl_delete_buf'; did you mean 'v4l2_m2m_ioctl_delete_bufs'? .vidioc_delete_buf = v4l2_m2m_ioctl_delete_buf, ^~~~~~~~~~~~~~~~~~~~~~~~~ v4l2_m2m_ioctl_delete_bufs include/media/v4l2-mem2mem.h:873:5: note: 'v4l2_m2m_ioctl_delete_bufs' declared here int v4l2_m2m_ioctl_delete_bufs(struct file *file, void *priv, ^ >> drivers/media/test-drivers/vim2m.c:963:3: error: field designator 'vidioc_delete_buf' does not refer to any field in type 'const struct v4l2_ioctl_ops'; did you mean 'vidioc_delete_bufs'? .vidioc_delete_buf = v4l2_m2m_ioctl_delete_buf, ^~~~~~~~~~~~~~~~~ vidioc_delete_bufs include/media/v4l2-ioctl.h:427:8: note: 'vidioc_delete_bufs' declared here int (*vidioc_delete_bufs)(struct file *file, void *fh, ^ 2 errors generated. vim +963 drivers/media/test-drivers/vim2m.c 942 943 static const struct v4l2_ioctl_ops vim2m_ioctl_ops = { 944 .vidioc_querycap = vidioc_querycap, 945 946 .vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap, 947 .vidioc_enum_framesizes = vidioc_enum_framesizes, 948 .vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap, 949 .vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap, 950 .vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap, 951 952 .vidioc_enum_fmt_vid_out = vidioc_enum_fmt_vid_out, 953 .vidioc_g_fmt_vid_out = vidioc_g_fmt_vid_out, 954 .vidioc_try_fmt_vid_out = vidioc_try_fmt_vid_out, 955 .vidioc_s_fmt_vid_out = vidioc_s_fmt_vid_out, 956 957 .vidioc_reqbufs = v4l2_m2m_ioctl_reqbufs, 958 .vidioc_querybuf = v4l2_m2m_ioctl_querybuf, 959 .vidioc_qbuf = v4l2_m2m_ioctl_qbuf, 960 .vidioc_dqbuf = v4l2_m2m_ioctl_dqbuf, 961 .vidioc_prepare_buf = v4l2_m2m_ioctl_prepare_buf, 962 .vidioc_create_bufs = v4l2_m2m_ioctl_create_bufs, > 963 .vidioc_delete_buf = v4l2_m2m_ioctl_delete_buf, 964 .vidioc_expbuf = v4l2_m2m_ioctl_expbuf, 965 966 .vidioc_streamon = v4l2_m2m_ioctl_streamon, 967 .vidioc_streamoff = v4l2_m2m_ioctl_streamoff, 968 969 .vidioc_subscribe_event = v4l2_ctrl_subscribe_event, 970 .vidioc_unsubscribe_event = v4l2_event_unsubscribe, 971 }; 972
Le 25/08/2023 à 12:29, kernel test robot a écrit : > Hi Benjamin, Damned I have forgot this configuration flag when rebasing my code after holidays... It will be fixed for v6 but I will wait for more comments before send it. Regards, Benjamin > > kernel test robot noticed the following build errors: > > [auto build test ERROR on next-20230824] > [also build test ERROR on v6.5-rc7] > [cannot apply to linus/master v6.5-rc7 v6.5-rc6 v6.5-rc5] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > url: https://github.com/intel-lab-lkp/linux/commits/Benjamin-Gaignard/media-videobuf2-Rework-offset-cookie-encoding-pattern/20230824-172416 > base: next-20230824 > patch link: https://lore.kernel.org/r/20230824092133.39510-11-benjamin.gaignard%40collabora.com > patch subject: [PATCH v5 10/10] media: v4l2: Add mem2mem helpers for DELETE_BUFS ioctl > config: alpha-randconfig-r005-20230825 (https://download.01.org/0day-ci/archive/20230825/202308251828.fSyIXACx-lkp@intel.com/config) > compiler: alpha-linux-gcc (GCC) 13.2.0 > reproduce: (https://download.01.org/0day-ci/archive/20230825/202308251828.fSyIXACx-lkp@intel.com/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <lkp@intel.com> > | Closes: https://lore.kernel.org/oe-kbuild-all/202308251828.fSyIXACx-lkp@intel.com/ > > All errors (new ones prefixed by >>): > >>> drivers/media/test-drivers/vim2m.c:963:10: error: 'const struct v4l2_ioctl_ops' has no member named 'vidioc_delete_buf'; did you mean 'vidioc_delete_bufs'? > 963 | .vidioc_delete_buf = v4l2_m2m_ioctl_delete_buf, > | ^~~~~~~~~~~~~~~~~ > | vidioc_delete_bufs >>> drivers/media/test-drivers/vim2m.c:963:35: error: 'v4l2_m2m_ioctl_delete_buf' undeclared here (not in a function); did you mean 'v4l2_m2m_ioctl_delete_bufs'? > 963 | .vidioc_delete_buf = v4l2_m2m_ioctl_delete_buf, > | ^~~~~~~~~~~~~~~~~~~~~~~~~ > | v4l2_m2m_ioctl_delete_bufs > > > vim +963 drivers/media/test-drivers/vim2m.c > > 942 > 943 static const struct v4l2_ioctl_ops vim2m_ioctl_ops = { > 944 .vidioc_querycap = vidioc_querycap, > 945 > 946 .vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap, > 947 .vidioc_enum_framesizes = vidioc_enum_framesizes, > 948 .vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap, > 949 .vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap, > 950 .vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap, > 951 > 952 .vidioc_enum_fmt_vid_out = vidioc_enum_fmt_vid_out, > 953 .vidioc_g_fmt_vid_out = vidioc_g_fmt_vid_out, > 954 .vidioc_try_fmt_vid_out = vidioc_try_fmt_vid_out, > 955 .vidioc_s_fmt_vid_out = vidioc_s_fmt_vid_out, > 956 > 957 .vidioc_reqbufs = v4l2_m2m_ioctl_reqbufs, > 958 .vidioc_querybuf = v4l2_m2m_ioctl_querybuf, > 959 .vidioc_qbuf = v4l2_m2m_ioctl_qbuf, > 960 .vidioc_dqbuf = v4l2_m2m_ioctl_dqbuf, > 961 .vidioc_prepare_buf = v4l2_m2m_ioctl_prepare_buf, > 962 .vidioc_create_bufs = v4l2_m2m_ioctl_create_bufs, > > 963 .vidioc_delete_buf = v4l2_m2m_ioctl_delete_buf, > 964 .vidioc_expbuf = v4l2_m2m_ioctl_expbuf, > 965 > 966 .vidioc_streamon = v4l2_m2m_ioctl_streamon, > 967 .vidioc_streamoff = v4l2_m2m_ioctl_streamoff, > 968 > 969 .vidioc_subscribe_event = v4l2_ctrl_subscribe_event, > 970 .vidioc_unsubscribe_event = v4l2_event_unsubscribe, > 971 }; > 972 >
diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c b/drivers/media/platform/verisilicon/hantro_v4l2.c index 27a1e77cca38..0fd1c2fc78c8 100644 --- a/drivers/media/platform/verisilicon/hantro_v4l2.c +++ b/drivers/media/platform/verisilicon/hantro_v4l2.c @@ -756,6 +756,7 @@ const struct v4l2_ioctl_ops hantro_ioctl_ops = { .vidioc_dqbuf = v4l2_m2m_ioctl_dqbuf, .vidioc_prepare_buf = v4l2_m2m_ioctl_prepare_buf, .vidioc_create_bufs = v4l2_m2m_ioctl_create_bufs, + .vidioc_delete_bufs = v4l2_m2m_ioctl_delete_bufs, .vidioc_expbuf = v4l2_m2m_ioctl_expbuf, .vidioc_subscribe_event = v4l2_ctrl_subscribe_event, diff --git a/drivers/media/test-drivers/vim2m.c b/drivers/media/test-drivers/vim2m.c index 3e3b424b4860..3014b8ee13d0 100644 --- a/drivers/media/test-drivers/vim2m.c +++ b/drivers/media/test-drivers/vim2m.c @@ -960,6 +960,7 @@ static const struct v4l2_ioctl_ops vim2m_ioctl_ops = { .vidioc_dqbuf = v4l2_m2m_ioctl_dqbuf, .vidioc_prepare_buf = v4l2_m2m_ioctl_prepare_buf, .vidioc_create_bufs = v4l2_m2m_ioctl_create_bufs, + .vidioc_delete_buf = v4l2_m2m_ioctl_delete_buf, .vidioc_expbuf = v4l2_m2m_ioctl_expbuf, .vidioc_streamon = v4l2_m2m_ioctl_streamon, diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c index 0cc30397fbad..d1d59943680f 100644 --- a/drivers/media/v4l2-core/v4l2-mem2mem.c +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c @@ -831,6 +831,17 @@ int v4l2_m2m_prepare_buf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, } EXPORT_SYMBOL_GPL(v4l2_m2m_prepare_buf); +int v4l2_m2m_delete_bufs(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, + struct v4l2_delete_buffers *d) +{ + struct vb2_queue *vq; + + vq = v4l2_m2m_get_vq(m2m_ctx, d->type); + + return vb2_delete_bufs(vq, d); +} +EXPORT_SYMBOL_GPL(v4l2_m2m_delete_bufs); + int v4l2_m2m_create_bufs(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, struct v4l2_create_buffers *create) { @@ -1377,6 +1388,15 @@ int v4l2_m2m_ioctl_create_bufs(struct file *file, void *priv, } EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_create_bufs); +int v4l2_m2m_ioctl_delete_bufs(struct file *file, void *priv, + struct v4l2_delete_buffers *d) +{ + struct v4l2_fh *fh = file->private_data; + + return v4l2_m2m_delete_bufs(file, fh->m2m_ctx, d); +} +EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_delete_bufs); + int v4l2_m2m_ioctl_querybuf(struct file *file, void *priv, struct v4l2_buffer *buf) { diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h index d6c8eb2b5201..161f85c42dc8 100644 --- a/include/media/v4l2-mem2mem.h +++ b/include/media/v4l2-mem2mem.h @@ -381,6 +381,16 @@ int v4l2_m2m_dqbuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, int v4l2_m2m_prepare_buf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, struct v4l2_buffer *buf); +/** + * v4l2_m2m_delete_bufs() - delete buffers from the queue + * + * @file: pointer to struct &file + * @m2m_ctx: m2m context assigned to the instance given by struct &v4l2_m2m_ctx + * @d: pointer to struct &v4l2_delete_buffers + */ +int v4l2_m2m_delete_bufs(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, + struct v4l2_delete_buffers *d); + /** * v4l2_m2m_create_bufs() - create a source or destination buffer, depending * on the type @@ -860,6 +870,8 @@ int v4l2_m2m_ioctl_reqbufs(struct file *file, void *priv, struct v4l2_requestbuffers *rb); int v4l2_m2m_ioctl_create_bufs(struct file *file, void *fh, struct v4l2_create_buffers *create); +int v4l2_m2m_ioctl_delete_bufs(struct file *file, void *priv, + struct v4l2_delete_buffers *d); int v4l2_m2m_ioctl_querybuf(struct file *file, void *fh, struct v4l2_buffer *buf); int v4l2_m2m_ioctl_expbuf(struct file *file, void *fh,
Create v4l2-mem2mem helpers for VIDIOC_DELETE_BUFS ioctl. Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> --- .../media/platform/verisilicon/hantro_v4l2.c | 1 + drivers/media/test-drivers/vim2m.c | 1 + drivers/media/v4l2-core/v4l2-mem2mem.c | 20 +++++++++++++++++++ include/media/v4l2-mem2mem.h | 12 +++++++++++ 4 files changed, 34 insertions(+)