linux/drivers/media/v4l2-core
Chen-Yu Tsai 8310ca9407 media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
DST_QUEUE_OFF_BASE is applied to offset/mem_offset on MMAP capture buffers
only for the VIDIOC_QUERYBUF ioctl, while the userspace fields (including
offset/mem_offset) are filled in for VIDIOC_{QUERY,PREPARE,Q,DQ}BUF
ioctls. This leads to differences in the values presented to userspace.
If userspace attempts to mmap the capture buffer directly using values
from DQBUF, it will fail.

Move the code that applies the magic offset into a helper, and call
that helper from all four ioctl entry points.

[hverkuil: drop unnecessary '= 0' in v4l2_m2m_querybuf() for ret]

Fixes: 7f98639def ("V4L/DVB: add memory-to-memory device helper framework for videobuf")
Fixes: 908a0d7c58 ("[media] v4l: mem2mem: port to videobuf2")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
2022-01-23 21:18:42 +01:00
..
Kconfig media: Add VP9 v4l2 library 2021-11-22 07:47:13 +00:00
Makefile media: Add VP9 v4l2 library 2021-11-22 07:47:13 +00:00
tuner-core.c
v4l2-async.c media: v4l: async: Rename async nf functions, clean up long lines 2021-09-30 10:07:35 +02:00
v4l2-common.c media: Add NV12_4L4 tiled format 2021-09-30 10:07:40 +02:00
v4l2-compat-ioctl32.c media: v4l2-core: fix VIDIOC_DQEVENT handling on non-x86 2021-11-10 11:38:26 +00:00
v4l2-ctrls-api.c media: v4l2-ctrls: split up into four source files 2021-05-25 17:03:29 +02:00
v4l2-ctrls-core.c media: uapi: Add VP9 stateless decoder controls 2021-11-22 07:44:55 +00:00
v4l2-ctrls-defs.c media: uapi: Add VP9 stateless decoder controls 2021-11-22 07:44:55 +00:00
v4l2-ctrls-priv.h media: v4l2-ctrls: split up into four source files 2021-05-25 17:03:29 +02:00
v4l2-ctrls-request.c media: v4l2-ctrls: split up into four source files 2021-05-25 17:03:29 +02:00
v4l2-dev.c media: v4l2-dev.c: Modified the macro SET_VALID_IOCTL 2021-06-02 14:18:01 +02:00
v4l2-device.c media: v4l: subdev: Set sd->devnode before registering the subdev 2020-12-02 15:55:44 +01:00
v4l2-dv-timings.c media: v4l2-dv-timings.c: fix wrong condition in two for-loops 2021-08-04 14:43:52 +02:00
v4l2-event.c media: v4l2-event: Modified variable type 'unsigned' to 'unsigned int' 2021-06-17 10:22:59 +02:00
v4l2-fh.c media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release 2021-06-02 13:17:44 +02:00
v4l2-flash-led-class.c media: v4l2-flash: Check whether setting LED brightness succeeded 2021-08-04 14:43:51 +02:00
v4l2-fwnode.c media: v4l2-fwnode: Simplify v4l2_async_nf_parse_fwnode_endpoints() 2021-09-30 10:07:35 +02:00
v4l2-h264.c media: uapi: h264: Clean slice invariants syntax elements 2020-09-01 14:13:28 +02:00
v4l2-i2c.c
v4l2-ioctl.c media: uapi: Add VP9 stateless decoder controls 2021-11-22 07:44:55 +00:00
v4l2-jpeg.c media: Avoid parsing quantization and huffman tables 2021-03-22 10:40:13 +01:00
v4l2-mc.c media: v4l2-mc: fix a warning message 2021-03-22 13:06:39 +01:00
v4l2-mem2mem.c media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls 2022-01-23 21:18:42 +01:00
v4l2-spi.c
v4l2-subdev.c media: subdev: remove VIDIOC_DQEVENT_TIME32 handling 2021-06-17 10:16:34 +02:00
v4l2-trace.c
v4l2-vp9.c media: Add VP9 v4l2 library 2021-11-22 07:47:13 +00:00
videobuf-core.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
videobuf-dma-contig.c mmap locking API: use coccinelle to convert mmap_sem rwsem call sites 2020-06-09 09:39:14 -07:00
videobuf-dma-sg.c media: videobuf-dma-sg: void function return statements are not generally useful 2021-06-02 14:18:36 +02:00
videobuf-vmalloc.c mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00