7708065f5d
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> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
tuner-core.c | ||
v4l2-async.c | ||
v4l2-clk.c | ||
v4l2-common.c | ||
v4l2-compat-ioctl32.c | ||
v4l2-ctrls.c | ||
v4l2-dev.c | ||
v4l2-device.c | ||
v4l2-dv-timings.c | ||
v4l2-event.c | ||
v4l2-fh.c | ||
v4l2-flash-led-class.c | ||
v4l2-fwnode.c | ||
v4l2-ioctl.c | ||
v4l2-mc.c | ||
v4l2-mem2mem.c | ||
v4l2-subdev.c | ||
v4l2-trace.c | ||
videobuf-core.c | ||
videobuf-dma-contig.c | ||
videobuf-dma-sg.c | ||
videobuf-vmalloc.c |