mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 05:39:42 -04:00
media: raspberrypi: cfe: Fix min_reqbufs_allocation
The driver checks if "vq->max_num_buffers + *nbuffers < 3", but vq->max_num_buffers is (by default) 32, so the check is never true. Nor does the check make sense. The original code in the BSP kernel was "vq->num_buffers + *nbuffers < 3", but got mangled along the way to upstream. The intention was to make sure that at least 3 buffers are allocated. Fix this by removing the bad lines and setting q->min_reqbufs_allocation to three. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
This commit is contained in:
committed by
Hans Verkuil
parent
5211354f2c
commit
57b5a302b5
@@ -1024,9 +1024,6 @@ static int cfe_queue_setup(struct vb2_queue *vq, unsigned int *nbuffers,
|
||||
cfe_dbg(cfe, "%s: [%s] type:%u\n", __func__, node_desc[node->id].name,
|
||||
node->buffer_queue.type);
|
||||
|
||||
if (vq->max_num_buffers + *nbuffers < 3)
|
||||
*nbuffers = 3 - vq->max_num_buffers;
|
||||
|
||||
if (*nplanes) {
|
||||
if (sizes[0] < size) {
|
||||
cfe_err(cfe, "sizes[0] %i < size %u\n", sizes[0], size);
|
||||
@@ -1998,6 +1995,7 @@ static int cfe_register_node(struct cfe_device *cfe, int id)
|
||||
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
|
||||
q->lock = &node->lock;
|
||||
q->min_queued_buffers = 1;
|
||||
q->min_reqbufs_allocation = 3;
|
||||
q->dev = &cfe->pdev->dev;
|
||||
|
||||
ret = vb2_queue_init(q);
|
||||
|
||||
Reference in New Issue
Block a user