On Wednesday, June 22, 2011 14:38:55 Jonathan Corbet wrote:
> On Wed, 22 Jun 2011 11:43:14 +0200
> Marek Szyprowski <[email protected]> wrote:
>
> > > Do you really need a flag? If a driver absolutely cannot stream without
> > > buffers queued (and can't be fixed to start streaming for real when the
> > > buffers show up) it should just return -EINVAL from start_streaming() or
> > > some such. The driver must be aware of its limitations regardless, but
> > > there's no need to push that awareness into vb2 as well.
> >
> > The main idea behind vb2 was to move all common error handling code to
> > the framework and provide simple functions that can be used by the driver
> > directly without the need for additional checks.
>
> For stuff that's truly common, that makes sense. As soon as you start
> adding driver-specific flags, things aren't quite so common anymore. In
> this case, the driver writer can just as easily check the state of the
> buffer queue at streamon time, so I don't see what would be gained.
> Whatever, doesn't matter that much.
>
> > > (FWIW, I wouldn't switch the order of operations in vb2_streamon(); I
> > > would just take out the "if (q->streaming)" test at the end of vb2_qbuf()
> > > and pass the buffers through directly. But maybe that's just me.)
> >
> > I want to keep the current version of vb2_qbuf() and change the order of
> > operations in streamon().
>
> I'm curious as to why? As far as I can tell, there's no reason not to
> pass the buffers straight through when you get them?
I'm curious as well. I don't see the problem with that.
> > The only problem that still need to be resolved is what should happen with
> > the buffers if start_streaming() fails. The ownership for these buffers have
> > been already given to the driver, but they might have been in dirty state.
> > Probably vb2 should assume that the buffers are lost and reinitialize them.
>
> You already grab them back at stop_streaming() time, right? I'd think
> that a failed start_streaming() should leave things in exactly the same
> state as a start/stop_streaming() sequence.
I think so too. vb2 can just call queue_cancel, I think.
Regards,
Hans
>
> Thanks,
>
> jon
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html