On Mon Sep 21 17:29:58 2026 +0200, Amin Gattout wrote:
> The RK3568 and RK3588 variants configure the MIPI capture size in the
> ID_CTRL1 register. The RK3576 has a dedicated ID_SET_SIZE register
> instead.
> 
> Add a register index for the capture size and write it through that
> index, in preparation for the RK3576 support. The RK3568 and RK3588
> mark the index as unsupported, so the write is a no operation for them
> and their behavior is unchanged.
> 
> Signed-off-by: Amin Gattout <[email protected]>
> Reviewed-by: Michael Riesch <[email protected]>
> Reviewed-by: Mehdi Djait <[email protected]>
> Signed-off-by: Sakari Ailus <[email protected]>

Patch committed.

Thanks,
Sakari Ailus

 drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c | 10 ++++++++++
 drivers/media/platform/rockchip/rkcif/rkcif-regs.h         |  1 +
 2 files changed, 11 insertions(+)

---

diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c 
b/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c
index bc9518f8db50..e0acb9049ca1 100644
--- a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c
+++ b/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c
@@ -438,6 +438,7 @@ const struct rkcif_mipi_match_data 
rkcif_rk3568_vicap_mipi_match_data = {
                        [RKCIF_MIPI_FRAME1_VLW_Y] = 0x38,
                        [RKCIF_MIPI_FRAME1_VLW_UV] = 0x40,
                        [RKCIF_MIPI_CROP_START] = 0xbc,
+                       [RKCIF_MIPI_SET_SIZE] = RKCIF_REGISTER_NOTSUPPORTED,
                },
                [RKCIF_ID1] = {
                        [RKCIF_MIPI_CTRL0] = 0x08,
@@ -451,6 +452,7 @@ const struct rkcif_mipi_match_data 
rkcif_rk3568_vicap_mipi_match_data = {
                        [RKCIF_MIPI_FRAME1_VLW_Y] = 0x58,
                        [RKCIF_MIPI_FRAME1_VLW_UV] = 0x60,
                        [RKCIF_MIPI_CROP_START] = 0xc0,
+                       [RKCIF_MIPI_SET_SIZE] = RKCIF_REGISTER_NOTSUPPORTED,
                },
                [RKCIF_ID2] = {
                        [RKCIF_MIPI_CTRL0] = 0x10,
@@ -464,6 +466,7 @@ const struct rkcif_mipi_match_data 
rkcif_rk3568_vicap_mipi_match_data = {
                        [RKCIF_MIPI_FRAME1_VLW_Y] = 0x78,
                        [RKCIF_MIPI_FRAME1_VLW_UV] = 0x80,
                        [RKCIF_MIPI_CROP_START] = 0xc4,
+                       [RKCIF_MIPI_SET_SIZE] = RKCIF_REGISTER_NOTSUPPORTED,
                },
                [RKCIF_ID3] = {
                        [RKCIF_MIPI_CTRL0] = 0x18,
@@ -477,6 +480,7 @@ const struct rkcif_mipi_match_data 
rkcif_rk3568_vicap_mipi_match_data = {
                        [RKCIF_MIPI_FRAME1_VLW_Y] = 0x98,
                        [RKCIF_MIPI_FRAME1_VLW_UV] = 0xa0,
                        [RKCIF_MIPI_CROP_START] = 0xc8,
+                       [RKCIF_MIPI_SET_SIZE] = RKCIF_REGISTER_NOTSUPPORTED,
                },
        },
        .blocks = {
@@ -549,6 +553,7 @@ const struct rkcif_mipi_match_data 
rkcif_rk3588_vicap_mipi_match_data = {
                        [RKCIF_MIPI_FRAME1_VLW_Y] = RKCIF_REGISTER_NOTSUPPORTED,
                        [RKCIF_MIPI_FRAME1_VLW_UV] = 
RKCIF_REGISTER_NOTSUPPORTED,
                        [RKCIF_MIPI_CROP_START] = 0x8c,
+                       [RKCIF_MIPI_SET_SIZE] = RKCIF_REGISTER_NOTSUPPORTED,
                },
                [RKCIF_ID1] = {
                        [RKCIF_MIPI_CTRL0] = 0x08,
@@ -562,6 +567,7 @@ const struct rkcif_mipi_match_data 
rkcif_rk3588_vicap_mipi_match_data = {
                        [RKCIF_MIPI_FRAME1_VLW_Y] = RKCIF_REGISTER_NOTSUPPORTED,
                        [RKCIF_MIPI_FRAME1_VLW_UV] = 
RKCIF_REGISTER_NOTSUPPORTED,
                        [RKCIF_MIPI_CROP_START] = 0x90,
+                       [RKCIF_MIPI_SET_SIZE] = RKCIF_REGISTER_NOTSUPPORTED,
                },
                [RKCIF_ID2] = {
                        [RKCIF_MIPI_CTRL0] = 0x10,
@@ -575,6 +581,7 @@ const struct rkcif_mipi_match_data 
rkcif_rk3588_vicap_mipi_match_data = {
                        [RKCIF_MIPI_FRAME1_VLW_Y] = RKCIF_REGISTER_NOTSUPPORTED,
                        [RKCIF_MIPI_FRAME1_VLW_UV] = 
RKCIF_REGISTER_NOTSUPPORTED,
                        [RKCIF_MIPI_CROP_START] = 0x94,
+                       [RKCIF_MIPI_SET_SIZE] = RKCIF_REGISTER_NOTSUPPORTED,
                },
                [RKCIF_ID3] = {
                        [RKCIF_MIPI_CTRL0] = 0x18,
@@ -588,6 +595,7 @@ const struct rkcif_mipi_match_data 
rkcif_rk3588_vicap_mipi_match_data = {
                        [RKCIF_MIPI_FRAME1_VLW_Y] = RKCIF_REGISTER_NOTSUPPORTED,
                        [RKCIF_MIPI_FRAME1_VLW_UV] = 
RKCIF_REGISTER_NOTSUPPORTED,
                        [RKCIF_MIPI_CROP_START] = 0x98,
+                       [RKCIF_MIPI_SET_SIZE] = RKCIF_REGISTER_NOTSUPPORTED,
                },
        },
        .blocks = {
@@ -759,6 +767,8 @@ static int rkcif_mipi_start_streaming(struct rkcif_stream 
*stream)
        rkcif_mipi_stream_write(stream, RKCIF_MIPI_FRAME0_VLW_UV, vlw);
        rkcif_mipi_stream_write(stream, RKCIF_MIPI_FRAME1_VLW_UV, vlw);
        rkcif_mipi_stream_write(stream, RKCIF_MIPI_CROP_START, 0x0);
+       rkcif_mipi_stream_write(stream, RKCIF_MIPI_SET_SIZE,
+                               RKCIF_XY_COORD(width, height));
        rkcif_mipi_stream_write(stream, RKCIF_MIPI_CTRL1, ctrl1);
        rkcif_mipi_stream_write(stream, RKCIF_MIPI_CTRL0, ctrl0);
 
diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-regs.h 
b/drivers/media/platform/rockchip/rkcif/rkcif-regs.h
index 3cf7ee19de30..0460e963b154 100644
--- a/drivers/media/platform/rockchip/rkcif/rkcif-regs.h
+++ b/drivers/media/platform/rockchip/rkcif/rkcif-regs.h
@@ -147,6 +147,7 @@ enum rkcif_mipi_id_register_index {
        RKCIF_MIPI_FRAME1_VLW_Y,
        RKCIF_MIPI_FRAME1_VLW_UV,
        RKCIF_MIPI_CROP_START,
+       RKCIF_MIPI_SET_SIZE,
        RKCIF_MIPI_ID_REGISTER_MAX
 };
 
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to