diff options
author | Hans Verkuil <hverkuil-cisco@xs4all.nl> | 2019-03-06 16:13:21 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | 2019-03-25 13:24:47 -0400 |
commit | 90675d391e9196e95a9e9e31eaa9693d4a995927 (patch) | |
tree | d2575cb8064666b5453bea364890eb9fd9170fef /drivers/media/common/videobuf2/videobuf2-v4l2.c | |
parent | b60a5b8dcf49af9f2c60ae82e0383ee8e62a9a52 (diff) | |
download | linux-stable-90675d391e9196e95a9e9e31eaa9693d4a995927.tar.gz linux-stable-90675d391e9196e95a9e9e31eaa9693d4a995927.tar.bz2 linux-stable-90675d391e9196e95a9e9e31eaa9693d4a995927.zip |
media: vb2: add requires_requests bit for stateless codecs
Stateless codecs require the use of the Request API as opposed of it
being optional.
So add a bit to indicate this and let vb2 check for this.
If an attempt is made to queue a buffer without an associated request,
then the EBADR error is returned to userspace.
Doing this check in the vb2 core simplifies drivers, since they
don't have to check for this, they can just set this flag.
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Diffstat (limited to 'drivers/media/common/videobuf2/videobuf2-v4l2.c')
-rw-r--r-- | drivers/media/common/videobuf2/videobuf2-v4l2.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c index 74d3abf33b50..84de18b30a95 100644 --- a/drivers/media/common/videobuf2/videobuf2-v4l2.c +++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c @@ -381,6 +381,10 @@ static int vb2_queue_or_prepare_buf(struct vb2_queue *q, struct media_device *md return 0; if (!(b->flags & V4L2_BUF_FLAG_REQUEST_FD)) { + if (q->requires_requests) { + dprintk(1, "%s: queue requires requests\n", opname); + return -EBADR; + } if (q->uses_requests) { dprintk(1, "%s: queue uses requests\n", opname); return -EBUSY; |