From: "CK Hu (胡俊光)" <ck.hu@mediatek.com>
To: Julien Stephan <jstephan@baylibre.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>,
"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>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
"laurent.pinchart@ideasonboard.com"
<laurent.pinchart@ideasonboard.com>,
"krzk+dt@kernel.org" <krzk+dt@kernel.org>,
"fsylvestre@baylibre.com" <fsylvestre@baylibre.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.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 10:01:17 +0000 [thread overview]
Message-ID: <b234ccf388cfc933d7941cbe94ce6ae590ad17e1.camel@mediatek.com> (raw)
In-Reply-To: <CAEHHSvZLx3MqzK_qheiXm1UsB=i=8f2QbGTpXPkdU2aqUJtvww@mail.gmail.com>
On Fri, 2024-11-22 at 10:50 +0100, Julien Stephan wrote:
> External email : Please do not click links or open attachments until you have verified the sender or the content.
>
>
> Le ven. 22 nov. 2024 à 10:49, CK Hu (胡俊光) <ck.hu@mediatek.com> a écrit :
> >
> > On Fri, 2024-11-22 at 10:25 +0100, Julien Stephan wrote:
> > > External email : Please do not click links or open attachments until you have verified the sender or the content.
> > >
> > >
> > > Le ven. 22 nov. 2024 à 09:41, CK Hu (胡俊光) <ck.hu@mediatek.com> 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@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.
> > > >
> > >
> > > You are right except that dma is not stopped but frames are
> > > automatically dropped by hardware until a new buffer is enqueued and
> > > software uses CAMSV_IMGO_FBC_RCNT_INC to increase the software buffer
> > > index.
> > >
> > > What about adding the following comment:
> > >
> > > /*
> > > * If there is no user buffer available, hardware will drop automatically
> > > * frames until buf_queue is called
> > > */
> >
> > You say DMA is not stopped. Do you mean hardware still write data into latest buffer which would be dequeued to user space?
> > I think hardware should not write data into the buffer which has been take away by user space.
> > I think software should do something to stop DMA. Maybe use mtk_camsv30_cmos_vf_hw_disable() to stop DMA.
> >
>
> No, I said frame is dropped.. It does not write any data.
OK, for me, DMA mean memory access. Not writing any data is equal to stop DMA for me.
The comment is OK for me now. But it may change after we discuss fbc_inc.
Regards,
CK
>
> > Regards,
> > CK
> >
> > >
> > > Let me know if that works for you
> > >
> > > Cheers
> > > Julien
> > >
> > > > Regards,
> > > > CK
> > > >
> > > > > + }
> > > > > +
> > > > > + spin_unlock(&cam_dev->buf_list_lock);
> > > > > +
> > > > > + return IRQ_HANDLED;
> > > > > +}
> > > > > +
> > > >
> > > > ************* 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!
> >
> > ************* 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!
>
>
next prev parent reply other threads:[~2024-11-22 10:18 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 (胡俊光)
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 (胡俊光) [this message]
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=b234ccf388cfc933d7941cbe94ce6ae590ad17e1.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