linux/drivers/media/v4l2-core
Michael Tretter 7708065f5d media: v4l2-mem2mem: reorder checks in v4l2_m2m_poll()
When reaching the end of stream, V4L2 m2m clients may expect the
V4L2_EOS_EVENT. Although the V4L2_EOS_EVENT is deprecated behavior,
drivers must signal that event before dequeuing the buffer that has the
V4L2_BUF_FLAG_LAST flag set.

If a driver queues the V4L2_EOS_EVENT event and returns the buffer after
the check for events but before the check for buffers, vb2_m2m_poll()
will signal that the buffer with V4L2_BUF_FLAG_LAST can be read but not
that the V4L2_EOS_EVENT is available.

Split the check for buffers into a separate function and check for
available buffers before checking for events. This ensures that if
vb2_m2m_poll() signals POLLIN | POLLRDNORM for the V4L2_BUF_FLAG_LAST
buffer, it signals POLLPRI for the V4L2_EOS_EVENT, too.

Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
[hverkuil-cisco@xs4all.nl: fix checkpatch alignment warning]
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2019-07-23 08:46:12 -04:00
..
Kconfig Linux 5.2-rc2 2019-05-28 11:21:51 -04:00
Makefile media: v4l2-core: get rid of videobuf-dvb 2018-05-04 10:57:31 -04:00
tuner-core.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
v4l2-async.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
v4l2-clk.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
v4l2-common.c media: v4l2-common: Add an helper to apply frmsize constraints 2019-05-29 10:48:34 -04:00
v4l2-compat-ioctl32.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
v4l2-ctrls.c media: v4l2-ctrl: Validate VP8 stateless decoder controls 2019-07-22 15:13:49 -04:00
v4l2-dev.c Linux 5.2-rc4 2019-06-11 12:09:28 -04:00
v4l2-device.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
v4l2-dv-timings.c media: hdmi.h: rename ADOBE_RGB to OPRGB and ADOBE_YCC to OPYCC 2018-09-24 09:28:41 -04:00
v4l2-event.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
v4l2-fh.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
v4l2-flash-led-class.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
v4l2-fwnode.c media: v4l2-fwnode: Avoid using PTR_ERR(NULL) 2019-06-21 17:54:00 -04:00
v4l2-ioctl.c media: v4l2-ioctl: call v4l_pix_format_touch() for TRY_FMT 2019-07-23 08:42:50 -04:00
v4l2-mc.c media: v4l2-mc: add print messages when media graph fails 2018-09-17 13:16:19 -04:00
v4l2-mem2mem.c media: v4l2-mem2mem: reorder checks in v4l2_m2m_poll() 2019-07-23 08:46:12 -04:00
v4l2-subdev.c media: v4l2-subdev: fix regression in check_pad() 2019-07-11 08:59:54 -04:00
v4l2-trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
videobuf-core.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 237 2019-06-19 17:09:07 +02:00
videobuf-dma-contig.c media updates for v5.3-rc1 2019-07-09 09:47:22 -07:00
videobuf-dma-sg.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 237 2019-06-19 17:09:07 +02:00
videobuf-vmalloc.c media updates for v5.3-rc1 2019-07-09 09:47:22 -07:00