media: media-request: EPERM -> EACCES/EBUSY
If requests are not supported by the driver, then return EACCES, not EPERM. If you attempt to mix queueing buffers directly and using requests, then EBUSY is returned instead of EPERM: once a specific queueing mode has been chosen the queue is 'busy' if you attempt the other mode (i.e. direct queueing vs via a request). Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Reviewed-by: Tomasz Figa <tfiga@chromium.org> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:

committed by
Mauro Carvalho Chehab

parent
ffda0b4c24
commit
15cd442e79
@@ -1495,7 +1495,7 @@ int vb2_core_qbuf(struct vb2_queue *q, unsigned int index, void *pb,
|
||||
(!req && vb->state != VB2_BUF_STATE_IN_REQUEST &&
|
||||
q->uses_requests)) {
|
||||
dprintk(1, "queue in wrong mode (qbuf vs requests)\n");
|
||||
return -EPERM;
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
if (req) {
|
||||
|
@@ -381,12 +381,15 @@ static int vb2_queue_or_prepare_buf(struct vb2_queue *q, struct media_device *md
|
||||
if (!(b->flags & V4L2_BUF_FLAG_REQUEST_FD)) {
|
||||
if (q->uses_requests) {
|
||||
dprintk(1, "%s: queue uses requests\n", opname);
|
||||
return -EPERM;
|
||||
return -EBUSY;
|
||||
}
|
||||
return 0;
|
||||
} else if (q->uses_qbuf || !q->supports_requests) {
|
||||
} else if (!q->supports_requests) {
|
||||
dprintk(1, "%s: queue does not support requests\n", opname);
|
||||
return -EACCES;
|
||||
} else if (q->uses_qbuf) {
|
||||
dprintk(1, "%s: queue does not use requests\n", opname);
|
||||
return -EPERM;
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user