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(-) -- 2.30.2