Linux-mediatek Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "CK Hu (胡俊光)" <ck.hu@mediatek.com>
To: "mchehab@kernel.org" <mchehab@kernel.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"robh@kernel.org" <robh@kernel.org>,
	"Andy Hsieh (謝智皓)" <Andy.Hsieh@mediatek.com>,
	"Julien Stephan" <jstephan@baylibre.com>,
	"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
	"laurent.pinchart@ideasonboard.com"
	<laurent.pinchart@ideasonboard.com>,
	"krzk+dt@kernel.org" <krzk+dt@kernel.org>,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mediatek@lists.infradead.org"
	<linux-mediatek@lists.infradead.org>,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"paul.elder@ideasonboard.com" <paul.elder@ideasonboard.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"fsylvestre@baylibre.com" <fsylvestre@baylibre.com>,
	"pnguyen@baylibre.com" <pnguyen@baylibre.com>
Subject: Re: [PATCH v7 4/5] media: platform: mediatek: isp: add mediatek ISP3.0 camsv
Date: Fri, 22 Nov 2024 08:41:32 +0000	[thread overview]
Message-ID: <767085562b5efb43f248e8528bb154a6c30d3999.camel@mediatek.com> (raw)
In-Reply-To: <20241121-add-mtk-isp-3-0-support-v7-4-b04dc9610619@baylibre.com>

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@baylibre.com>
> 
> 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@baylibre.com>
> Signed-off-by: Florian Sylvestre <fsylvestre@baylibre.com>
> [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]

> +static irqreturn_t isp_irq_camsv30(int irq, void *data)
> +{
> +       struct mtk_cam_dev *cam_dev = (struct mtk_cam_dev *)data;
> +       struct mtk_cam_dev_buffer *buf;
> +       unsigned int irq_status;
> +
> +       spin_lock(&cam_dev->buf_list_lock);
> +
> +       irq_status = mtk_camsv30_read(cam_dev, CAMSV_INT_STATUS);
> +
> +       if (irq_status & INT_ST_MASK_CAMSV_ERR)
> +               dev_err(cam_dev->dev, "irq error 0x%lx\n",
> +                       irq_status & INT_ST_MASK_CAMSV_ERR);
> +
> +       /* De-queue frame */
> +       if (irq_status & CAMSV_IRQ_PASS1_DON) {
> +               cam_dev->sequence++;
> +
> +               buf = list_first_entry_or_null(&cam_dev->buf_list,
> +                                              struct mtk_cam_dev_buffer,
> +                                              list);
> +               if (buf) {
> +                       buf->v4l2_buf.sequence = cam_dev->sequence;
> +                       buf->v4l2_buf.vb2_buf.timestamp =
> +                               ktime_get_ns();
> +                       vb2_buffer_done(&buf->v4l2_buf.vb2_buf,
> +                                       VB2_BUF_STATE_DONE);
> +                       list_del(&buf->list);
> +               }
> +
> +               buf = list_first_entry_or_null(&cam_dev->buf_list,
> +                                              struct mtk_cam_dev_buffer,
> +                                              list);
> +               if (buf)
> +                       mtk_camsv30_update_buffers_add(cam_dev, buf);

If buf == NULL, so hardware would automatically stop DMA?
I don't know how this hardware work.
Below is my imagine about this hardware.

1. Software use CAMSV_IMGO_FBC_RCNT_INC to increase software buffer index.
2. Hardware has a hardware buffer index. After hardware finish one frame, hardware buffer index increase.
3. After software buffer index increase, hardware start DMA.
4. When hardware buffer index is equal to software buffer index, hardware automatically stop DMA.

Does the hardware work as my imagine?
If hardware could automatically stop DMA, add comment to describe.
If hardware could not automatically stop DMA, software should do something to stop DMA when buf == NULL.

Regards,
CK

> +       }
> +
> +       spin_unlock(&cam_dev->buf_list_lock);
> +
> +       return IRQ_HANDLED;
> +}
> +

  parent reply	other threads:[~2024-11-22  8:42 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-21  8:53 [PATCH v7 0/5] Add Mediatek ISP3.0 Julien Stephan
2024-11-21  8:53 ` [PATCH v7 1/5] dt-bindings: media: add mediatek ISP3.0 sensor interface Julien Stephan
2024-11-21  8:53 ` [PATCH v7 2/5] dt-bindings: media: add mediatek ISP3.0 camsv Julien Stephan
2024-11-25 11:24   ` Laurent Pinchart
2024-11-21  8:53 ` [PATCH v7 3/5] media: platform: mediatek: isp: add mediatek ISP3.0 sensor interface Julien Stephan
2024-11-25 17:33   ` Laurent Pinchart
2024-11-25 19:45     ` Laurent Pinchart
2025-01-22 14:04     ` Julien Stephan
2024-11-21  8:53 ` [PATCH v7 4/5] media: platform: mediatek: isp: add mediatek ISP3.0 camsv Julien Stephan
2024-11-22  7:54   ` CK Hu (胡俊光)
2024-11-22  9:16     ` Julien Stephan
2024-11-22  9:28       ` CK Hu (胡俊光)
2024-11-24  6:11         ` Laurent Pinchart
2024-11-25  8:26         ` CK Hu (胡俊光)
2024-11-22  8:41   ` CK Hu (胡俊光) [this message]
2024-11-22  9:25     ` Julien Stephan
2024-11-22  9:49       ` CK Hu (胡俊光)
2024-11-22  9:50         ` Julien Stephan
2024-11-22 10:01           ` CK Hu (胡俊光)
2024-11-22 12:05             ` Julien Stephan
2024-11-22  9:18   ` CK Hu (胡俊光)
2024-11-22  9:44     ` Julien Stephan
2024-11-25  5:54       ` CK Hu (胡俊光)
2024-11-25  6:05   ` CK Hu (胡俊光)
2024-11-25  6:34   ` CK Hu (胡俊光)
2024-11-25  6:59   ` CK Hu (胡俊光)
2024-11-25  9:39     ` Laurent Pinchart
2024-11-25  9:56       ` CK Hu (胡俊光)
2024-11-25 10:22         ` Laurent Pinchart
2024-11-26  1:08           ` CK Hu (胡俊光)
2024-11-25  8:14   ` CK Hu (胡俊光)
2024-11-25 14:40     ` Julien Stephan
2024-11-25 17:36       ` Laurent Pinchart
2024-11-25  9:30   ` CK Hu (胡俊光)
2024-11-25 20:33   ` Laurent Pinchart
2024-11-26  2:07   ` CK Hu (胡俊光)
2024-11-26  8:43     ` Laurent Pinchart
2024-11-26  3:40   ` CK Hu (胡俊光)
2024-11-21  8:53 ` [PATCH v7 5/5] arm64: dts: mediatek: mt8365: Add support for camera Julien Stephan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=767085562b5efb43f248e8528bb154a6c30d3999.camel@mediatek.com \
    --to=ck.hu@mediatek.com \
    --cc=Andy.Hsieh@mediatek.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=fsylvestre@baylibre.com \
    --cc=jstephan@baylibre.com \
    --cc=krzk+dt@kernel.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=paul.elder@ideasonboard.com \
    --cc=pnguyen@baylibre.com \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox