Hi, Julien: On Thu, 2024-07-04 at 15:36 +0200, Julien Stephan wrote: > > External email : Please do not click links or open attachments until you have verified the sender or the content. > From: Phi-bang Nguyen <pnguyen@xxxxxxxxxxxx> > > This driver provides a path to bypass the SoC ISP so that image data > coming from the SENINF can go directly into memory without any image > processing. This allows the use of an external ISP. > > Signed-off-by: Phi-bang Nguyen <pnguyen@xxxxxxxxxxxx> > Signed-off-by: Florian Sylvestre <fsylvestre@xxxxxxxxxxxx> > [Paul Elder fix irq locking] > Signed-off-by: Paul Elder <paul.elder@xxxxxxxxxxxxxxxx> > Co-developed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Co-developed-by: Julien Stephan <jstephan@xxxxxxxxxxxx> > Signed-off-by: Julien Stephan <jstephan@xxxxxxxxxxxx> > --- [snip] > +static int mtk_cam_vb2_queue_setup(struct vb2_queue *vq, > + unsigned int *num_buffers, > + unsigned int *num_planes, > + unsigned int sizes[], > + struct device *alloc_devs[]) > +{ > +struct mtk_cam_video_device *vdev = > +vb2_queue_to_mtk_cam_video_device(vq); > +unsigned int max_buffer_count = vdev->desc->max_buf_count; > +const struct v4l2_pix_format_mplane *fmt = &vdev->format; > +unsigned int size; > +unsigned int np_conf; > +unsigned int i; > + > +/* Check the limitation of buffer size */ > +if (max_buffer_count) max_buffer_count is always zero, so this checking is redundant. Regards, CK > +*num_buffers = clamp_val(*num_buffers, 1, max_buffer_count); > + > +size = fmt->plane_fmt[0].sizeimage; > +/* Add for q.create_bufs with fmt.g_sizeimage(p) / 2 test */ > + > +np_conf = 1; > + > +if (*num_planes == 0) { > +*num_planes = np_conf; > +for (i = 0; i < *num_planes; ++i) > +sizes[i] = size; > +} else if (*num_planes != np_conf || sizes[0] < size) { > +return -EINVAL; > +} > + > +return 0; > +} > +