From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Inbaraj E <inbaraj.e@samsung.com>
Cc: mturquette@baylibre.com, sboyd@kernel.org, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org, krzk@kernel.org,
s.nawrocki@samsung.com, s.hauer@pengutronix.de,
shawnguo@kernel.org, cw00.choi@samsung.com, rmfrfs@gmail.com,
martink@posteo.de, mchehab@kernel.org, linux-fsd@tesla.com,
will@kernel.org, catalin.marinas@arm.com,
pankaj.dubey@samsung.com, shradha.t@samsung.com,
ravi.patel@samsung.com, linux-clk@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
alim.akhtar@samsung.com, linux-samsung-soc@vger.kernel.org,
kernel@puri.sm, kernel@pengutronix.de, festevam@gmail.com,
linux-media@vger.kernel.org, imx@lists.linux.dev,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 07/12] media: imx-mipi-csis: Add support to configure specific vc
Date: Mon, 18 Aug 2025 12:33:49 +0300 [thread overview]
Message-ID: <20250818093349.GC5862@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20250814140943.22531-8-inbaraj.e@samsung.com>
Hi Inbaraj,
On Thu, Aug 14, 2025 at 07:39:38PM +0530, Inbaraj E wrote:
> MIPI_CSIS_V3_3 and MIPI_CSIS_V3_6_3 support streaming only on VC0.
That doesn't appear to be true, at least for MIPI_CSIS_V3_6_3. I have a
patch series that adds VC support for v3.6.3 in the i.MX8MP, and it has
been susccessfully tested.
> The
> MIPI_CSIS_V4_3 present in the FSD SoC supports streaming on any one VC
> out of four VCs. To extend support for the FSD SoC, add the ability to
> configure a specific VC. The FSD CSI Rx can configure any one VC and
> start streaming.
>
> Signed-off-by: Inbaraj E <inbaraj.e@samsung.com>
> ---
> drivers/media/platform/nxp/imx-mipi-csis.c | 17 +++++++++++------
> 1 file changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/media/platform/nxp/imx-mipi-csis.c b/drivers/media/platform/nxp/imx-mipi-csis.c
> index a3e2c8ae332f..4f6c417fdf58 100644
> --- a/drivers/media/platform/nxp/imx-mipi-csis.c
> +++ b/drivers/media/platform/nxp/imx-mipi-csis.c
> @@ -54,7 +54,7 @@
>
> /* CSIS common control */
> #define MIPI_CSIS_CMN_CTRL 0x04
> -#define MIPI_CSIS_CMN_CTRL_UPDATE_SHADOW BIT(16)
> +#define MIPI_CSIS_CMN_CTRL_UPDATE_SHADOW(n) BIT(((n) + 16))
> #define MIPI_CSIS_CMN_CTRL_INTER_MODE BIT(10)
> #define MIPI_CSIS_CMN_CTRL_UPDATE_SHADOW_CTRL BIT(2)
> #define MIPI_CSIS_CMN_CTRL_RESET BIT(1)
> @@ -319,6 +319,7 @@ struct mipi_csis_device {
> u32 hs_settle;
> u32 clk_settle;
> } debug;
> + unsigned int vc;
> };
>
> /* -----------------------------------------------------------------------------
> @@ -544,9 +545,10 @@ static void __mipi_csis_set_format(struct mipi_csis_device *csis,
> const struct csis_pix_format *csis_fmt)
> {
> u32 val;
> + unsigned int vc = csis->vc;
>
> /* Color format */
> - val = mipi_csis_read(csis, MIPI_CSIS_ISP_CONFIG_CH(0));
> + val = mipi_csis_read(csis, MIPI_CSIS_ISP_CONFIG_CH(vc));
> val &= ~(MIPI_CSIS_ISPCFG_ALIGN_32BIT | MIPI_CSIS_ISPCFG_FMT_MASK
> | MIPI_CSIS_ISPCFG_PIXEL_MASK);
>
> @@ -567,11 +569,11 @@ static void __mipi_csis_set_format(struct mipi_csis_device *csis,
> val |= MIPI_CSIS_ISPCFG_PIXEL_MODE_DUAL;
>
> val |= MIPI_CSIS_ISPCFG_FMT(csis_fmt->data_type);
> - mipi_csis_write(csis, MIPI_CSIS_ISP_CONFIG_CH(0), val);
> + mipi_csis_write(csis, MIPI_CSIS_ISP_CONFIG_CH(vc), val);
>
> /* Pixel resolution */
> val = format->width | (format->height << 16);
> - mipi_csis_write(csis, MIPI_CSIS_ISP_RESOL_CH(0), val);
> + mipi_csis_write(csis, MIPI_CSIS_ISP_RESOL_CH(vc), val);
> }
>
> static int mipi_csis_calculate_params(struct mipi_csis_device *csis,
> @@ -631,6 +633,7 @@ static void mipi_csis_set_params(struct mipi_csis_device *csis,
> {
> int lanes = csis->bus.num_data_lanes;
> u32 val;
> + unsigned int vc = csis->vc;
>
> val = mipi_csis_read(csis, MIPI_CSIS_CMN_CTRL);
> val &= ~MIPI_CSIS_CMN_CTRL_LANE_NR_MASK;
> @@ -648,7 +651,7 @@ static void mipi_csis_set_params(struct mipi_csis_device *csis,
> val = (0 << MIPI_CSIS_ISP_SYNC_HSYNC_LINTV_OFFSET)
> | (0 << MIPI_CSIS_ISP_SYNC_VSYNC_SINTV_OFFSET)
> | (0 << MIPI_CSIS_ISP_SYNC_VSYNC_EINTV_OFFSET);
> - mipi_csis_write(csis, MIPI_CSIS_ISP_SYNC_CH(0), val);
> + mipi_csis_write(csis, MIPI_CSIS_ISP_SYNC_CH(vc), val);
>
> val = mipi_csis_read(csis, MIPI_CSIS_CLK_CTRL);
> val |= MIPI_CSIS_CLK_CTRL_WCLK_SRC;
> @@ -669,7 +672,7 @@ static void mipi_csis_set_params(struct mipi_csis_device *csis,
> /* Update the shadow register. */
> val = mipi_csis_read(csis, MIPI_CSIS_CMN_CTRL);
> mipi_csis_write(csis, MIPI_CSIS_CMN_CTRL,
> - val | MIPI_CSIS_CMN_CTRL_UPDATE_SHADOW |
> + val | MIPI_CSIS_CMN_CTRL_UPDATE_SHADOW(vc) |
> MIPI_CSIS_CMN_CTRL_UPDATE_SHADOW_CTRL);
> }
>
> @@ -945,6 +948,8 @@ static int mipi_csis_s_stream(struct v4l2_subdev *sd, int enable)
> struct v4l2_subdev_state *state;
> int ret;
>
> + csis->vc = 0;
> +
Dynamic VC selection belongs to this patch, not patch 09/12. 09/12 does
too many different things, it has to be split into one patch per
feature.
> if (!enable) {
> v4l2_subdev_disable_streams(csis->source.sd,
> csis->source.pad->index, BIT(0));
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2025-08-18 9:34 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20250814140956epcas5p480aa24441933523484da5c241a201d3c@epcas5p4.samsung.com>
2025-08-14 14:09 ` [PATCH v2 00/12] Add FSD CSI support Inbaraj E
2025-08-14 14:09 ` [PATCH v2 01/12] dt-bindings: clock: Add CAM_CSI clock macro for FSD Inbaraj E
2025-08-18 8:47 ` (subset) " Krzysztof Kozlowski
2025-08-14 14:09 ` [PATCH v2 02/12] clk: samsung: fsd: Add clk id for PCLK and PLL in CAM_CSI block Inbaraj E
2025-08-18 8:47 ` (subset) " Krzysztof Kozlowski
2025-08-14 14:09 ` [PATCH v2 03/12] dt-bindings: media: nxp: Add support for FSD SoC Inbaraj E
2025-08-18 8:24 ` Krzysztof Kozlowski
2025-08-22 13:39 ` Inbaraj E
2025-08-22 13:50 ` Krzysztof Kozlowski
2025-08-22 14:00 ` Inbaraj E
2025-08-23 15:37 ` Krzysztof Kozlowski
2025-08-25 12:50 ` Inbaraj E
2025-08-14 14:09 ` [PATCH v2 04/12] arm64: dts: fsd: Add CSI nodes Inbaraj E
2025-08-18 8:26 ` Krzysztof Kozlowski
2025-08-22 13:57 ` Inbaraj E
2025-08-23 15:39 ` Krzysztof Kozlowski
2025-08-25 13:05 ` Inbaraj E
2025-08-26 8:36 ` Krzysztof Kozlowski
2025-08-26 10:08 ` Inbaraj E
2025-08-26 11:43 ` Laurent Pinchart
2025-08-14 14:09 ` [PATCH v2 05/12] media: imx-mipi-csis: Move clk to mipi_csis_info structure Inbaraj E
2025-08-18 9:21 ` Laurent Pinchart
2025-08-23 13:11 ` Inbaraj E
2025-08-14 14:09 ` [PATCH v2 06/12] media: imx-mipi-csis: Move irq flag and handler " Inbaraj E
2025-08-14 14:09 ` [PATCH v2 07/12] media: imx-mipi-csis: Add support to configure specific vc Inbaraj E
2025-08-18 9:33 ` Laurent Pinchart [this message]
2025-08-23 13:29 ` Inbaraj E
2025-08-14 14:09 ` [PATCH v2 08/12] media: imx-mipi-csis: Add support to dump all vc regs Inbaraj E
2025-08-18 9:30 ` Laurent Pinchart
2025-08-23 13:15 ` Inbaraj E
2025-08-14 14:09 ` [PATCH v2 09/12] media: imx-mipi-csis: Add support for FSD CSI Rx Inbaraj E
2025-08-14 14:09 ` [PATCH v2 10/12] dt-bindings: media: fsd: Document CSIS DMA controller Inbaraj E
2025-08-18 8:29 ` Krzysztof Kozlowski
2025-08-23 1:54 ` Inbaraj E
2025-08-18 8:45 ` Krzysztof Kozlowski
2025-08-23 2:39 ` Inbaraj E
2025-08-23 15:32 ` Krzysztof Kozlowski
2025-08-25 12:01 ` Inbaraj E
2025-08-25 12:25 ` Krzysztof Kozlowski
2025-08-24 21:15 ` Laurent Pinchart
2025-08-25 7:34 ` Krzysztof Kozlowski
2025-08-14 14:09 ` [PATCH v2 11/12] arm64: defconfig: Enable FSD CSIS DMA driver Inbaraj E
2025-08-18 8:32 ` Krzysztof Kozlowski
2025-08-23 2:05 ` Inbaraj E
2025-08-23 15:31 ` Krzysztof Kozlowski
2025-08-25 11:54 ` Inbaraj E
2025-08-14 14:09 ` [PATCH v2 12/12] media: fsd-csis: Add support for FSD CSIS DMA Inbaraj E
2025-08-18 8:49 ` Krzysztof Kozlowski
2025-08-23 11:49 ` Inbaraj E
2025-08-23 15:34 ` Krzysztof Kozlowski
2025-08-25 12:46 ` Inbaraj E
2025-08-23 11:59 ` Inbaraj E
2025-08-18 8:22 ` [PATCH v2 00/12] Add FSD CSI support Krzysztof Kozlowski
2025-08-22 13:16 ` Inbaraj E
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=20250818093349.GC5862@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=alim.akhtar@samsung.com \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=cw00.choi@samsung.com \
--cc=devicetree@vger.kernel.org \
--cc=festevam@gmail.com \
--cc=imx@lists.linux.dev \
--cc=inbaraj.e@samsung.com \
--cc=kernel@pengutronix.de \
--cc=kernel@puri.sm \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-fsd@tesla.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=martink@posteo.de \
--cc=mchehab@kernel.org \
--cc=mturquette@baylibre.com \
--cc=pankaj.dubey@samsung.com \
--cc=ravi.patel@samsung.com \
--cc=rmfrfs@gmail.com \
--cc=robh@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=s.nawrocki@samsung.com \
--cc=sboyd@kernel.org \
--cc=shawnguo@kernel.org \
--cc=shradha.t@samsung.com \
--cc=will@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.