[libcamera-devel] v4l2: v4l2_camera_proxy: Zero flags in VIDIOC_REQBUFS
diff mbox series

Message ID 20220111202838.586-1-laurent.pinchart@ideasonboard.com
State Accepted
Commit bc3d27234ed90924ae200a916afb97d1945912d5
Headers show
Series
  • [libcamera-devel] v4l2: v4l2_camera_proxy: Zero flags in VIDIOC_REQBUFS
Related show

Commit Message

Laurent Pinchart Jan. 11, 2022, 8:28 p.m. UTC
The V4L2 compatibility layer doesn't support any of the VIDIOC_REQBUFS
flags. They are all correctly ignored, but also need to be zeroed
before returning to indicate that they haven't been taken into account.

This fixes a v4l2-compliance failure:

Buffer ioctls (Input 0):
                fail: ../../utils/v4l2-compliance/v4l2-test-buffers.cpp(682): coherent
        test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: FAIL

Fixes: aa4533639971 ("include: linux: Update kernel headers to version v5.16-rc7")
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/v4l2/v4l2_camera_proxy.cpp | 1 +
 1 file changed, 1 insertion(+)


base-commit: eff9de397ac37e948e5ca603814fcaba9bcd8df5

Comments

Vedant Paranjape Jan. 11, 2022, 8:54 p.m. UTC | #1
Hi Laurent,
This patch fixed the build issue.

On Wed, Jan 12, 2022 at 1:59 AM Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> The V4L2 compatibility layer doesn't support any of the VIDIOC_REQBUFS
> flags. They are all correctly ignored, but also need to be zeroed
> before returning to indicate that they haven't been taken into account.
>
> This fixes a v4l2-compliance failure:
>
> Buffer ioctls (Input 0):
>                 fail: ../../utils/v4l2-compliance/v4l2-test-buffers.cpp(682): coherent
>         test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: FAIL
>
> Fixes: aa4533639971 ("include: linux: Update kernel headers to version v5.16-rc7")
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Tested-by: Vedant Paranjape <vedantparanjape160201@gmail.com>

> ---
>  src/v4l2/v4l2_camera_proxy.cpp | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
> index 4d529bc29a4d..1802d90bf30b 100644
> --- a/src/v4l2/v4l2_camera_proxy.cpp
> +++ b/src/v4l2/v4l2_camera_proxy.cpp
> @@ -469,6 +469,7 @@ int V4L2CameraProxy::vidioc_reqbufs(V4L2CameraFile *file, struct v4l2_requestbuf
>                 return -EBUSY;
>
>         arg->capabilities = V4L2_BUF_CAP_SUPPORTS_MMAP;
> +       arg->flags = 0;
>         memset(arg->reserved, 0, sizeof(arg->reserved));
>
>         if (arg->count == 0) {
>
> base-commit: eff9de397ac37e948e5ca603814fcaba9bcd8df5
> --
> Regards,
>
> Laurent Pinchart
>

Regards,
Vedant Paranjape
Paul Elder Jan. 14, 2022, 11:08 a.m. UTC | #2
Hi Laurent,

On Tue, Jan 11, 2022 at 10:28:38PM +0200, Laurent Pinchart wrote:
> The V4L2 compatibility layer doesn't support any of the VIDIOC_REQBUFS
> flags. They are all correctly ignored, but also need to be zeroed
> before returning to indicate that they haven't been taken into account.
> 
> This fixes a v4l2-compliance failure:
> 
> Buffer ioctls (Input 0):
>                 fail: ../../utils/v4l2-compliance/v4l2-test-buffers.cpp(682): coherent
>         test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: FAIL
> 
> Fixes: aa4533639971 ("include: linux: Update kernel headers to version v5.16-rc7")
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>

> ---
>  src/v4l2/v4l2_camera_proxy.cpp | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
> index 4d529bc29a4d..1802d90bf30b 100644
> --- a/src/v4l2/v4l2_camera_proxy.cpp
> +++ b/src/v4l2/v4l2_camera_proxy.cpp
> @@ -469,6 +469,7 @@ int V4L2CameraProxy::vidioc_reqbufs(V4L2CameraFile *file, struct v4l2_requestbuf
>  		return -EBUSY;
>  
>  	arg->capabilities = V4L2_BUF_CAP_SUPPORTS_MMAP;
> +	arg->flags = 0;
>  	memset(arg->reserved, 0, sizeof(arg->reserved));
>  
>  	if (arg->count == 0) {
> 
> base-commit: eff9de397ac37e948e5ca603814fcaba9bcd8df5
> -- 
> Regards,
> 
> Laurent Pinchart
>

Patch
diff mbox series

diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
index 4d529bc29a4d..1802d90bf30b 100644
--- a/src/v4l2/v4l2_camera_proxy.cpp
+++ b/src/v4l2/v4l2_camera_proxy.cpp
@@ -469,6 +469,7 @@  int V4L2CameraProxy::vidioc_reqbufs(V4L2CameraFile *file, struct v4l2_requestbuf
 		return -EBUSY;
 
 	arg->capabilities = V4L2_BUF_CAP_SUPPORTS_MMAP;
+	arg->flags = 0;
 	memset(arg->reserved, 0, sizeof(arg->reserved));
 
 	if (arg->count == 0) {