From: Laurent Pinchart Date: Sun, 6 Feb 2022 05:13:53 +0000 (+0000) Subject: media: staging: media: imx: imx7-media-csi: Drop duplicate link creation X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=3c05e2dd4f596aaa01fd295ca30983999d6517dd;p=linux.git media: staging: media: imx: imx7-media-csi: Drop duplicate link creation 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 Acked-by: Rui Miguel Silva Tested-by: Alexander Stein Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/staging/media/imx/imx7-media-csi.c index 58c5647dea410..5ab4f996376b6 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; @@ -1480,7 +1450,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++)