Hi Mehdi, On 11/13/23 16:28, Mehdi Djait wrote: > Hi Michael, > > On Fri, Nov 10, 2023 at 03:33:34PM +0100, Michael Riesch wrote: >> Hi Mehdi, >> >> Sorry, forgot one thing: >> >> On 11/8/23 17:38, Mehdi Djait wrote: >>> +static int cif_subdev_notifier(struct cif_device *cif_dev) >>> +{ >>> + struct v4l2_async_notifier *ntf = &cif_dev->notifier; >>> + struct device *dev = cif_dev->dev; >>> + struct v4l2_async_connection *asd; >>> + struct v4l2_fwnode_endpoint vep = { >>> + .bus_type = V4L2_MBUS_PARALLEL, >> >> This is surprising. I had to set this to V4L2_MBUS_UNKNOWN, otherwise >> v4l2_fwnode_endpoint_parse would yield -ENXIO, which indicates a bus >> type mismatch. Does this really work for your (BT.656, right?) setup? >> > > Yes it works. > >> I think we should get the bus type from the device tree, right? >> > > I am looking into this. > >> Thanks and best regards, >> Michael >> > > I assume you have a "bus-type = <MEDIA_BUS_TYPE_BT656>;" in the device > tree definition of your endpoint ? This caused the mismatch as the > v4l2_fwnode_endpoint is set to PARALLEL Yes that's correct. The documentation is quite sparse here, but I would guess that the PX30 VIP accepts parallel data without embedded syncs (= MEDIA_BUS_TYPE_PARALLEL) as well as parallel data with embedded syncs (= MEDIA_BUS_TYPE_BT656). If this is actually the case, I think we should put V4L2_MBUS_UNKNOWN and let the device tree decide. We can be sure, however, that the PX30 VIP supports BT.656, so I guess the safe approach would be to use .bus_type = V4L2_MBUS_BT656. What do you think? Best regards, Michael