Re: [PATCH v10 2/3] media: rockchip: Add a driver for Rockchip's camera interface

From: Michael Riesch
Date: Mon Nov 13 2023 - 11:05:25 EST


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