Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Frank Li <Frank.li@nxp.com>
To: Adam Ford <aford173@gmail.com>
Cc: Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Dong Aisheng <aisheng.dong@nxp.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rui Miguel Silva <rmfrfs@gmail.com>,
	Martin Kepplinger <martink@posteo.de>,
	Purism Kernel Team <kernel@puri.sm>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org,
	Robert Chiras <robert.chiras@nxp.com>,
	"Guoniu.zhou" <guoniu.zhou@nxp.com>
Subject: Re: [PATCH v3 04/12] media: nxp: imx8-isi: Allow num_sources to be greater than num_sink
Date: Thu, 27 Mar 2025 16:34:32 -0400	[thread overview]
Message-ID: <Z+W2WAVEdlh2Ufhk@lizhi-Precision-Tower-5810> (raw)
In-Reply-To: <CAHCN7x+6_xxkx-Fft6WnfsVyqy_v3c732uKuEanrP64jv3Kj1g@mail.gmail.com>

On Thu, Mar 27, 2025 at 03:02:29PM -0500, Adam Ford wrote:
> On Mon, Feb 10, 2025 at 3:01 PM Frank Li <Frank.Li@nxp.com> wrote:
> >
> > Allow num_sources (drvdata: num_channels) to be greater than num_sink
> > (drvdata: num_ports + 1).
> >
> > ISI support stream multiplexing, such as differentiates multiple cameras
> > from a single 2-lane MIPI input, or duplicates input stream into multiple
> > outputs. So num_channels may be greater than num_ports at some platform.
>
> Can you tell me which platforms support this?

iMX8QM.

>  Is this through
> virtual channels, or do you physically connect lanes 1 and 2 to one
> camera and lanes 3 and 4 to another?

Not like that.  for example, camera 0 as input0

channels 0 can covert input0 to RGB format to memory 1
channels 1 can scale down input0 to to memory 2

I think it most likely use for channel0 to preview image, channel1 to save
input to file on storage.

Frank
>
> adam
> >
> > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > ---
> > change from v1 to v3
> > - none
> > ---
> >  drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c
> > index 93a55c97cd173..ba5b2d3617a23 100644
> > --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c
> > +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c
> > @@ -188,11 +188,11 @@ static int mxc_isi_crossbar_init_state(struct v4l2_subdev *sd,
> >          * Create a 1:1 mapping between pixel link inputs and outputs to
> >          * pipelines by default.
> >          */
> > -       routes = kcalloc(xbar->num_sources, sizeof(*routes), GFP_KERNEL);
> > +       routes = kcalloc(xbar->num_sinks - 1, sizeof(*routes), GFP_KERNEL);
> >         if (!routes)
> >                 return -ENOMEM;
> >
> > -       for (i = 0; i < xbar->num_sources; ++i) {
> > +       for (i = 0; i < xbar->num_sinks - 1; ++i) {
> >                 struct v4l2_subdev_route *route = &routes[i];
> >
> >                 route->sink_pad = i;
> > @@ -200,7 +200,7 @@ static int mxc_isi_crossbar_init_state(struct v4l2_subdev *sd,
> >                 route->flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE;
> >         }
> >
> > -       routing.num_routes = xbar->num_sources;
> > +       routing.num_routes = xbar->num_sinks - 1;
> >         routing.routes = routes;
> >
> >         ret = __mxc_isi_crossbar_set_routing(sd, state, &routing);
> > @@ -453,7 +453,7 @@ int mxc_isi_crossbar_init(struct mxc_isi_dev *isi)
> >          * the memory input.
> >          */
> >         xbar->num_sinks = isi->pdata->num_ports + 1;
> > -       xbar->num_sources = isi->pdata->num_ports;
> > +       xbar->num_sources = isi->pdata->num_channels;
> >         num_pads = xbar->num_sinks + xbar->num_sources;
> >
> >         xbar->pads = kcalloc(num_pads, sizeof(*xbar->pads), GFP_KERNEL);
> >
> > --
> > 2.34.1
> >
> >


  reply	other threads:[~2025-03-27 21:39 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-10 20:59 [PATCH v3 00/12] media: imx8: add camera support Frank Li
2025-02-10 20:59 ` [PATCH v3 01/12] dt-bindings: firmware: imx: add property reset-controller Frank Li
2025-02-19 21:05   ` Rob Herring (Arm)
2025-02-10 20:59 ` [PATCH v3 02/12] reset: imx: Add SCU reset driver for i.MX8QXP and i.MX8QM Frank Li
2025-03-13  8:39   ` Philipp Zabel
2025-02-10 20:59 ` [PATCH v3 03/12] media: dt-bindings: Add binding doc for i.MX8QXP and i.MX8QM ISI Frank Li
2025-02-19 21:11   ` Rob Herring (Arm)
2025-03-27 18:44   ` Laurent Pinchart
2025-03-27 20:21     ` Frank Li
2025-04-21 21:58       ` Laurent Pinchart
2025-02-10 20:59 ` [PATCH v3 04/12] media: nxp: imx8-isi: Allow num_sources to be greater than num_sink Frank Li
2025-03-27 19:55   ` Laurent Pinchart
2025-03-27 20:02   ` Adam Ford
2025-03-27 20:34     ` Frank Li [this message]
2025-02-10 20:59 ` [PATCH v3 05/12] media: imx8-isi: Add support for i.MX8QM and i.MX8QXP Frank Li
2025-03-27 20:11   ` Laurent Pinchart
2025-03-28 14:13     ` Frank Li
2025-02-10 20:59 ` [PATCH v3 06/12] media: dt-bindings: nxp,imx8mq-mipi-csi2: Add i.MX8QM(QXP) compatible strings Frank Li
2025-02-19 21:12   ` Rob Herring (Arm)
2025-03-27 19:39   ` Laurent Pinchart
2025-02-10 20:59 ` [PATCH v3 07/12] media: imx8mq-mipi-csi2: Add imx8mq_plat_data for different " Frank Li
2025-03-27 20:35   ` Laurent Pinchart
2025-03-28  8:35   ` Daniel Baluta
2025-03-28  8:56     ` Laurent Pinchart
2025-02-10 20:59 ` [PATCH v3 08/12] media: imx8mq-mipi-csi2: Add support for i.MX8QXP Frank Li
2025-03-27 20:37   ` Laurent Pinchart
2025-02-10 20:59 ` [PATCH v3 09/12] arm64: dts: imx8: add capture controller for i.MX8's img subsystem Frank Li
2025-03-27 19:44   ` Laurent Pinchart
2025-02-10 20:59 ` [PATCH v3 10/12] arm64: dts: imx8qm: add 24MHz clock-xtal24m Frank Li
2025-03-27 18:58   ` Laurent Pinchart
2025-03-27 19:02     ` Laurent Pinchart
2025-02-10 20:59 ` [PATCH v3 11/12] arm64: dts: imx8q: add linux,cma node for imx8qm-mek and imx8qxp-mek Frank Li
2025-03-27 19:00   ` Laurent Pinchart
2025-03-27 20:27     ` Frank Li
2025-02-10 20:59 ` [PATCH v3 12/12] arm64: dts: imx8q: add camera ov5640 support " Frank Li
2025-03-03 17:40 ` [PATCH v3 00/12] media: imx8: add camera support Frank Li
2025-03-26 19:45 ` Frank Li

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=Z+W2WAVEdlh2Ufhk@lizhi-Precision-Tower-5810 \
    --to=frank.li@nxp.com \
    --cc=aford173@gmail.com \
    --cc=aisheng.dong@nxp.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=festevam@gmail.com \
    --cc=guoniu.zhou@nxp.com \
    --cc=imx@lists.linux.dev \
    --cc=kernel@pengutronix.de \
    --cc=kernel@puri.sm \
    --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=martink@posteo.de \
    --cc=mchehab@kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=rmfrfs@gmail.com \
    --cc=robert.chiras@nxp.com \
    --cc=robh@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@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