From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> To: linux-media@vger.kernel.org Cc: linux-rockchip@lists.infradead.org, Dafna Hirschfeld <dafna@fastmail.com>, Heiko Stuebner <heiko@sntech.de>, Helen Koike <helen.koike@collabora.com>, Paul Elder <paul.elder@ideasonboard.com> Subject: [PATCH v2 50/55] media: rkisp1: Add and set registers for crop for i.MX8MP Date: Fri, 1 Jul 2022 02:07:08 +0300 [thread overview] Message-ID: <20220630230713.10580-51-laurent.pinchart@ideasonboard.com> (raw) In-Reply-To: <20220630230713.10580-1-laurent.pinchart@ideasonboard.com> From: Paul Elder <paul.elder@ideasonboard.com> The ISP version in the i.MX8MP has a separate set of registers for crop that is currently not handled. Add a feature flag to determine which type of crop the ISP supports and set the crop registers based on that. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> --- .../platform/rockchip/rkisp1/rkisp1-common.h | 2 ++ .../platform/rockchip/rkisp1/rkisp1-debug.c | 14 +++++++++++++- .../platform/rockchip/rkisp1/rkisp1-dev.c | 7 +++++-- .../platform/rockchip/rkisp1/rkisp1-regs.h | 9 +++++++++ .../platform/rockchip/rkisp1/rkisp1-resizer.c | 19 +++++++++++++++++-- 5 files changed, 46 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h index 7e2aa0a2b86d..18a48ecda173 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h @@ -110,6 +110,8 @@ enum rkisp1_isp_pad { */ enum rkisp1_feature { RKISP1_FEATURE_MIPI_CSI2 = BIT(0), + RKISP1_FEATURE_DUAL_CROP = BIT(1), + RKISP1_FEATURE_RSZ_CROP = BIT(2), }; /* diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index 1a59c00fabdd..2d4e1d3f8adb 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c @@ -115,9 +115,21 @@ static int rkisp1_debug_dump_rsz_regs_show(struct seq_file *m, void *p) RKISP1_DEBUG_SHD_REG(RSZ_PHASE_VC), { /* Sentinel */ }, }; + static const struct rkisp1_debug_register crop_registers[] = { + RKISP1_DEBUG_SHD_REG(RSZ_CROP_X_DIR), + RKISP1_DEBUG_SHD_REG(RSZ_CROP_Y_DIR), + RKISP1_DEBUG_REG(RSZ_FRAME_RATE), + RKISP1_DEBUG_REG(RSZ_FORMAT_CONV_CTRL), + { /* Sentinel */ }, + }; struct rkisp1_resizer *rsz = m->private; - return rkisp1_debug_dump_regs(rsz->rkisp1, m, rsz->regs_base, registers); + rkisp1_debug_dump_regs(rsz->rkisp1, m, rsz->regs_base, registers); + if (rsz->rkisp1->info->features & RKISP1_FEATURE_RSZ_CROP) + rkisp1_debug_dump_regs(rsz->rkisp1, m, rsz->regs_base, + crop_registers); + + return 0; } DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_rsz_regs); diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c index b6643020b831..003bd7db54b9 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c @@ -475,7 +475,8 @@ static const struct rkisp1_info px30_isp_info = { .isrs = px30_isp_isrs, .isr_size = ARRAY_SIZE(px30_isp_isrs), .isp_ver = RKISP1_V12, - .features = RKISP1_FEATURE_MIPI_CSI2, + .features = RKISP1_FEATURE_MIPI_CSI2 + | RKISP1_FEATURE_DUAL_CROP, }; static const char * const rk3399_isp_clks[] = { @@ -494,7 +495,8 @@ static const struct rkisp1_info rk3399_isp_info = { .isrs = rk3399_isp_isrs, .isr_size = ARRAY_SIZE(rk3399_isp_isrs), .isp_ver = RKISP1_V10, - .features = RKISP1_FEATURE_MIPI_CSI2, + .features = RKISP1_FEATURE_MIPI_CSI2 + | RKISP1_FEATURE_DUAL_CROP, }; static const char * const imx8mp_isp_clks[] = { @@ -513,6 +515,7 @@ static const struct rkisp1_info imx8mp_isp_info = { .isrs = imx8mp_isp_isrs, .isr_size = ARRAY_SIZE(imx8mp_isp_isrs), .isp_ver = IMX8MP_V10, + .features = RKISP1_FEATURE_RSZ_CROP, }; static const struct of_device_id rkisp1_of_match[] = { diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-regs.h b/drivers/media/platform/rockchip/rkisp1/rkisp1-regs.h index dd3e6c38be67..1fc54ab22b6d 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-regs.h +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-regs.h @@ -168,6 +168,9 @@ #define RKISP1_CIF_RSZ_CTRL_CFG_UPD_AUTO BIT(9) #define RKISP1_CIF_RSZ_SCALER_FACTOR BIT(16) +/* RSZ_CROP_[XY]_DIR */ +#define RKISP1_CIF_RSZ_CROP_XY_DIR(start, end) ((end) << 16 | (start) << 0) + /* MI_IMSC - MI_MIS - MI_RIS - MI_ICR - MI_ISR */ #define RKISP1_CIF_MI_FRAME(stream) BIT((stream)->id) #define RKISP1_CIF_MI_MBLK_LINE BIT(2) @@ -926,6 +929,12 @@ #define RKISP1_CIF_RSZ_PHASE_HC_SHD 0x004C #define RKISP1_CIF_RSZ_PHASE_VY_SHD 0x0050 #define RKISP1_CIF_RSZ_PHASE_VC_SHD 0x0054 +#define RKISP1_CIF_RSZ_CROP_X_DIR 0x0058 +#define RKISP1_CIF_RSZ_CROP_Y_DIR 0x005C +#define RKISP1_CIF_RSZ_CROP_X_DIR_SHD 0x0060 +#define RKISP1_CIF_RSZ_CROP_Y_DIR_SHD 0x0064 +#define RKISP1_CIF_RSZ_FRAME_RATE 0x0068 +#define RKISP1_CIF_RSZ_FORMAT_CONV_CTRL 0x006C #define RKISP1_CIF_MI_BASE 0x00001400 #define RKISP1_CIF_MI_CTRL (RKISP1_CIF_MI_BASE + 0x00000000) diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c index f4caa8f684aa..08bf3aa8088f 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c @@ -244,6 +244,7 @@ static void rkisp1_rsz_config_regs(struct rkisp1_resizer *rsz, { u32 ratio, rsz_ctrl = 0; unsigned int i; + u32 val; /* No phase offset */ rkisp1_rsz_write(rsz, RKISP1_CIF_RSZ_PHASE_HY, 0); @@ -292,6 +293,18 @@ static void rkisp1_rsz_config_regs(struct rkisp1_resizer *rsz, rkisp1_rsz_write(rsz, RKISP1_CIF_RSZ_CTRL, rsz_ctrl); + if (rsz->rkisp1->info->features & RKISP1_FEATURE_RSZ_CROP) { + val = RKISP1_CIF_RSZ_CROP_XY_DIR(src_y->left, src_y->left + src_y->width - 1); + rkisp1_rsz_write(rsz, RKISP1_CIF_RSZ_CROP_X_DIR, val); + val = RKISP1_CIF_RSZ_CROP_XY_DIR(src_y->top, src_y->top + src_y->height - 1); + rkisp1_rsz_write(rsz, RKISP1_CIF_RSZ_CROP_Y_DIR, val); + + val = RKISP1_CIF_RSZ_FORMAT_CONV_CTRL_RSZ_INPUT_FORMAT_YCBCR_422 + | RKISP1_CIF_RSZ_FORMAT_CONV_CTRL_RSZ_OUTPUT_FORMAT_YCBCR_420 + | RKISP1_CIF_RSZ_FORMAT_CONV_CTRL_RSZ_PACK_FORMAT_SEMI_PLANAR; + rkisp1_rsz_write(rsz, RKISP1_CIF_RSZ_FORMAT_CONV_CTRL, val); + } + rkisp1_rsz_update_shadow(rsz, when); } @@ -656,7 +669,8 @@ static int rkisp1_rsz_s_stream(struct v4l2_subdev *sd, int enable) enum rkisp1_shadow_regs_when when = RKISP1_SHADOW_REGS_SYNC; if (!enable) { - rkisp1_dcrop_disable(rsz, RKISP1_SHADOW_REGS_ASYNC); + if (rkisp1->info->features & RKISP1_FEATURE_DUAL_CROP) + rkisp1_dcrop_disable(rsz, RKISP1_SHADOW_REGS_ASYNC); rkisp1_rsz_disable(rsz, RKISP1_SHADOW_REGS_ASYNC); return 0; } @@ -666,7 +680,8 @@ static int rkisp1_rsz_s_stream(struct v4l2_subdev *sd, int enable) mutex_lock(&rsz->ops_lock); rkisp1_rsz_config(rsz, when); - rkisp1_dcrop_config(rsz); + if (rkisp1->info->features & RKISP1_FEATURE_DUAL_CROP) + rkisp1_dcrop_config(rsz); mutex_unlock(&rsz->ops_lock); return 0; -- Regards, Laurent Pinchart _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> To: linux-media@vger.kernel.org Cc: linux-rockchip@lists.infradead.org, Dafna Hirschfeld <dafna@fastmail.com>, Heiko Stuebner <heiko@sntech.de>, Helen Koike <helen.koike@collabora.com>, Paul Elder <paul.elder@ideasonboard.com> Subject: [PATCH v2 50/55] media: rkisp1: Add and set registers for crop for i.MX8MP Date: Fri, 1 Jul 2022 02:07:08 +0300 [thread overview] Message-ID: <20220630230713.10580-51-laurent.pinchart@ideasonboard.com> (raw) In-Reply-To: <20220630230713.10580-1-laurent.pinchart@ideasonboard.com> From: Paul Elder <paul.elder@ideasonboard.com> The ISP version in the i.MX8MP has a separate set of registers for crop that is currently not handled. Add a feature flag to determine which type of crop the ISP supports and set the crop registers based on that. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> --- .../platform/rockchip/rkisp1/rkisp1-common.h | 2 ++ .../platform/rockchip/rkisp1/rkisp1-debug.c | 14 +++++++++++++- .../platform/rockchip/rkisp1/rkisp1-dev.c | 7 +++++-- .../platform/rockchip/rkisp1/rkisp1-regs.h | 9 +++++++++ .../platform/rockchip/rkisp1/rkisp1-resizer.c | 19 +++++++++++++++++-- 5 files changed, 46 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h index 7e2aa0a2b86d..18a48ecda173 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h @@ -110,6 +110,8 @@ enum rkisp1_isp_pad { */ enum rkisp1_feature { RKISP1_FEATURE_MIPI_CSI2 = BIT(0), + RKISP1_FEATURE_DUAL_CROP = BIT(1), + RKISP1_FEATURE_RSZ_CROP = BIT(2), }; /* diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index 1a59c00fabdd..2d4e1d3f8adb 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c @@ -115,9 +115,21 @@ static int rkisp1_debug_dump_rsz_regs_show(struct seq_file *m, void *p) RKISP1_DEBUG_SHD_REG(RSZ_PHASE_VC), { /* Sentinel */ }, }; + static const struct rkisp1_debug_register crop_registers[] = { + RKISP1_DEBUG_SHD_REG(RSZ_CROP_X_DIR), + RKISP1_DEBUG_SHD_REG(RSZ_CROP_Y_DIR), + RKISP1_DEBUG_REG(RSZ_FRAME_RATE), + RKISP1_DEBUG_REG(RSZ_FORMAT_CONV_CTRL), + { /* Sentinel */ }, + }; struct rkisp1_resizer *rsz = m->private; - return rkisp1_debug_dump_regs(rsz->rkisp1, m, rsz->regs_base, registers); + rkisp1_debug_dump_regs(rsz->rkisp1, m, rsz->regs_base, registers); + if (rsz->rkisp1->info->features & RKISP1_FEATURE_RSZ_CROP) + rkisp1_debug_dump_regs(rsz->rkisp1, m, rsz->regs_base, + crop_registers); + + return 0; } DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_rsz_regs); diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c index b6643020b831..003bd7db54b9 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c @@ -475,7 +475,8 @@ static const struct rkisp1_info px30_isp_info = { .isrs = px30_isp_isrs, .isr_size = ARRAY_SIZE(px30_isp_isrs), .isp_ver = RKISP1_V12, - .features = RKISP1_FEATURE_MIPI_CSI2, + .features = RKISP1_FEATURE_MIPI_CSI2 + | RKISP1_FEATURE_DUAL_CROP, }; static const char * const rk3399_isp_clks[] = { @@ -494,7 +495,8 @@ static const struct rkisp1_info rk3399_isp_info = { .isrs = rk3399_isp_isrs, .isr_size = ARRAY_SIZE(rk3399_isp_isrs), .isp_ver = RKISP1_V10, - .features = RKISP1_FEATURE_MIPI_CSI2, + .features = RKISP1_FEATURE_MIPI_CSI2 + | RKISP1_FEATURE_DUAL_CROP, }; static const char * const imx8mp_isp_clks[] = { @@ -513,6 +515,7 @@ static const struct rkisp1_info imx8mp_isp_info = { .isrs = imx8mp_isp_isrs, .isr_size = ARRAY_SIZE(imx8mp_isp_isrs), .isp_ver = IMX8MP_V10, + .features = RKISP1_FEATURE_RSZ_CROP, }; static const struct of_device_id rkisp1_of_match[] = { diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-regs.h b/drivers/media/platform/rockchip/rkisp1/rkisp1-regs.h index dd3e6c38be67..1fc54ab22b6d 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-regs.h +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-regs.h @@ -168,6 +168,9 @@ #define RKISP1_CIF_RSZ_CTRL_CFG_UPD_AUTO BIT(9) #define RKISP1_CIF_RSZ_SCALER_FACTOR BIT(16) +/* RSZ_CROP_[XY]_DIR */ +#define RKISP1_CIF_RSZ_CROP_XY_DIR(start, end) ((end) << 16 | (start) << 0) + /* MI_IMSC - MI_MIS - MI_RIS - MI_ICR - MI_ISR */ #define RKISP1_CIF_MI_FRAME(stream) BIT((stream)->id) #define RKISP1_CIF_MI_MBLK_LINE BIT(2) @@ -926,6 +929,12 @@ #define RKISP1_CIF_RSZ_PHASE_HC_SHD 0x004C #define RKISP1_CIF_RSZ_PHASE_VY_SHD 0x0050 #define RKISP1_CIF_RSZ_PHASE_VC_SHD 0x0054 +#define RKISP1_CIF_RSZ_CROP_X_DIR 0x0058 +#define RKISP1_CIF_RSZ_CROP_Y_DIR 0x005C +#define RKISP1_CIF_RSZ_CROP_X_DIR_SHD 0x0060 +#define RKISP1_CIF_RSZ_CROP_Y_DIR_SHD 0x0064 +#define RKISP1_CIF_RSZ_FRAME_RATE 0x0068 +#define RKISP1_CIF_RSZ_FORMAT_CONV_CTRL 0x006C #define RKISP1_CIF_MI_BASE 0x00001400 #define RKISP1_CIF_MI_CTRL (RKISP1_CIF_MI_BASE + 0x00000000) diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c index f4caa8f684aa..08bf3aa8088f 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c @@ -244,6 +244,7 @@ static void rkisp1_rsz_config_regs(struct rkisp1_resizer *rsz, { u32 ratio, rsz_ctrl = 0; unsigned int i; + u32 val; /* No phase offset */ rkisp1_rsz_write(rsz, RKISP1_CIF_RSZ_PHASE_HY, 0); @@ -292,6 +293,18 @@ static void rkisp1_rsz_config_regs(struct rkisp1_resizer *rsz, rkisp1_rsz_write(rsz, RKISP1_CIF_RSZ_CTRL, rsz_ctrl); + if (rsz->rkisp1->info->features & RKISP1_FEATURE_RSZ_CROP) { + val = RKISP1_CIF_RSZ_CROP_XY_DIR(src_y->left, src_y->left + src_y->width - 1); + rkisp1_rsz_write(rsz, RKISP1_CIF_RSZ_CROP_X_DIR, val); + val = RKISP1_CIF_RSZ_CROP_XY_DIR(src_y->top, src_y->top + src_y->height - 1); + rkisp1_rsz_write(rsz, RKISP1_CIF_RSZ_CROP_Y_DIR, val); + + val = RKISP1_CIF_RSZ_FORMAT_CONV_CTRL_RSZ_INPUT_FORMAT_YCBCR_422 + | RKISP1_CIF_RSZ_FORMAT_CONV_CTRL_RSZ_OUTPUT_FORMAT_YCBCR_420 + | RKISP1_CIF_RSZ_FORMAT_CONV_CTRL_RSZ_PACK_FORMAT_SEMI_PLANAR; + rkisp1_rsz_write(rsz, RKISP1_CIF_RSZ_FORMAT_CONV_CTRL, val); + } + rkisp1_rsz_update_shadow(rsz, when); } @@ -656,7 +669,8 @@ static int rkisp1_rsz_s_stream(struct v4l2_subdev *sd, int enable) enum rkisp1_shadow_regs_when when = RKISP1_SHADOW_REGS_SYNC; if (!enable) { - rkisp1_dcrop_disable(rsz, RKISP1_SHADOW_REGS_ASYNC); + if (rkisp1->info->features & RKISP1_FEATURE_DUAL_CROP) + rkisp1_dcrop_disable(rsz, RKISP1_SHADOW_REGS_ASYNC); rkisp1_rsz_disable(rsz, RKISP1_SHADOW_REGS_ASYNC); return 0; } @@ -666,7 +680,8 @@ static int rkisp1_rsz_s_stream(struct v4l2_subdev *sd, int enable) mutex_lock(&rsz->ops_lock); rkisp1_rsz_config(rsz, when); - rkisp1_dcrop_config(rsz); + if (rkisp1->info->features & RKISP1_FEATURE_DUAL_CROP) + rkisp1_dcrop_config(rsz); mutex_unlock(&rsz->ops_lock); return 0; -- Regards, Laurent Pinchart
next prev parent reply other threads:[~2022-06-30 23:08 UTC|newest] Thread overview: 204+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-06-30 23:06 [PATCH v2 00/55] media: rkisp1: Cleanups and add support for i.MX8MP Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 01/55] media: v4l2-async: Add notifier operation to destroy asd instances Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 02/55] media: mc-entity: Rename media_entity_remote_pad() to media_pad_remote_pad_first() Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 6:55 ` Hans Verkuil 2022-07-07 6:55 ` Hans Verkuil 2022-06-30 23:06 ` [PATCH v2 03/55] media: mc-entity: Add a new helper function to get a remote pad Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 6:57 ` Hans Verkuil 2022-07-07 6:57 ` Hans Verkuil 2022-07-07 9:59 ` [PATCH v2.1 " Laurent Pinchart 2022-07-07 9:59 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 04/55] media: mc-entity: Add a new helper function to get a remote pad for a pad Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 7:01 ` Hans Verkuil 2022-07-07 7:01 ` Hans Verkuil 2022-07-07 9:59 ` [PATCH v2.1 " Laurent Pinchart 2022-07-07 9:59 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 05/55] media: rkisp1: Enable compilation on ARCH_MXC Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 13:40 ` paul.elder 2022-07-07 13:40 ` paul.elder 2022-06-30 23:06 ` [PATCH v2 06/55] media: rkisp1: Disable runtime PM in probe error path Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 13:39 ` paul.elder 2022-07-07 13:39 ` paul.elder 2022-06-30 23:06 ` [PATCH v2 07/55] media: rkisp1: Read the ID register at probe time instead of streamon Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 13:39 ` paul.elder 2022-07-07 13:39 ` paul.elder 2022-06-30 23:06 ` [PATCH v2 08/55] media: rkisp1: Rename rkisp1_match_data to rkisp1_info Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 13:38 ` paul.elder 2022-07-07 13:38 ` paul.elder 2022-06-30 23:06 ` [PATCH v2 09/55] media: rkisp1: Save info pointer in rkisp1_device Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 10/55] media: rkisp1: Access ISP version from info pointer Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 13:38 ` paul.elder 2022-07-07 13:38 ` paul.elder 2022-06-30 23:06 ` [PATCH v2 11/55] media: rkisp1: Make rkisp1_isp_mbus_info common Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-04 4:34 ` paul.elder 2022-07-04 4:34 ` paul.elder 2022-06-30 23:06 ` [PATCH v2 12/55] media: rkisp1: cap: Print debug message on failed link validation Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 2:45 ` paul.elder 2022-07-07 2:45 ` paul.elder 2022-07-10 19:40 ` Dafna Hirschfeld 2022-07-10 19:40 ` Dafna Hirschfeld 2022-06-30 23:06 ` [PATCH v2 13/55] media: rkisp1: Move sensor .s_stream() call to ISP Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 14/55] media: rkisp1: Reject sensors without pixel rate control at bound time Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 15/55] media: rkisp1: Create link from sensor to ISP at notifier " Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 16/55] media: rkisp1: Create internal links at probe time Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 17/55] media: rkisp1: Rename rkisp1_subdev_notifier() to rkisp1_subdev_notifier_register() Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 18/55] media: rkisp1: Fix sensor source pad retrieval at bound time Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 14:01 ` paul.elder 2022-07-07 14:01 ` paul.elder 2022-07-07 14:47 ` Laurent Pinchart 2022-07-07 14:47 ` Laurent Pinchart 2022-07-07 14:50 ` paul.elder 2022-07-07 14:50 ` paul.elder 2022-07-10 19:49 ` Dafna Hirschfeld 2022-07-10 19:49 ` Dafna Hirschfeld 2022-06-30 23:06 ` [PATCH v2 19/55] media: rkisp1: Split CSI handling to separate file Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-11 0:40 ` Dafna Hirschfeld 2022-07-11 0:40 ` Dafna Hirschfeld 2022-06-30 23:06 ` [PATCH v2 20/55] media: rkisp1: isp: Start CSI-2 receiver before ISP Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 21/55] media: rkisp1: csi: Handle CSI-2 RX configuration fully in rkisp1-csi.c Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 22/55] media: rkisp1: csi: Rename CSI functions with a common rkisp1_csi prefix Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 23/55] media: rkisp1: csi: Move start delay to rkisp1_csi_start() Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 24/55] media: rkisp1: csi: Pass sensor pointer to rkisp1_csi_config() Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 25/55] media: rkisp1: csi: Constify argument to rkisp1_csi_start() Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 26/55] media: rkisp1: isp: Don't initialize ret to 0 in rkisp1_isp_s_stream() Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 27/55] media: rkisp1: isp: Pass mbus type and flags to rkisp1_config_cif() Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 28/55] media: rkisp1: isp: Rename rkisp1_device.active_sensor to source Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 29/55] media: rkisp1: isp: Add container_of wrapper to cast subdev to rkisp1_isp Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 30/55] media: rkisp1: isp: Add rkisp1_device backpointer " Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 31/55] media: rkisp1: isp: Pass rkisp1_isp pointer to internal ISP functions Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 32/55] media: rkisp1: isp: Move input configuration to rkisp1_config_isp() Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 14:12 ` paul.elder 2022-07-07 14:12 ` paul.elder 2022-07-11 0:48 ` Dafna Hirschfeld 2022-07-11 0:48 ` Dafna Hirschfeld 2022-06-30 23:06 ` [PATCH v2 33/55] media: rkisp1: isp: Merge ISP_ACQ_PROP configuration in single variable Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 14:53 ` paul.elder 2022-07-07 14:53 ` paul.elder 2022-06-30 23:06 ` [PATCH v2 34/55] media: rkisp1: isp: Initialize some variables at declaration time Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 14:54 ` paul.elder 2022-07-07 14:54 ` paul.elder 2022-06-30 23:06 ` [PATCH v2 35/55] media: rkisp1: isp: Fix whitespace issues Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 36/55] media: rkisp1: isp: Constify various local variables Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 37/55] media: rkisp1: isp: Rename rkisp1_get_remote_source() Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 38/55] media: rkisp1: isp: Disallow multiple active sources Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-07 14:48 ` paul.elder 2022-07-07 14:48 ` paul.elder 2022-07-11 0:56 ` Dafna Hirschfeld 2022-07-11 0:56 ` Dafna Hirschfeld 2022-07-11 1:03 ` Laurent Pinchart 2022-07-11 1:03 ` Laurent Pinchart 2022-07-11 1:06 ` [PATCH v2.1 " Laurent Pinchart 2022-07-11 1:06 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 39/55] media: rkisp1: csi: Implement a V4L2 subdev for the CSI receiver Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-11 1:22 ` Dafna Hirschfeld 2022-07-11 1:22 ` Dafna Hirschfeld 2022-07-11 8:20 ` Laurent Pinchart 2022-07-11 8:20 ` Laurent Pinchart 2022-06-30 23:06 ` [PATCH v2 40/55] media: rkisp1: csi: Plumb the CSI RX subdev Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-11 1:33 ` Dafna Hirschfeld 2022-07-11 1:33 ` Dafna Hirschfeld 2022-06-30 23:06 ` [PATCH v2 41/55] media: rkisp1: Use fwnode_graph_for_each_endpoint Laurent Pinchart 2022-06-30 23:06 ` Laurent Pinchart 2022-07-11 1:38 ` Dafna Hirschfeld 2022-07-11 1:38 ` Dafna Hirschfeld 2022-06-30 23:07 ` [PATCH v2 42/55] dt-bindings: media: rkisp1: Add port for parallel interface Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-07-01 20:17 ` Rob Herring 2022-07-01 20:17 ` Rob Herring 2022-06-30 23:07 ` [PATCH v2 43/55] media: rkisp1: Support the ISP parallel input Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-07-11 2:12 ` Dafna Hirschfeld 2022-07-11 2:12 ` Dafna Hirschfeld 2022-06-30 23:07 ` [PATCH v2 44/55] media: rkisp1: Add infrastructure to support ISP features Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-07-11 2:29 ` Dafna Hirschfeld 2022-07-11 2:29 ` Dafna Hirschfeld 2022-06-30 23:07 ` [PATCH v2 45/55] media: rkisp1: Make the internal CSI-2 receiver optional Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-07-11 2:39 ` Dafna Hirschfeld 2022-07-11 2:39 ` Dafna Hirschfeld 2022-06-30 23:07 ` [PATCH v2 46/55] media: rkisp1: debug: Add dump file in debugfs for MI buffer registers Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-07-11 2:51 ` Dafna Hirschfeld 2022-07-11 2:51 ` Dafna Hirschfeld 2022-07-11 12:04 ` Laurent Pinchart 2022-07-11 12:04 ` Laurent Pinchart 2022-06-30 23:07 ` [PATCH v2 47/55] dt-bindings: media: rkisp1: Add i.MX8MP ISP to compatible Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-07-01 20:18 ` Rob Herring 2022-07-01 20:18 ` Rob Herring 2022-06-30 23:07 ` [PATCH v2 48/55] media: rkisp1: Add match data for i.MX8MP ISP Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-07-15 11:56 ` Adam Ford 2022-07-15 11:56 ` Adam Ford 2022-07-17 14:56 ` Laurent Pinchart 2022-07-17 14:56 ` Laurent Pinchart 2022-07-17 15:23 ` Laurent Pinchart 2022-07-17 15:23 ` Laurent Pinchart 2022-07-17 18:04 ` Adam Ford 2022-07-17 18:04 ` Adam Ford 2022-06-30 23:07 ` [PATCH v2 49/55] media: rkisp1: Configure gasket on i.MX8MP Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart [this message] 2022-06-30 23:07 ` [PATCH v2 50/55] media: rkisp1: Add and set registers for crop for i.MX8MP Laurent Pinchart 2022-07-11 2:57 ` Dafna Hirschfeld 2022-07-11 2:57 ` Dafna Hirschfeld 2022-06-30 23:07 ` [PATCH v2 51/55] media: rkisp1: Add and set registers for output size config on i.MX8MP Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-07-11 2:59 ` Dafna Hirschfeld 2022-07-11 2:59 ` Dafna Hirschfeld 2022-06-30 23:07 ` [PATCH v2 52/55] media: rkisp1: Add i.MX8MP-specific registers for MI and resizer Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-07-11 3:02 ` Dafna Hirschfeld 2022-07-11 3:02 ` Dafna Hirschfeld 2022-06-30 23:07 ` [PATCH v2 53/55] media: rkisp1: Shift DMA buffer addresses on i.MX8MP Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-06-30 23:07 ` [PATCH v2 54/55] media: rkisp1: Add register definitions for the test pattern generator Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-07-11 3:42 ` Dafna Hirschfeld 2022-07-11 3:42 ` Dafna Hirschfeld 2022-06-30 23:07 ` [PATCH v2 55/55] media: rkisp1: Fix RSZ_CTRL bits for i.MX8MP Laurent Pinchart 2022-06-30 23:07 ` Laurent Pinchart 2022-07-07 10:58 ` [PATCH v2 00/55] media: rkisp1: Cleanups and add support " Sakari Ailus 2022-07-07 10:58 ` Sakari Ailus
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=20220630230713.10580-51-laurent.pinchart@ideasonboard.com \ --to=laurent.pinchart@ideasonboard.com \ --cc=dafna@fastmail.com \ --cc=heiko@sntech.de \ --cc=helen.koike@collabora.com \ --cc=linux-media@vger.kernel.org \ --cc=linux-rockchip@lists.infradead.org \ --cc=paul.elder@ideasonboard.com \ /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: linkBe 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.