nxp imx8m CSI drivers

Martin Kepplinger martin.kepplinger at puri.sm
Thu Jul 9 09:32:44 UTC 2020


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


More information about the devel mailing list