[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20260204170454.GD170964@killaraus>
Date: Wed, 4 Feb 2026 19:04:54 +0200
From: Laurent Pinchart <laurent.pinchart@...asonboard.com>
To: Isaac Scott <isaac.scott@...asonboard.com>
Cc: linux-media@...r.kernel.org, dafna@...tmail.com, mchehab@...nel.org,
heiko@...ech.de, linux-rockchip@...ts.infradead.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1 2/6] media: rkisp1-isp: Add in_bypass flag for YUV
bypass
Hi Isaac,
Thank you for the patch.
On Wed, Feb 04, 2026 at 11:25:02AM +0000, Isaac Scott wrote:
> The rkisp1 features a 'bypass' mode for RAW and YUV formats. This
> disables all ISP blocks, and makes the rkisp1 display input data from
> the mipi csi receiver at the output, unmodified.
>
> To determine whether we can activate bypass, we can detect whether both
> the source and sink formats are YUV. If they are, we can set a new
> in_bypass flag.
>
> For YUV bypass, we should configure the ISP input to interpret incoming
> H/VSYNC signals as data enable / disable. Add this.
>
> Signed-off-by: Isaac Scott <isaac.scott@...asonboard.com>
> ---
> drivers/media/platform/rockchip/rkisp1/rkisp1-common.h | 1 +
> drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c | 7 ++++++-
> 2 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h
> index 5e6a4d5f6fd1..d90233e31ad3 100644
> --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h
> +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h
> @@ -532,6 +532,7 @@ struct rkisp1_device {
> struct rkisp1_debug debug;
> const struct rkisp1_info *info;
> int irqs[RKISP1_NUM_IRQS];
> + bool in_bypass;
> bool irqs_enabled;
> };
>
> diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c
> index 2311672cedb1..f636d738b7e8 100644
> --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c
> +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c
> @@ -212,6 +212,8 @@ static int rkisp1_config_isp(struct rkisp1_isp *isp,
> const struct v4l2_mbus_framefmt *sink_frm;
> const struct v4l2_rect *sink_crop;
>
> + rkisp1->in_bypass = false;
> +
> sink_frm = v4l2_subdev_state_get_format(sd_state,
> RKISP1_ISP_PAD_SINK_VIDEO);
> sink_crop = v4l2_subdev_state_get_crop(sd_state,
> @@ -240,7 +242,10 @@ static int rkisp1_config_isp(struct rkisp1_isp *isp,
> }
> } else if (sink_fmt->pixel_enc == V4L2_PIXEL_ENC_YUV) {
> acq_mult = 2;
> - if (mbus_type == V4L2_MBUS_CSI2_DPHY) {
> + if (src_fmt->pixel_enc == V4L2_PIXEL_ENC_YUV) {
> + isp_ctrl = RKISP1_CIF_ISP_CTRL_ISP_MODE_DATA_MODE;
> + rkisp1->in_bypass = true;
Based on the review of patches 3/6 and 5/6 I think this flag will
become unused, so you can probably drop this patch too.
> + } else if (mbus_type == V4L2_MBUS_CSI2_DPHY) {
> isp_ctrl = RKISP1_CIF_ISP_CTRL_ISP_MODE_ITU601;
> } else {
> if (mbus_type == V4L2_MBUS_BT656)
--
Regards,
Laurent Pinchart
Powered by blists - more mailing lists