On Mon, Nov 13, 2023 at 05:05:12PM +0100, Michael Riesch wrote: > 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. Yes, I will do this. > > 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? I agree -- Kind Regards Mehdi Djait > > Best regards, > Michael