Re: [RFC] media: i2c: ov5640: Implement get_mbus_config

From: Sakari Ailus

Date: Mon Sep 21 2026 - 16:13:02 EST


Hi Leonardo,

On Mon, Sep 21, 2026 at 03:04:59PM -0300, Leonardo Costa wrote:
> Hi all,
>
> Some time ago, we had sent a patch that implemented the .get_mbus_config
> function for the OV5640 camera. This change was necessary for the camera to
> work with the i.MX6 after the v5.18 release.
>
> https://lore.kernel.org/all/20230306063649.7387-1-marcel@xxxxxxxxxxxx/T/#u
>
> The patch stirred some discussion, since .get_mbus_config wasn't supposed to be
> implemented on drivers that don't have dynamic lane configuration. There were
> proposals of implementing it in other points of the camera pipeline, but no
> conclusion was reached.
>
> We are planning to send the overlays for this camera for the Apalis iMX6, but
> we verified that this patch is still needed for the camera to work on the
> current mainline. Below are the commands to configure the pipeline, which
> explicitly require a .get_mbus_config from the camera driver.
>
> root@apalis-imx6-11367581:~# media-ctl -l "'ov5640 1-003c':0 -> 'imx6-mipi-csi2':0[1]"
> root@apalis-imx6-11367581:~# media-ctl -l "'imx6-mipi-csi2':2 -> 'ipu1_csi1':0[1]"
> root@apalis-imx6-11367581:~# media-ctl -l "'ipu1_csi1':2 -> 'ipu1_csi1 capture':0[1]"
> root@apalis-imx6-11367581:~# media-ctl -V "'ov5640 1-003c':0 [fmt:UYVY8_1X16/1920x1080 field:none]"
> root@apalis-imx6-11367581:~# media-ctl -V "'imx6-mipi-csi2':2 [fmt:UYVY8_1X16/1920x1080 field:none]"
> [ 47.438237] ipu1_csi1: entity ov5640 1-003c does not implement get_mbus_config()
> [ 47.438265] ipu1_csi1: failed to get upstream media bus configuration
> root@apalis-imx6-11367581:~# media-ctl -V "'ipu1_csi1':2 [fmt:UYVY8_1X16/1920x1080 field:none]"
> Unable to setup formats: Inappropriate ioctl for device (25)
> [ 62.616177] ipu1_csi1: entity ov5640 1-003c does not implement get_mbus_config()
> [ 62.616204] ipu1_csi1: failed to get upstream media bus configuration
>
> I am not very familiar with this subsystem, and it's been years since this
> discussion took place, so I wanted to know what are your thoughts about this
> patch and what the correct approach would be here. Was there any change that
> would make this patch ok to be applied today? Do you think this still should
> be included somewhere else on the pipeline?

My objection to the approach was about adding code that does very little or
nothing to potentially a rather large number of drivers.

Since that we've gotten v4l2_get_active_data_lanes() that however seems to
be used by the imx-mipi-csis driver only. Could using that solve the
problem you have?

--
Regards,

Sakari Ailus