All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Adam Ford <aford173@gmail.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	linux-media <linux-media@vger.kernel.org>,
	imx@lists.linux.dev,
	arm-soc <linux-arm-kernel@lists.infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Peng Fan <peng.fan@nxp.com>, Frank Li <Frank.Li@nxp.com>
Subject: Re: i.MX8M Nano ISI Channel Question
Date: Fri, 25 Apr 2025 15:14:51 +0300	[thread overview]
Message-ID: <20250425121451.GP18085@pendragon.ideasonboard.com> (raw)
In-Reply-To: <CAHCN7xKy7w0Kwf8Oyjd6dFLzAhiGiqdaYOj=qfA4kSRthD5Law@mail.gmail.com>

Hi Adam,

(CC'ing Frank Li)

On Thu, Apr 24, 2025 at 08:59:18PM -0500, Adam Ford wrote:
> NXP-
> 
> I am trying use Libcamera to capture video on an i.MX8M Nano.
> (Hopefully, this makes Laurent smile)
> 
> I noticed that it has a maximum capture of 1080 lines when I query it
> with Libcamera, but the same camera on the Mini can capture at higher
> rates.  The multimedia overview states it can handle 1 unprocessed
> camera stream at 4kp30 without scaling.  The Nano's Ref manual later
> states that each processing channel has one line buffer, and each line
> buffer can store up to 2048 pixels.  It continues to describe when
> processing higher resolution images like 4k, the line buffer from
> other channels can be combined.
> 
> Section 13.4.3.5 of the Nano's Ref manual (Rev 2, dated 07/2022)
> explicitly goes into detail on how to capture up to 4k image
> resolution by combining channel 'n' with channel 'n+1' which implies
> there are at least two channels.
> 
> Section 13.4.5.1 states the registers are dedicated for each channel
> and spaced 64KB apart, but then the following table only shows the
> base address for one, and Table 2-6 shows the ISI size is 64KB.
> 
> The driver is currently written to only support 1 channel.  When
> reading through the driver, it appears to require one IRQ per channel,
> so I looked through the Nano's IRQ table (7-1), and found there are
> three:
> ISI Camera Channel 0 Interrupt - 16
> ISI Camera Channel 1 Interrupt - 42
> ISI Camera Channel 2 Interrupt - 43
> 
> I attempted to enable a second channel by modifying the .num_channels
> = 2 value in the driver, and I modified my device tree to assign a
> second IRQ (42), but when I query the pipeline with libcamera, it
> still doesn't show an available resolution ov 2592x1944 that is
> supported by the camera and work on the Mini without the ISI system.
> 
> Can someone tell me how many channels are actually available, and
> whether or not  4Kp30 video is really available on the Nano?

My understanding, based on the i.MX8MN reference manual, is that the ISI
has a single channel. The ISI features list (13.4.1.2) reports

• Supports up to 2K resolution at 30 or 60 fps (24bpp) on each channel.

If you look at the i.MX8MP reference manual, the same features list
reports

• Supports one source of 4K resolution at 30 fps (24bpp).
• Supports up to 2K resolution at 30 or 60 fps (24bpp) on each channel.

There's no mention of 4K in the i.MX8MN ISI features. I expect that the
documentation about 4K support by combining pixel buffers comes from the
generic ISI documentation, and is not applicable to the i.MX8MN.

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2025-04-25 12:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-25  1:59 i.MX8M Nano ISI Channel Question Adam Ford
2025-04-25 12:14 ` Laurent Pinchart [this message]
2025-04-25 12:36   ` Adam Ford
2025-04-25 15:11     ` Laurent Pinchart

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=20250425121451.GP18085@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=Frank.Li@nxp.com \
    --cc=aford173@gmail.com \
    --cc=festevam@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=peng.fan@nxp.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.