hi linux-media people, TL-DR: when exactly is "sd->entity.function == MEDIA_ENT_F_VID_MUX"? I try to use the camera on our librem5-devkit (imx8mq): I try to use only mainline drivers except for "mxc-mipi-csi2_yav" taken from linux-imx (which we can prepare to submit if a PoC works. This is the tree I'm experimenting with: https://source.puri.sm/martin.kepplinger/linux-next/-/commits/5.8-rc4/librem5___csi * "imx7-media-csi" / imx-media-capture / imx-media-utils currently in staging (that should work according to NXP) * ov5640 mainline driver * mxc-mipi-csi2_yav from NXP tree (linux-imx) with v4l2_subdev_video_ops' mipi_csis_g_parm and mipi_csis_s_parm callbacks removed (due to missing API in mainline) the drivers probe and run but the following fails when trying to use the camera (gstreamer): in imx-media-utils' imx_media_pipeline_set_stream() the call to v4l2_subdev_call(sd, video, s_stream, 1) returns with 32 (broken pipe) and thus the application that tries to use the camera too. One problem is definitely the trees' last commit (that I did as a workaround) in this tree that makes the drivers probe but only by ignoring this probably needed check: imx7-media-csi's imx7_csi_notify_bound() callback implementation gets called during startup. But if (WARN_ON(sd->entity.function != MEDIA_ENT_F_VID_MUX)) is true so this is the wrong type of subdev (?). I just want to put this out there and check if the general approach is valid at all and if there's anything that comes to your mind. thanks a lot, martin