media: nxp: imx8-isi: Mark all crossbar sink pads as MUST_CONNECT
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Mon, 15 Jan 2024 02:16:29 +0000 (04:16 +0200)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 5 Feb 2024 13:29:35 +0000 (14:29 +0100)
All the sink pads of the crossbar switch require an active link if
they're part of the pipeline. Mark them with the
MEDIA_PAD_FL_MUST_CONNECT flag to fail pipeline validation if they're
not connected. This allows removing a manual check when translating
streams.

Cc: stable@vger.kernel.org # 6.1
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c

index 1bb1334ec6f2b87157005ecf10ca286d100dbc9f..93a55c97cd1738f72a34b11c2fee5cc2e3c6f6ca 100644 (file)
@@ -160,13 +160,6 @@ mxc_isi_crossbar_xlate_streams(struct mxc_isi_crossbar *xbar,
        }
 
        pad = media_pad_remote_pad_first(&xbar->pads[sink_pad]);
-       if (!pad) {
-               dev_dbg(xbar->isi->dev,
-                       "no pad connected to crossbar input %u\n",
-                       sink_pad);
-               return ERR_PTR(-EPIPE);
-       }
-
        sd = media_entity_to_v4l2_subdev(pad->entity);
        if (!sd) {
                dev_dbg(xbar->isi->dev,
@@ -475,7 +468,8 @@ int mxc_isi_crossbar_init(struct mxc_isi_dev *isi)
        }
 
        for (i = 0; i < xbar->num_sinks; ++i)
-               xbar->pads[i].flags = MEDIA_PAD_FL_SINK;
+               xbar->pads[i].flags = MEDIA_PAD_FL_SINK
+                                   | MEDIA_PAD_FL_MUST_CONNECT;
        for (i = 0; i < xbar->num_sources; ++i)
                xbar->pads[i + xbar->num_sinks].flags = MEDIA_PAD_FL_SOURCE;