Thread (39 messages) 39 messages, 3 authors, 2025-01-22

Re: [PATCH v7 4/5] media: platform: mediatek: isp: add mediatek ISP3.0 camsv

From: Julien Stephan <jstephan@baylibre.com>
Date: 2024-11-22 09:45:05
Also in: linux-devicetree, linux-media, linux-mediatek, lkml

Le ven. 22 nov. 2024 à 10:19, CK Hu (胡俊光) [off-list ref] a écrit :
Hi, Julien:

On Thu, 2024-11-21 at 09:53 +0100, Julien Stephan wrote:
quoted
External email : Please do not click links or open attachments until you have verified the sender or the content.


From: Phi-bang Nguyen <redacted>

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 <redacted>
Signed-off-by: Florian Sylvestre <redacted>
[Paul Elder fix irq locking]
Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Co-developed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Co-developed-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
[snip]
quoted
+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
quoted
+       spin_unlock_irqrestore(&cam->buf_list_lock, flags);
+}
+
quoted
************* 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!
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help