[libcamera-devel] [PATCH 04/50] staging: media: imx: imx7-media-csi: Drop duplicate link creation
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue May 10 13:51:01 CEST 2022
The imx_media_create_csi2_links() creates a media controller link
between the CSI-2 receiver and the next entity in the pipeline, which
can be either a video mux (handled by the video-mux driver) or the CSI
bridge itself. This isn't needed, as the link is already created either
by the video-mux driver or by the imx7-media-csi driver itself (in
imx7_csi_notify_bound()).
Drop imx_media_create_csi2_links(), which allows dropping the CSI bridge
subdev grp_id.
Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
drivers/staging/media/imx/imx7-media-csi.c | 31 ----------------------
1 file changed, 31 deletions(-)
diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/staging/media/imx/imx7-media-csi.c
index 708076b7045a..e2d6dabad007 100644
--- a/drivers/staging/media/imx/imx7-media-csi.c
+++ b/drivers/staging/media/imx/imx7-media-csi.c
@@ -726,34 +726,6 @@ static inline struct imx_media_dev *notifier2dev(struct v4l2_async_notifier *n)
return container_of(n, struct imx_media_dev, notifier);
}
-/*
- * Create the missing media links from the CSI-2 receiver.
- * Called after all async subdevs have bound.
- */
-static void imx_media_create_csi2_links(struct imx_media_dev *imxmd)
-{
- struct v4l2_subdev *sd, *csi2 = NULL;
-
- list_for_each_entry(sd, &imxmd->v4l2_dev.subdevs, list) {
- if (sd->grp_id == IMX_MEDIA_GRP_ID_CSI2) {
- csi2 = sd;
- break;
- }
- }
- if (!csi2)
- return;
-
- list_for_each_entry(sd, &imxmd->v4l2_dev.subdevs, list) {
- /* skip if not a CSI or a CSI mux */
- if (!(sd->grp_id & IMX_MEDIA_GRP_ID_IPU_CSI) &&
- !(sd->grp_id & IMX_MEDIA_GRP_ID_CSI) &&
- !(sd->grp_id & IMX_MEDIA_GRP_ID_CSI_MUX))
- continue;
-
- v4l2_create_fwnode_links(csi2, sd);
- }
-}
-
/*
* adds given video device to given imx-media source pad vdev list.
* Continues upstream from the pad entity's sink pads.
@@ -883,8 +855,6 @@ static int __imx_media_probe_complete(struct v4l2_async_notifier *notifier)
mutex_lock(&imxmd->mutex);
- imx_media_create_csi2_links(imxmd);
-
ret = imx_media_create_pad_vdev_lists(imxmd);
if (ret)
goto unlock;
@@ -1477,7 +1447,6 @@ static int imx7_csi_probe(struct platform_device *pdev)
csi->sd.dev = &pdev->dev;
csi->sd.owner = THIS_MODULE;
csi->sd.flags = V4L2_SUBDEV_FL_HAS_DEVNODE;
- csi->sd.grp_id = IMX_MEDIA_GRP_ID_CSI;
snprintf(csi->sd.name, sizeof(csi->sd.name), "csi");
for (i = 0; i < IMX7_CSI_PADS_NUM; i++)
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list