Le ven. 22 nov. 2024 à 10:19, CK Hu (胡俊光) <ck.hu@xxxxxxxxxxxx> a écrit : > > Hi, Julien: > > On Thu, 2024-11-21 at 09:53 +0100, 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 void mtk_cam_vb2_buf_queue(struct vb2_buffer *vb) > > +{ > > + struct mtk_cam_dev *cam = vb2_get_drv_priv(vb->vb2_queue); > > + struct mtk_cam_dev_buffer *buf = to_mtk_cam_dev_buffer(vb); > > + unsigned long flags; > > + > > + /* Add the buffer into the tracking list */ > > + spin_lock_irqsave(&cam->buf_list_lock, flags); > > + if (list_empty(&cam->buf_list)) > > + (*cam->hw_functions->mtk_cam_update_buffers_add)(cam, buf); > > + > > + list_add_tail(&buf->list, &cam->buf_list); > > + (*cam->hw_functions->mtk_cam_fbc_inc)(cam); > > I think fbc_inc should together with update_buffers_add. > After update_buffers_add then fbc_inc. > So squash fbc_inc into update_buffers_add and drop fbc_inc function. > No, this is not true. mtk_cam_update_buffers_add is used to indicate which buffer should be used for dma write. This is the first entry in the buf list. mtk_cam_fbc_inc is used to increase the number of available user space buffers. If the buffer list is not empty and user space calls buf_queue again, we need to call mtk_cam_fbc_inc to increase the number of available user buffers, but we don't want to change the buffer for DMA write. mtk_camsv30_update_buffers_add is called on irq to update the address to the next buffer (if available). Maybe the name mtk_camsv30_update_buffers_add is confusing then? What do you think about: - mtk_camsv30_update_buffers_add -> mtk_camsv30_update_buffers_address - mtk_cam_fbc_inc -> mtk_camsv30_buffer_add Cheers Julien > Regards, > CK > > > + spin_unlock_irqrestore(&cam->buf_list_lock, flags); > > +} > > + > > > > > ************* MEDIATEK Confidentiality Notice ******************** > The information contained in this e-mail message (including any > attachments) may be confidential, proprietary, privileged, or otherwise > exempt from disclosure under applicable laws. It is intended to be > conveyed only to the designated recipient(s). Any use, dissemination, > distribution, printing, retaining or copying of this e-mail (including its > attachments) by unintended recipient(s) is strictly prohibited and may > be unlawful. If you are not an intended recipient of this e-mail, or believe > that you have received this e-mail in error, please notify the sender > immediately (by replying to this e-mail), delete any and all copies of > this e-mail (including any attachments) from your system, and do not > disclose the content of this e-mail to any other person. Thank you!