media: rzg2l-cru: Remove `channel` member from `struct rzg2l_cru_csi`
authorLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Fri, 18 Oct 2024 13:34:30 +0000 (14:34 +0100)
committerHans Verkuil <hverkuil@xs4all.nl>
Tue, 22 Oct 2024 09:31:27 +0000 (11:31 +0200)
Remove the CSI virtual channel number from `struct rzg2l_cru_csi`.
Instead, pass the CSI virtual channel number as an argument to
`rzg2l_cru_csi2_setup()`.

Suggested-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Link: https://lore.kernel.org/r/20241018133446.223516-8-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c
drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h
drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c

index 43da91c4fdc3e74f6d430c88b93022479dd6a773..89be584a49885203c9e213e1cf1e4e37cb974f8f 100644 (file)
@@ -72,7 +72,6 @@ static int rzg2l_cru_group_notify_complete(struct v4l2_async_notifier *notifier)
                        source->name, sink->name);
                return ret;
        }
-       cru->csi.channel = 0;
        cru->ip.remote = cru->csi.subdev;
 
        /* Create media device link between CRU IP <-> CRU OUTPUT */
index 8fbd45c437634d1136bb77a956438d087f20de57..4fe24bdde5b250691114cfe1e450e306d3833fd9 100644 (file)
@@ -53,7 +53,6 @@ enum rzg2l_cru_dma_state {
 struct rzg2l_cru_csi {
        struct v4l2_async_connection *asd;
        struct v4l2_subdev *subdev;
-       u32 channel;
 };
 
 struct rzg2l_cru_ip {
index 7cd33eb1939cbab02088773ffbade5bb8a670731..9ab7ef33c9da037bc3877dd152e9a3b681e396cc 100644 (file)
@@ -301,7 +301,7 @@ static void rzg2l_cru_initialize_axi(struct rzg2l_cru_dev *cru)
 }
 
 static void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, bool *input_is_yuv,
-                                struct v4l2_mbus_framefmt *ip_sd_fmt)
+                                struct v4l2_mbus_framefmt *ip_sd_fmt, u8 csi_vc)
 {
        u32 icnmc;
 
@@ -319,19 +319,20 @@ static void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, bool *input_is_yuv,
        icnmc |= (rzg2l_cru_read(cru, ICnMC) & ~ICnMC_INF_MASK);
 
        /* Set virtual channel CSI2 */
-       icnmc |= ICnMC_VCSEL(cru->csi.channel);
+       icnmc |= ICnMC_VCSEL(csi_vc);
 
        rzg2l_cru_write(cru, ICnMC, icnmc);
 }
 
 static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru,
-                                          struct v4l2_mbus_framefmt *ip_sd_fmt)
+                                          struct v4l2_mbus_framefmt *ip_sd_fmt,
+                                          u8 csi_vc)
 {
        bool output_is_yuv = false;
        bool input_is_yuv = false;
        u32 icndmr;
 
-       rzg2l_cru_csi2_setup(cru, &input_is_yuv, ip_sd_fmt);
+       rzg2l_cru_csi2_setup(cru, &input_is_yuv, ip_sd_fmt, csi_vc);
 
        /* Output format */
        switch (cru->format.pixelformat) {
@@ -466,12 +467,13 @@ int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru)
 {
        struct v4l2_mbus_framefmt *fmt = rzg2l_cru_ip_get_src_fmt(cru);
        unsigned long flags;
+       u8 csi_vc;
        int ret;
 
        ret = rzg2l_cru_get_virtual_channel(cru);
        if (ret < 0)
                return ret;
-       cru->csi.channel = ret;
+       csi_vc = ret;
 
        spin_lock_irqsave(&cru->qlock, flags);
 
@@ -489,7 +491,7 @@ int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru)
        rzg2l_cru_initialize_axi(cru);
 
        /* Initialize image convert */
-       ret = rzg2l_cru_initialize_image_conv(cru, fmt);
+       ret = rzg2l_cru_initialize_image_conv(cru, fmt, csi_vc);
        if (ret) {
                spin_unlock_irqrestore(&cru->qlock, flags);
                return ret;