mbox series

[0/3] vb2: do not allow support_requests + min_buffers_needed

Message ID 20210729133627.1592672-1-hverkuil-cisco@xs4all.nl (mailing list archive)
Headers show
Series vb2: do not allow support_requests + min_buffers_needed | expand

Message

Hans Verkuil July 29, 2021, 1:36 p.m. UTC
If the vb2_queue field min_buffers_needed is non-zero, then only
allow that if support_requests is false. Otherwise when a request is
queued and vb2_core_qbuf is called, that function could fail if it
needs to call start_streaming(). There is no way for the request API
to propagate such an error back to userspace, and you really don't
want that either.

If this is ever needed, then an API extension is most likely needed.

Currently there are only two drivers that set this combination of
features: cedrus and vivid.

There is no reason for a non-zero min_buffers_needed in the cedrus
driver, so just drop that.

For the vivid driver a new module option was added that allows the
user to control whether requests are not supported, supported (default)
or required. In the latter two cases min_buffers_needed is set to 0
in the vivid driver.

I would appreciate if someone can verify that the cedrus patch doesn't
break anything since that has only been compile tested.

Regards,

	Hans

Hans Verkuil (3):
  cedrus: drop min_buffers_needed.
  vivid: add module option to set request support mode
  videobuf2-core: sanity checks for requests and qbuf

 .../media/common/videobuf2/videobuf2-core.c   | 23 ++++++++++++++++++-
 drivers/media/test-drivers/vivid/vivid-core.c | 14 +++++++++--
 .../staging/media/sunxi/cedrus/cedrus_video.c |  2 --
 3 files changed, 34 insertions(+), 5 deletions(-)