Linux-Rockchip Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] media: rkisp1: Reduce min_queued_buffers to 0
@ 2024-10-28 14:35 Jacopo Mondi
  2024-10-28 15:02 ` Hans Verkuil
  0 siblings, 1 reply; 13+ messages in thread
From: Jacopo Mondi @ 2024-10-28 14:35 UTC (permalink / raw)
  To: Dafna Hirschfeld, Laurent Pinchart,
	open list:ROCKCHIP ISP V1 DRIVER
  Cc: Jacopo Mondi, Mauro Carvalho Chehab, Heiko Stuebner,
	open list:ROCKCHIP ISP V1 DRIVER, Adam Pigg

There apparently is no reason to require 3 queued buffers to call
streamon() for the RkISP1 as the driver operates with a scratch buffer
where frames can be directed to if there's no available buffer provided
by userspace.

Reduce the number of required buffers to 0 to allow applications to
operate by queueing capture buffers on-demand.

Tested with libcamera, by operating with a single capture request. The
same request (and associated capture buffer) gets recycled once
completed. This of course causes a frame rate drop but doesn't hinder
operations.

Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
---
The first version of this patch set min_queued_buffers to 1, but setting it
to 0 doesn't compromise operations and it's even better as it allows application
to queue buffers to the capture devices on-demand. If a buffer is not provided
to the DMA engines, image data gets directed to the driver's internal scratch
buffer.
---
 drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
index 2bddb4fa8a5c..5fcf9731f41b 100644
--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
@@ -35,8 +35,6 @@
 #define RKISP1_SP_DEV_NAME	RKISP1_DRIVER_NAME "_selfpath"
 #define RKISP1_MP_DEV_NAME	RKISP1_DRIVER_NAME "_mainpath"

-#define RKISP1_MIN_BUFFERS_NEEDED 3
-
 enum rkisp1_plane {
 	RKISP1_PLANE_Y	= 0,
 	RKISP1_PLANE_CB	= 1,
@@ -1563,7 +1561,7 @@ static int rkisp1_register_capture(struct rkisp1_capture *cap)
 	q->ops = &rkisp1_vb2_ops;
 	q->mem_ops = &vb2_dma_contig_memops;
 	q->buf_struct_size = sizeof(struct rkisp1_buffer);
-	q->min_queued_buffers = RKISP1_MIN_BUFFERS_NEEDED;
+	q->min_queued_buffers = 0;
 	q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
 	q->lock = &node->vlock;
 	q->dev = cap->rkisp1->dev;
--
2.47.0


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2024-10-29 10:45 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-28 14:35 [PATCH v2] media: rkisp1: Reduce min_queued_buffers to 0 Jacopo Mondi
2024-10-28 15:02 ` Hans Verkuil
2024-10-28 15:19   ` Laurent Pinchart
2024-10-28 15:30   ` Jacopo Mondi
2024-10-28 15:48     ` Hans Verkuil
2024-10-28 16:21       ` Laurent Pinchart
2024-10-28 17:08         ` Jacopo Mondi
2024-10-28 18:39           ` Laurent Pinchart
2024-10-29  7:01             ` Jacopo Mondi
2024-10-29  8:26               ` Hans Verkuil
2024-10-29  8:56                 ` Laurent Pinchart
2024-10-29  9:54                   ` Hans Verkuil
2024-10-29 10:35                     ` Laurent Pinchart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox