On 6/22/22 1:00 PM, Hans Verkuil wrote: > Hi Laurent, > > On 22/06/2022 11:44, Laurent Pinchart wrote: >> Hi Hans, >> >> On Wed, Jun 22, 2022 at 11:31:43AM +0200, Hans Verkuil wrote: >>> Add support for two new (un)prepare_streaming queue ops that are called >>> when the user calls VIDIOC_STREAMON and STREAMOFF (or closes the fh). >>> >>> This gives drivers a callback to validate the video pipeline and claim >>> or release streaming resources at the time that userspace indicates >>> that it wants to start streaming (VIDIOC_STREAMON) rather than when >>> the actual DMA engine kicks in (the start_streaming callback). This >>> is relevant for drivers that needs a minimum of X buffers before the >>> DMA can start. The actual pipeline validation needs to happen sooner >>> to avoid unnecessary errors at VIDIOC_QBUF time. >>> >>> As a bonus this allows us to move the horrible call to >>> v4l_vb2q_enable_media_source() in vb2_core_streamon() to the au0828 >>> driver (currently the only driver that uses this feature). >> >> Can we drop the horrible .enable_source() from media_device too ? :-) > > The second patch helps a bit with that, at least it's out of vb2. > >> >>> That call never belonged in vb2, but it had the same purpose as the >>> new prepare_streaming op: validate the pipeline. >>> >>> This is a follow-up from my previous RFCv2: >>> >>> https://patchwork.linuxtv.org/project/linux-media/patch/ba4bca14-488f-94ea-48d9-e7343103c5aa@xxxxxxxxx/ >>> >>> I would like to get consensus for this series. >> >> I don't like it much. vb2 is already doing too much in my opinion, >> growing it isn't the right way to fix it. > > We disagree on that :-) > >> >> I'm still working on a new version of the V4L2 streams series that may >> conflict with this, I'd propose discussing the two together. > > What is the ETA for that? I don't mind waiting a few months, but if it > takes a lot longer, then I'd rather merge this first so Eugen can use it > in his atmel MC support. It's a kernel API, so it can always be changed > or removed later. Hi, The atmel MC support is done on top of v4l2 without this patch, and I have a subsequent patch that changes the atmel MC to use the new RFC API. One option is to have the atmel MC like I initially sent it, and add my patch that switches to the prepare_streaming to this series . > > Regards, > > Hans > >> >>> Hans Verkuil (2): >>> vb2: add (un)prepare_streaming queue ops >>> vb2/au0828: move the v4l_vb2q_enable_media_source to the au0828 driver >>> >>> .../media/common/videobuf2/videobuf2-core.c | 26 ++++++++++++++----- >>> drivers/media/usb/au0828/au0828-vbi.c | 2 ++ >>> drivers/media/usb/au0828/au0828-video.c | 1 + >>> include/media/videobuf2-core.h | 14 ++++++++++ >>> 4 files changed, 37 insertions(+), 6 deletions(-) >> >